ExcelVBAって、そもそもナニ?

VBAとは
VBA(Visual Basic for Application)は、その名の通りアプリケーション用Visual Basicなのですが、そもそもVisual Basicを知らない方にとってはピンと来ませんね。とりあえず、比較的簡単でとっつきやすいプログラミング言語とだけ覚えておいてください。
ExcelVBAはExcel用Visual Basicということになりますが、一般的な(汎用の)Visual Basicとは主に次のような点が異なります。
・Excelの中に組み込まれており、改めてインストールする必要が無い。(追加費用無し)
・プログラムの中でExcelのセルに対して読み書き出来る。
この中で、「セルに対して読み書き出来る」のは大きなポイントです。例えば、計測器から読み込んだ測定結果を直接セルに格納することができる訳で、その後はExcelの関数や機能(グラフ化…etc)を使って様々なリポートを作成することができるからです。
合わせて読みたい
ExcelVBA活用のステップ
全てのプログラミング言語に言えることですが、プログラミング以前にその開発環境をセットアップすることが初心者の方にとってはちょっとしたハードルになります。ExcelVBAは、それ自体のインストールは不要ですが、計測器をコントロールするためには次のような手順が必要です。(最初の前提として、使用する計測器がOCXに対応していることが必要です。)
合わせて読みたい
手順 | 内容 |
計測器ドライバインストール | 計測器に添付されたWindows用デバイスドライバをインストールします |
OCXの登録 | 使用する計測器のOCXファイルをWindowsシステムに登録します |
ExcelにOCXを挿入 | 事前に登録されたOCXをExcelの中から使えるようにします |
計測器制御関数を利用 | Excel内のVisual Basicから計測器のコントロールが可能となります |
計測器ドライバインストール
計測器のマニュアルに従って、デバイスドライバをインストールしてください。通常は、setup.exeの手順通り進めば迷うことは無いはずですが、一点だけ注意することがあります。デバイスドライバをインストールする前に計測器と接続しないようにしてください。
OCXの登録
ここが一番のハードルかも知れません。コマンドプロンプトを「管理者として実行」します。

次に、コマンドプロンプトから、regsvr32.exeにより計測器メーカから供給されているOCXファイルを登録します。
C:>\Windows\System32\regsvr32.exe UV12_OCX.ocx
※上記コマンドラインは一例であり、OCXファイルがインストールされたフォルダの場所も含めて指定します。詳しくは計測器メーカのマニュアルを参照してください。
ExcelにOCXを挿入
Excelのオプションを表示し、基本設定から「開発」タブをリボンに表示するをチェックしてください。

「開発」タブの挿入から以下のように「コントロールの選択」をクリックします。

事前にOCXが登録されていれば、登録したOCX(UV12 Control)がメニューに表示されます。

登録されたOCXは、Excelのワークシート上に以下のように表示され使用可能となります。

計測器制御関数を利用
以下のソースコードは、LoadONボタンがクリックされたときに呼ばれるプログラムで、UV12OCX1を介してGpibSendString(GP-IBに文字列を送信)により、”SW 1”コマンドを送信します。最後の1はタイムアウト時間(1秒)を意味します。

このように、Excelの中からVisual Basicにより比較的容易にプログラミングすることができますので、以下のように電子負荷の電流を増やしながら電圧を測定し、測定結果をグラフ化するのも簡単です。
