2
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?

【EXCEL】Sequence Makerの計測結果のテキスト書出し

Posted at

やること

 Excel通信コマンド送受信アドイン「Sequence Maker」を別のツールから呼び出し、結果を別のツールへ渡す。(ちなみに、読み出すシーケンスは複数)

事前確認:Qiitaでの記事

 ということで、以下の検索をしたところ、171件ヒットした。(2025/03/09時点)
「”Sequence Maker”」の検索結果 - Qiita

シーケンス メイカーさんの記事

 以下の記事をはじめとして、65件のSequence Makerに関する記事がある。残りの100件強の記事の中でアドイン「Sequence Maker」を扱っているのは、シーケンス メイカーさんの記事の紹介など。
Sequence Makerの情報サイト一覧 #Excel - Qiita

複数のシーケンス

処理ごとにボタンを複数用意しておいて、そのボタンを押すだけで処理が開始するような使い方もできそうです。

Sequence Makerで独自のコマンド送受信ボタンを作る方法(APIを使ってみる) #Excel - Qiita

その他

残りの100件強の記事の中でアドイン「Sequence Maker」を扱っているのは、シーケンス メイカーさんの記事の紹介など。

【Qiita】ひとりアドベントカレンダー2024年の完走率を調査してみたよ #PHP - Qiita

 ちなみにこの結果は、74件ヒットした。(2025/03/09時点)
「user:kaizen_nagoya ”Sequence Maker” 」の検索結果 - Qiita

事例

 今回、コマンドプロンプトで、BatchFile → VBScript → EXCEL(VBA) と起動する。結果は、コマンドプロンプトに表示される。
 c:\SequenceMaker に関連ファイルを置く。

EXCELファイル

結果を表示するシート
20250309_155115.jpg

シーケンス1つ目のシート
20250309_155222.jpg

シーケンス2つ目のシート
20250309_155349.jpg

EXCEL VBA

SequenceMaker.bas
Attribute VB_Name = "SequenceMaker"
Option Explicit

Sub SequenceMakerStart_1()
'    C:\ProgramData\HIOKI\Sequence Maker\Manual\ja\Sequence Maker API.html より
'    シート:その1のシーケンスを起動
    Dim automationObject As Object
    Set automationObject = Application.COMAddIns("Sequence Maker").Object
    Worksheets("その1").Activate
    Dim result As Long
    result = automationObject.Start()
    If result <> 0 Then
        Exit Sub
    End If
    Worksheets("結果").Activate
'    result:
'    0   成功
'    1   送受信中
'    2   停止中
'    3   引数の型が違う
'    4   インターフェイスNo.が範囲外
'    5   インターフェイスがオープン状態
'    6   インターフェイスがクローズ状態
'    7   ドライバが未インストール
'    8   ドライバのバージョンが古い
'    9   インターフェイスが未選択
'    10  インターフェイスオープン失敗
'    11  タイムアウト時間が範囲外
'    12  送受信失敗
'    13  ファイルが存在しない
'    14  ファイルアクセス失敗
'    15  コマンドNo.が範囲外
End Sub

Sub SequenceMakerStart_2()
'    C:\ProgramData\HIOKI\Sequence Maker\Manual\ja\Sequence Maker API.html より
'    シート:その2のシーケンスを起動
    Dim automationObject As Object
    Set automationObject = Application.COMAddIns("Sequence Maker").Object
    Worksheets("その2").Activate
    Dim result As Long
    result = automationObject.Start()
    If result <> 0 Then
        Exit Sub
    End If
    Worksheets("結果").Activate
'    result:
'    0   成功
'    1   送受信中
'    2   停止中
'    3   引数の型が違う
'    4   インターフェイスNo.が範囲外
'    5   インターフェイスがオープン状態
'    6   インターフェイスがクローズ状態
'    7   ドライバが未インストール
'    8   ドライバのバージョンが古い
'    9   インターフェイスが未選択
'    10  インターフェイスオープン失敗
'    11  タイムアウト時間が範囲外
'    12  送受信失敗
'    13  ファイルが存在しない
'    14  ファイルアクセス失敗
'    15  コマンドNo.が範囲外
End Sub

[Sub SequenceMakerStart_1()]は[シート:その1]を、[Sub SequenceMakerStart_2()]は[シート:その2]を起動するマクロ。

BatchFile

SequenceMaker.vbs
' 対象のExcelファイル
Dim sArg1
    sArg1 = WScript.Arguments(0)
'    sArg1 = "SequenceMaker.xlsm"
' 実行させるマクロ名
Dim sArg2
    sArg2 = WScript.Arguments(1)
'    sArg2 = "SequenceMakerStart_1"
' 処理結果を読み取るシート名
Dim sArg3
    sArg3 = WScript.Arguments(2)
'    sArg3 = "結果"
' 処理結果を読み取るセル位置
Dim sArg4
    sArg4 = WScript.Arguments(3)
'    sArg4 = "F5"

'開いているEXCELのマクロ実行
    Dim excelApp
    Dim worlbook
    Set workbook = Nothing 
    Set excelApp = Nothing
    Set excelApp = GetObject(, "Excel.Application")

    On Error Resume Next
    Set workbook = excelApp.Workbooks(sArg1)
    On Error GoTo 0

    If workbook Is Nothing Then
      WScript.Echo "Not open"
      WScript.Quit
    End If

    'マクロ実行
    excelApp.Application.Run sArg2

    ' 終了コードを取得
    Dim status
    status = workbook.WorkSheets(sArg3).Range(sArg4).Text
    status = "VBS " + status

    '終了コードを返す(PopUp)
    WScript.echo status
    '終了コードを返す(DOS窓)
    'Dim objCMD
    'Set objCMD = CreateObject("WScript.Shell")
    'objCMD.Run "cmd /K ECHO " & status 

    Set workbook = Nothing
    Set excelApp = Nothing

BatchFile

SequenceMaker.bat
cscript "C:\SequenceMaker\SequenceMaker.vbs"  %1 %2 %3 %4

引数は以下の通り。

対象のExcelファイル
"SequenceMaker.xlsm"
実行させるマクロ名
"SequenceMakerStart_1"
処理結果を読み取るシート名
"結果"
処理結果を読み取るセル位置
"F5"

実行結果

20250309_161346.jpg

C:>C:\SequenceMaker\SequenceMaker.bat "SequenceMaker.xlsm" "SequenceMakerStart_1" "結果" "F5"

C:>cscript "C:\SequenceMaker\SequenceMaker.vbs" "SequenceMaker.xlsm" "SequenceMakerStart_1" "結果" "F5"
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

VBS これはその1

C:>C:\SequenceMaker\SequenceMaker.bat "SequenceMaker.xlsm" "SequenceMakerStart_2" "結果" "F5"

C:>cscript "C:\SequenceMaker\SequenceMaker.vbs" "SequenceMaker.xlsm" "SequenceMakerStart_2" "結果" "F5"
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

VBS これはその2

C:>

2
0
1

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
2
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?