はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerには専用コマンドというものが用意されており、それを使うとVBAの処理を呼び出すことができます。この記事ではSequence MakerでVBAの処理を呼び出す方法を解説します。Sequence Makerについての詳細は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
VBAを呼び出すための専用コマンド
VBAを呼び出すための専用コマンドは以下の2つです。「?」が付いている方を使用すると、VBAを呼び出した後の戻り値を受け取り、セルに出力できます。
コマンド | 内容 |
---|---|
#MACRO(<マクロ名>[,<引数>,<引数>, ...]) | Excelのマクロを実行します。 引数は最大30個まで指定可能です。 引数にコンマを含む場合はダブルクォーテーションで括ります。 |
#MACRO?(<マクロ名>[,<引数>,<引数>, ...]) | Excelのマクロを実行して戻り値を出力します。 引数は最大30個まで指定可能です。 引数にコンマを含む場合はダブルクォーテーションで括ります。 |
(https://sequencemaker.hioki.com/manual/ja/#command より引用)
VBAのサブルーチンを呼び出してみる
VBAの実装
まずは簡単なところで、VBAで作成したサブルーチンを呼び出してみます。
VBAのコードはこんな感じにしてメッセージボックスを表示させます。なお、VBAのコードは標準モジュールを追加して記述します。
Option Explicit
Sub MsgboxTest1()
Msgbox ("これはメッセージボックスです")
End Sub
Sequence Makerから実行
Excelのシートに
#MACRO(MsgboxTest1)
と入力して、コマンド送受信ボタンを押します。
すると、Sequence MakerからVBAのサブルーチンが呼ばれて、メッセージボックスが表示されます。
メッセージボックス表示中はシーケンス処理が止まり、OKをクリックすると処理が継続します。
引数付きのVBAのサブルーチンを呼び出してみる
VBAの実装
先ほどのサブルーチンを引数付きに変更します。メッセージボックスの中身を指定できるようにします。
Option Explicit
Sub MsgboxTest2(msg As String)
Msgbox (msg)
End Sub
Sequence Makerから実行
Excelのシートに
#MACRO(MsgboxTest2,引数で渡したメッセージ)
と入力して、コマンド送受信ボタンを押します。
すると、Sequence MakerからVBAに文字列が渡され、その文字列がメッセージボックスに表示されます。
Sequence Makerにはメッセージボックスを出す専用のコマンド#MSG(文字列)があるので、実はVBAを書かなくてもメッセージボックスを出すことができる
VBAの関数を呼び出してみる
VBAの実装
今度は、VBAの関数を呼び出してみます。関数は返り値を返すことができます。今回は現在時刻を返すようにしてみました。
Option Explicit
Function Clock() As String
Clock = "現在の時刻:" & time
End Function
Sequence Makerから実行
Excelのシートに
#MACRO?(Clock)
と入力して、コマンド送受信ボタンを押します。
すると、Sequence MakerからVBAの関数が呼ばれ、返り値がセルに表示されます。
関数の返り値を取得するために「?」付きの方のコマンドを使用します
引数付きのVBAの関数を呼び出してみる
VBAの実装
最後に、引数付きのVBAの関数を呼び出してみます。今回は2つの引数の和を返す関数を作成してみました。
Option Explicit
Function Add(val1 As Integer, val2 As Integer) As Integer
Add = val1 + val2
End Function
Sequence Makerから実行
Excelのシートに
#MACRO?(Add,100,200)
と入力して、コマンド送受信ボタンを押します。
すると、Sequence MakerからVBAの関数が呼ばれ、返り値がセルに表示されます。
まとめ
今回はSequence MakerでVBAの処理を呼び出してみました。VBAのサブルーチンや関数が呼び出せるということは、つまり何でもできてしまうということになります。Sequence Makerの機能だけでは物足りないような時にちょっとした処理をVBAで書いて実行すると便利かもしれません。
おまけ
VBAと組み合わせれば🐸カエルの歌🎵だって演奏できますよ。