Yamamoto's Laboratory
VBA

VBA

VBA(Visual Basic for Applications)に関するメモです.WindowsのGUIを使ったアプリケーションを実行させるために,使っています.

目次


VBAとは

Windowsのアプリケーションを使って,いろいろな計算をしています.Excelの表に計算パラメーターを書き,それを3D CADで読み込んでモデルを作成し,三次元の電磁場計算を行っています.GUIを使って,ちまちまこれらの作業を行うことは,本当に面倒です.ちょっと,頭にきたので,VBA(Visual Basic for Applications)を勉強することにしました.VBAを使えば,いろいろと自動的に処理ができるようです.名前に,Basicとつくので,それだけでもやる気が失せるのですが,GUIをちまちま使うよりはましか—と自分に言い聞かせ,いざ開始.

VBAの説明? まだ使っていないので,説明できません.wikipediaの「Visual Basic for Applications」でも読んでください.

挫折

今日(2009年6月3日),3時間ほどで挫折しました.VBAを使って,(1)モデルのパラメーターが書かれたExcelの表を直し,(2)そのパラメーターのとおり,3D CADでモデルを作るところまではできました.しかし,一度,Excelを再起動させたら,VBAが上手く動かなくなって,やる気をなくしてしまいました.Excel付属のVBAで,3D CADと三次元の電磁場解析のプログラムをコントロールするのは,ちょっと無理があるかもしれません.最初から乗り気がしなかったので,あきらめも早かったです.

もんもんとして,WEB上のVBAの資料を読んでいると,PerlでもVBAのオブジェクト(?)にアクセスできることが分かり,すぐに乗り換えした.VBAよりも100倍も快適に,目的のことができるようになりました.Perlでのやり方については,時間があるときに書きます.

VBAは,複雑なことは無理にしても,結構使えるツールです.複数のアプリケーションをコントロールして,そのアプリケーション間で,データの受け渡しを行うようなことは向いていませんが.ひとつのアプリケーション内,例えば,Excel内の自動処理ではかなり便利でしょう.VBAマクロはかなり高度なこともできますので,ほとんど知識が無くてもウィルスが作れることも理解できました.これが,私のVBA,三時間のトライの感想です.

ExcelでのVBA

VBAマクロの取得

実際のGUIの操作に対応するVBAのソースコードは,次のようにして知ることができます.

  1. メニューのツールマクロ新しいマクロの記録(R)…を選択します().すると,ダイアログ「マクロの記録」が表れるので,適当に設定します.
    1. マクロ名は,適当.そのほかも適当.
    2. OKボタンを押す.
  2. 適当にExcelを操作する.
  3. 操作に関するマクロ(プログラムのソース)の記録を止めます.メニューのツールマクロ記録終了(R)を選択します.
  4. ソースファイルを確認します.メニューのツールマクロマクロ(M)…を選択します.するとダイアログ「マクロ」が現れますので,適当にマクロ名を選んで,編集のボタンを押します.すると,これまで記録したマクロを見ることができます.

参考文献・WEBサイトなど



no counter