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には各種APIが用意されているので、VBAからそのAPIを呼び出せばそのような事が可能になります。この記事では実際にボタンを設置してAPI経由でSequence Makerを実行してみます。Sequence Makerについての詳細は以下の記事を参照ください。

お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。

Sequence MakerのAPI

Sequence MakerのAPIリファレンスは以下で確認できます。

基本的にはSequence Makerのほぼ全ての設定や動作がAPI経由で呼び出せるようになっています。なのでVBAと組み合わせると処理の自動化などが可能になります。なお、例も豊富に掲載されているので、コピペするだけで使えます。

送受信開始のAPI

送受信を開始するためのAPIは以下です。

image.png

単純に

Start()

を呼べばOKです。もう少し詳しく書くと、automationObjectというオブジェクトを作っておき、Start()メソッドを呼ぶ感じです。

実際にやってみる

まずはワークシート上にボタンを設置します。
開発タブから挿入を選択し、フォームコントロールの一番左上の「ボタン」を選択します。

image.png

開発タブが表示されていない場合は、リボンの上で右クリックして「リボンのユーザー設定」を選び、開発タブが表示されるように✅を入れます。

image.png

ワークシート上でドラッグ&ドロップするとマクロの登録画面が出てきます。
「新規作成」を押します。

image.png

VBAのエディタが開いたら、先ほどのAPIに載っていた例をそのままコピペします。

image.png

Sub ボタン1_Click()

    Dim automationObject As Object
    Set automationObject = Application.COMAddIns("Sequence Maker").Object
    Dim result As Long

    result = automationObject.Start()
    If result <> 0 Then
        Exit Sub
    End If
    
End Sub

ボタンのテキストは右クリックして「テキストの編集」で変更できます。

image.png

こんな感じになります。

image.png

これで完成です。あとはいつも通り、送受信したいコマンドのセルを選択し、「オリジナルコマンド送受信」ボタンを押せば、処理が開始されます!!

特定のセルから開始させる

もし、処理を開始するセルが毎回決まっていて、固定したい場合は最初に

Range("開始するセル").Select

のように書いておくと、ボタンを押したときにセルが選択状態になり、そのセルから処理が開始されます。
こんな感じです。

Sub ボタン1_Click()

    Range("C3").Select    '処理を開始するセルを選択

    Dim automationObject As Object
    Set automationObject = Application.COMAddIns("Sequence Maker").Object
    Dim result As Long

    result = automationObject.Start()
    If result <> 0 Then
        Exit Sub
    End If
    
End Sub

これなら、カーソルがワークシート上のどこにあっても、毎回同じ処理から開始されるので便利ですね!
処理ごとにボタンを複数用意しておいて、そのボタンを押すだけで処理が開始するような使い方もできそうです。

image.png

まとめ

今回は独自のコマンド送受信ボタンを作成し、Sequence MakerのAPIを呼ぶことで「コマンド送受信」ボタンを押した時と同等の動作をさせる事ができました。さらにVBAのコードを改造すればいろいろとできそうです。
Sequence MakerのAPIを見ていると、いろいろと夢が膨らんできませんかね!?

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?