VBAを頑張っている。
pythonは、どんな環境でも使えるわけではない。
- Windows環境下で、
- Excelなど、Officeは使える。
- マクロも使える。
- コマンドラインも使える。
- でも、pythonは使えない。
- というか、インストールしていいのか分からない。
「この際、VBAを覚えて、pythonで培った作図スキルを、excelのVBAで活かそう。」という考え方で、勉強している。
VBA(Visual Basic for Application(「アプリ内のマクロを、VBの文法で実現」という認識))
VBAをpythonの様に使えない
pythonでいう、rangeとか、np.linspaceみたいな関数が無いと困る。
作図の時に、頻繁に使用するので。
で、VBAには、実際無い。
rangeすら無い。
rangeに至っては、excelのセルの範囲を指定するときの言葉の様です。
VBAで、連番出す系の関数がほしい。
そんな時のために、類似した関数を作った。
renban(最初の数字、最後の数字、配列個数)
こんな感じで使う。Subプロシージャの中で…
Sub test()
b = renban(0, 1, 10000)
Debug.Print b(777)
End Sub
とすると、bに入れた変数の777番目が取り出されて、
0.0777
が返ってくる。
連番で配列が得られれば、それを変数として関数にバンバン代入して、どんどんデータがたまっていき、ぱっぱと作図できる。
コード全文
Function renban(start1 As Double, stop1 As Double, num As Integer)
'型は敢えて指定しない。
Dim grd
'変数cは、引数numによって、長さが指定される。
'プロシージャ内(Functionとか、Subとかの中)で動的な変数(配列の長さが可変長)には、Dimじゃなく、ReDimが必要
ReDim c(num)
'引数start1〜stop1までの傾きgrdを求める。
grd = (stop1 - start1) / num
For i2 = 0 To num
c(i2) = grd * i2
Next i2
renban = c
End Function
Sub test()
b = renban(0, 1, 100)
Debug.Print b(77)
End Sub
使いたいなら、毎回、Function~End Function部分を書けば、いいと思うよ。面倒ですが…
何かいいやり方があるのだろうか。
【pythonの最新記事】
- 中速フーリエ変換 ~離散フーリエ変換より..
- 断面二次モーメントを、座標点の配列から計..
- 断面二次モーメントを、座標点の配列から計..
- fontファイルの文字データ(グリフ)を..
- matplotlibのpyplot.pl..
- 計算力学技術者試験の問題集 自炊(裁断→..
- pythonで、ホワイトノイズやピンクノ..
- 脳ドッグに行ってきた。→MRIの画像デー..
- matplotlibのimshowで円を..
- matplotlibの、cmapを、徐々..
- matplotlibのmake_axes..
- matplotlib floatinga..
- matplotlib plotの色を、値..
- Pythonで、「二次元フーリエ変換した..
- matplotlibのlinestyle..
- どちらが正しいRGBか。(matplot..
- matplotlibのannotateの..
- matplotlibで、x軸とy軸の数字..
- matplotlibのaxes3Dで、a..
- matplotlibのlatexで、行列..