やっかいな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プログラミング講座

カテゴリーVBA

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です