PowerShellでMessageBox(メッセージボックス)を使用して、メッセージを表示させる方法を解説します。
また、ユーザーの選択に応じた戻り値を取得し、条件分岐を行うサンプルもご紹介します。
書式
メッセージボックスを使用する際の書式になります。
# アセンブリのロード Add-Type -Assembly System.Windows.Forms # メッセージボックスの表示 [System.Windows.Forms.MessageBox]::Show("①", "②", "③", "④", "⑤")
1行目の記述は、PowerShellでメッセージボックスを使用する際に必須となる記述です。
.NET Frameworkライブラリのロード処理となっており、1度記述しておけば以降は不要です。
2行目の記述は、メッセージボックスを表示させる処理の本体となっています。
各引数の内容は以下の通りです。
引数の番号 | 引数の順番 | 内容 |
---|---|---|
① | 第一引数 | メッセージボックスに表示するメッセージ(文字列) |
② | 第二引数 | メッセージボックスのタイトル |
③ | 第三引数 | メッセージボックスのボタン |
④ | 第四引数 | メッセージボックスのアイコン |
⑤ | 第五引数 | 第三引数で指定したボタンのうち、デフォルトで選択状態とするボタン |
第三引数「メッセージボックスのボタン」は、以下のものが使用可能です。
項番 | 設定値 | 説明 |
---|---|---|
1 | OK | [OK]ボタンのみ(既定値) |
2 | OKCancel | [OK] [キャンセル] |
3 | AbortRetryIgnore | [中止] [再試行] [無視] |
4 | YesNoCancel | [はい] [いいえ] [キャンセル] |
5 | YesNo | [はい] [いいえ] |
6 | RetryCancel | [再試行] [キャンセル] |
第四引数「メッセージボックスのアイコン」は、以下のものが使用可能です。
項番 | 設定値 | 説明 |
---|---|---|
1 | None | アイコン無し(既定値) |
2 | Hand | ×マーク(エラー音あり) |
3 | Error | 同上 |
4 | Stop | 同上 |
5 | Question | ?マーク |
6 | Exclamation | 黄色の!マーク(警告音あり) |
7 | Warning | 同上 |
8 | Asterisk | 青色の!マーク(警告音あり) |
9 | Information | 同上 |
第五引数「デフォルトで選択状態とするボタン」は、以下のように指定します。
(3ボタン構成の場合は下記のように指定します。2ボタン構成で[button3]を指定すると、存在しないボタンが指定されているためエラーとなるので注意が必要です)
項番 | 設定値 | 内容 |
---|---|---|
1 | button1 | 一番左のボタン |
2 | button2 | 真ん中のボタン |
3 | button3 | 一番右のボタン |
4 | button4 | 指定禁止(メッセージボックスのボタンは最大3つなのでエラーとなります。) |
サンプル
PowerShellスクリプトと実際に表示されるメッセージボックスのサンプルになります。
サンプル1
OKボタンのみのシンプルなメッセージボックスです。
Add-Type -Assembly System.Windows.Forms [System.Windows.Forms.MessageBox]::Show("メッセージ", "タイトル", "OK")
サンプル2
ボタンが「[中止] [再試行] [無視]」、アイコンが青色!マークで、デフォルトで選択されているボタンが「ボタン2=再試行」となっているメッセージボックスです。
Add-Type -Assembly System.Windows.Forms [System.Windows.Forms.MessageBox]::Show("メッセージ", "タイトル", "AbortRetryIgnore", "Information", "button2")
戻り値を取得して条件分岐させる
メッセージボックスはボタン毎に異なる戻り値が設定されています。
これを利用し、ユーザーが選択したボタンによって、異なる処理を実行させることが可能です。
下記がサンプルのスクリプトです。
これを実行すると、「はい」と「いいえ」の2つのボタンがあるメッセージボックスが表示されます。
それぞれのボタンをクリックすることで、下記のようにそれぞれに対応したメッセージボックスが表示され、クリックしたボタンによって別の処理が実行されていることが分かります。
「はい」をクリック →「【はい】がクリックされました。」と表示される。
「いいえ」をクリック →「【いいえ】がクリックされました。」と表示される。
Add-Type -Assembly System.Windows.Forms $DialogResult = [System.Windows.Forms.MessageBox]::Show("メッセージ", "タイトル", "YesNo", "Information") Switch ($DialogResult){ {$_ -eq [System.Windows.Forms.DialogResult]::None}{ break } {$_ -eq [System.Windows.Forms.DialogResult]::OK}{ [System.Windows.Forms.MessageBox]::Show("【OK】がクリックされました。", "【OK】", "OK", "Information") break } {$_ -eq [System.Windows.Forms.DialogResult]::Cancel}{ [System.Windows.Forms.MessageBox]::Show("【キャンセル】がクリックされました。", "【キャンセル】", "OK", "Information") break } {$_ -eq [System.Windows.Forms.DialogResult]::Abort}{ [System.Windows.Forms.MessageBox]::Show("【中止】がクリックされました。", "【中止】", "OK", "Information") break } {$_ -eq [System.Windows.Forms.DialogResult]::Retry}{ [System.Windows.Forms.MessageBox]::Show("【再試行】がクリックされました。", "【再試行】", "OK", "Information") break } {$_ -eq [System.Windows.Forms.DialogResult]::Ignore}{ [System.Windows.Forms.MessageBox]::Show("【無視】がクリックされました。", "【無視】", "OK", "Information") break } {$_ -eq [System.Windows.Forms.DialogResult]::Yes}{ [System.Windows.Forms.MessageBox]::Show("【はい】がクリックされました。", "【はい】", "OK", "Information") break } {$_ -eq [System.Windows.Forms.DialogResult]::No}{ [System.Windows.Forms.MessageBox]::Show("【いいえ】がクリックされました。", "【いいえ】", "OK", "Information") break } }
記事は以上です。デバッグなどにも大活躍のメッセージボックスがPowerShellでも簡単に使用出来ます。是非ご活用ください。
コメント