1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

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のコードは標準モジュールを追加して記述します。
image.png

Option Explicit

Sub MsgboxTest1()

    Msgbox ("これはメッセージボックスです")
    
End Sub

Sequence Makerから実行

Excelのシートに

#MACRO(MsgboxTest1)

と入力して、コマンド送受信ボタンを押します。
すると、Sequence MakerからVBAのサブルーチンが呼ばれて、メッセージボックスが表示されます。
メッセージボックス表示中はシーケンス処理が止まり、OKをクリックすると処理が継続します。

image.png

引数付きのVBAのサブルーチンを呼び出してみる

VBAの実装

先ほどのサブルーチンを引数付きに変更します。メッセージボックスの中身を指定できるようにします。

Option Explicit

Sub MsgboxTest2(msg As String)

    Msgbox (msg)
    
End Sub

Sequence Makerから実行

Excelのシートに

#MACRO(MsgboxTest2,引数で渡したメッセージ)

と入力して、コマンド送受信ボタンを押します。
すると、Sequence MakerからVBAに文字列が渡され、その文字列がメッセージボックスに表示されます。

image.png

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の関数が呼ばれ、返り値がセルに表示されます。

関数の返り値を取得するために「?」付きの方のコマンドを使用します

image.png

引数付きの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の関数が呼ばれ、返り値がセルに表示されます。

image.png

まとめ

今回はSequence MakerでVBAの処理を呼び出してみました。VBAのサブルーチンや関数が呼び出せるということは、つまり何でもできてしまうということになります。Sequence Makerの機能だけでは物足りないような時にちょっとした処理をVBAで書いて実行すると便利かもしれません。

おまけ

VBAと組み合わせれば🐸カエルの歌🎵だって演奏できますよ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?