« IT職場を3Kから3Tへ変える | メイン | プログラムのすすめ »

やっかいなVBA

やっかいなVBA

Excelのマクロで利用されているVBAはVisual Basicの派生だが、VB6では実装されているものがVBAでは実装されていない関係で、使いにくいことこの上ない。
どこが使いにくいかといえば・・・
・sortアルゴリズムが実装されていない
VBAではExcelのソート機能を使うらしい。Visual Basicは確かにソートアルゴリズムを自前で実装しなければならないことに愕然としていた記憶がよみがえった。

・変数にポインタを渡せない関係上、多次元配列が構築できない
多次元配列を動的に生成していこうとすると
$a = array(3)
$b = \$a
のようにポインタを渡してあげる必要がある。ところがVBではこれができない。
幸いなことにApplication.EvaluateメソッドというEvalに互換性がありそうなものがあるのだが多次元配列を文字列で作ってEval評価させようとするとエラーで落ちてしまう。まぁ、これは少し強引という見方もあるだろう。
Application.Evaluate("array(" & "1)(2" & ")"); #これは例外エラー

・連想配列が事実上サポートされていない。VB6のDictionaryが利用できれば良いんだが・・・

VBAをコーディングしている際にとても参考になったサイトがあったので紹介しておきます。
Excel VBAプログラミング講座



トラックバック

トラックバックは本サイトの紹介(リンクがあれば可)があるものに限り受付いたします。このエントリーのトラックバックURLは以下のとおりです。

http://blog.development-network.net/mt/mt-tb.cgi/382

コメントを投稿