はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerには専用コマンドというものが用意されており、それを使うとVBAの処理を呼び出すことができます。この記事ではSequence MakerとVBAを使用していろいろな種類のメッセージボックスを表示する方法を解説します。Sequence Makerについての詳細は以下の記事を参照ください。
また、Sequence MakerからVBAの処理を呼び出す方法は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
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)
「OK」と「キャンセル」ボタン。
#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです2", "タイトル2", "OKCancel", "Question", 1)
「中止」、「再試行」、「無視」ボタン。
#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです3", "タイトル3", "AbortRetryIgnore", "Exclamation", 1)
「はい」、「いいえ」、「キャンセル」ボタン。
#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです4", "タイトル4", "YesNoCancel", "Information", 1)
「はい」と「いいえ」ボタン。
#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです5", "タイトル5", "YesNo", "Question", 1)
「再試行」と「キャンセル」ボタン。
#MACRO?(MsgBoxCustom, "これはメッセージボックスのテストです6", "タイトル6", "RetryCancel", "Question", 1)
押されたボタンの検出
どのボタンが押されたかは、関数の戻り値を見ればわかります。この戻り値をExcelのIF文などで判断して、シーケンス処理の流れを変えたり、止めたりできます。
戻り値 | 意味 |
---|---|
1 | [OK]ボタンが押された |
2 | [キャンセル]ボタンが押された |
3 | [中止]ボタンが押された |
4 | [再試行]ボタンが押された |
5 | [無視]ボタンが押された |
6 | [はい]ボタンが押された |
7 | [いいえ]ボタンが押された |
(http://officetanaka.net/excel/vba/function/msgbox.htm より引用)
実際にExcel上で実行した結果が以下です。
まとめ
今回はSequence Makerでいろいろな種類のメッセージボックスを表示する方法について解説しました。アイコンも表示されるので、ちょっとしたアクセントに良さそうです。他にもいろいろな組み合わせでメッセージボックスを表示できるので、お試しください。