LoginSignup
1
0

はじめに

Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerには専用コマンドというものが用意されており、それを使うとVBAの処理を呼び出すことができます。この記事ではSequence MakerとVBAを使用していろいろな種類のメッセージボックスを表示する方法を解説します。Sequence Makerについての詳細は以下の記事を参照ください。

また、Sequence MakerからVBAの処理を呼び出す方法は以下の記事を参照ください。

VBAの実装

Option Explicit

Function MsgBoxCustom(msg As String, _
                      title As String, _
                      button As String, _
                      icon As String, _
                      def As Integer) As Integer

    Dim ret As Integer
    Dim msgBoxStyle As Integer
    
    'デフォルト値
    msgBoxStyle = vbOKOnly
    
    'ボタンの種類
    Select Case button
        Case "OK"
            msgBoxStyle = vbOKOnly
        Case "OKCancel"
            msgBoxStyle = vbOKCancel
        Case "AbortRetryIgnore"
            msgBoxStyle = vbAbortRetryIgnore
        Case "YesNoCancel"
            msgBoxStyle = vbYesNoCancel
        Case "YesNo"
            msgBoxStyle = vbYesNo
        Case "RetryCancel"
            msgBoxStyle = vbRetryCancel
        Case Else
            msgBoxStyle = vbOKOnly
    End Select
    
    'アイコンの種類
    Select Case icon
        Case "Critical"
            msgBoxStyle = msgBoxStyle Or vbCritical
        Case "Question"
            msgBoxStyle = msgBoxStyle Or vbQuestion
        Case "Exclamation"
            msgBoxStyle = msgBoxStyle Or vbExclamation
        Case "Information"
            msgBoxStyle = msgBoxStyle Or vbInformation
    End Select
    
    'デフォルトボタンの番号
    Select Case def
        Case 1
            msgBoxStyle = msgBoxStyle Or vbDefaultButton1
        Case 2
            msgBoxStyle = msgBoxStyle Or vbDefaultButton2
        Case 3
            msgBoxStyle = msgBoxStyle Or vbDefaultButton3
        Case 4
            msgBoxStyle = msgBoxStyle Or vbDefaultButton4
    End Select

    'メッセージボックスを表示
    ret = MsgBox(msg, msgBoxStyle, title)

    '結果をリターン
    MsgBoxCustom = ret
    
End Function

メッセージボックスを表示してみる

「OK」ボタンのみ。

#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです1", "タイトル1", "OK", "Critical", 1)

image.png

「OK」と「キャンセル」ボタン。

#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです2", "タイトル2", "OKCancel", "Question", 1)

image.png

「中止」、「再試行」、「無視」ボタン。

#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです3", "タイトル3", "AbortRetryIgnore", "Exclamation", 1)

image.png

「はい」、「いいえ」、「キャンセル」ボタン。

#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです4", "タイトル4", "YesNoCancel", "Information", 1)

image.png

「はい」と「いいえ」ボタン。

#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです5", "タイトル5", "YesNo", "Question", 1)

image.png

「再試行」と「キャンセル」ボタン。

#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです6", "タイトル6", "RetryCancel", "Question", 1)

image.png

押されたボタンの検出

どのボタンが押されたかは、関数の戻り値を見ればわかります。この戻り値をExcelのIF文などで判断して、シーケンス処理の流れを変えたり、止めたりできます。

戻り値 意味
1 [OK]ボタンが押された
2 [キャンセル]ボタンが押された
3 [中止]ボタンが押された
4 [再試行]ボタンが押された
5 [無視]ボタンが押された
6 [はい]ボタンが押された
7 [いいえ]ボタンが押された

http://officetanaka.net/excel/vba/function/msgbox.htm より引用)

実際にExcel上で実行した結果が以下です。

image.png

まとめ

今回はSequence Makerでいろいろな種類のメッセージボックスを表示する方法について解説しました。アイコンも表示されるので、ちょっとしたアクセントに良さそうです。他にもいろいろな組み合わせでメッセージボックスを表示できるので、お試しください。

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