日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年11月2日日曜日

Windows:任意のメッセージを表示するエラーダイアログを作る方法(開発環境不要)

イントロダクション

Windows のエラーダイアログを疑似的に作りたいという用途がたまにあります。

 意図的に特定のアプリケーションをクラッシュさせて、エラーダイアログを表示させる場合もありますが、今回は任意のメッセージを表示するエラーダイアログを作る方法について考えてみました。

 なお、今回の方法では、誰でも簡単にエラーダイアログを作れるよう、ソフトウェアの開発環境が不要な方法で考えました。


開発環境不要で、任意のメッセージを表示するエラーダイアログを作る方法

Windows 上で開発環境をインストールせずにプログラムを作成する方法として、Visual Basic Script(VBScript) を用いる方法があります。

 VBScript なら、メモ帳のような簡単なテキストエディタでプログラムを書けば、すぐにプログラムを実行することができます。


任意のメッセージをエラーダイアログを表示する

VBScript として、以下のプログラムを作成します。

MsgBox "エラーが発生しました!", vbCritical, "警告"

 このプログラムでは、MsgBox というメッセージボックスを表示する関数を使用しています。

 この関数の第1引数(MsgBox に与える1番目のデータ)には、ダイアログが表示するメッセージを指定します。ここでは、"エラーが発生しました!" というメッセージを指定しています。
 " と " の間のテキストが表示されます。(" と " でテキストを囲むのは、どこからどこまでがテキストなのかを明示的に指定する必要があるからです。)

 この関数の第2引数(MsgBox に与える2番目のデータ)には、ダイアログの状態を指定します。ここでは、vbCritical を指定して、警告メッセージアイコンを表示するようにしています。

 この関数の第3引数(MsgBox に与える3番目のデータ)には、ダイアログのタイトルを指定します。ここでは、"警告" という文字列をタイトルとして使用するように指定しています。


 そのプログラムをメモ帳などのテキストエディタに張り付け、拡張子を .vbs として保存します。
(このとき、ファイルの種類として「すべてのファイル(*.*)」を選択しないと、.txt などの余計な拡張子がついてしまい、VBScript として実行できなくなってしまうため注意が必要です。)

メモ帳に張り付けて、VBScript として保存(例:error_msg.vbs)

VBScript として実行できるように保存したファイル(例:error_msg.vbs)

 あとは、作成した VBScript ファイルをダブルクリックして実行すると、次のようなエラーダイアログを表示することができます。

VBScript で作成したエラーダイアログ

 任意のメッセージを表示したい場合や、タイトルを変更したい場合には、先ほどの VBScript を修正することで実施できます。


複数行の任意のメッセージをエラーダイアログに表示する

先ほどの VBScript の場合では、エラーダイアログのメッセージとして一行のテキストしか表示できませんでした。

 複数のメッセージを指定するには、次のように一行ごとに & vbCrLf & でメッセージを連結する必要があります。

MsgBox "エラーが発生しました!" & vbCrLf & vbCrLf & "これは手動によって作り出したエラーメッセージです。", vbCritical, "警告"

 vbCrLf はそこで改行をすることを意味します。
(プログラム上の意味としては、前のテキストに & を使用して、改行用の文字コード(vbCrLf)を連結させています。この辺りの詳しい意味を知りたい人は、インターネットで調べてみると良いでしょう。)

 このプログラムでは、「エラーが発生しました!」のあとに 1 つの改行を入れ、更にもうひとつ改行を入れることで空行を作り出しています。その空行のあとに、「これは手動によって作り出したエラーメッセージです。」が表示されます。

 実際にその VBScript を実行した結果は次のようになります。

VBScript で作成したエラーダイアログ(複数行メッセージ)

上記のテキストと改行コードを & で連結する方法を応用すれば、長いエラーダイアログのメッセージを表示することも可能です。


長いメッセージのエラーダイアログ

VBScript:
MsgBox "エラーが発生しました!" & vbCrLf & vbCrLf & "これは手動によって作り出したエラーメッセージです。" & vbCrLf & "エラーの原因~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "対処方法は~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "~~~~~~" & vbCrLf & "あとはサポート担当者に聞いてください~", vbCritical, "警告"

VBScript で作成したエラーダイアログ(長いメッセージ)

今回作成したエラーダイアログと実際のエラーダイアログの比較

パソコンを使っているときに遭遇したエラーダイアログの一例を下に載せておきます。

最近表示されるエラーダイアログ

 今回 VBScript で作成したエラーダイアログと、実際に使われているエラーダイアログは同じ見た目ですね。

 という表現よりも正確には、実際のエラーダイアログと同じものを表示するように VBScript でプログラムを組んだので、同じものが出来上がるのは必須ですね。

 VBScript で業務用のプログラムが作られていて、エラーダイアログを表示する場合には、上記で紹介したコードを使用してエラーダイアログを表示させるはずです。


まとめ

以上で、開発環境不要で、任意のメッセージを表示するエラーダイアログの作り方について解説しました。

 もし使う機会があれば、上記のコードを使ってみてはいかがでしょうか?

 たとえば、エラーダイアログの動きを調べたい場合や、はたまた画像の素材として使いたい、ドラマの撮影で使いたいといった様々なシチュエーションで活用できるでしょう。


参考文献

MsgBox 関数|VBScript関数リファレンス
http://www.kanaya440.com/contents/script/vbs/function/others/msgbox.html





関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...

");b.document.body.innerHTML="

"+a.innerHTML+"

"}; // ボタン生成・装飾を順序立てて遅延実行 setTimeout((function (){ (function(){for(var a=document.getElementsByTagName("pre"),b=0;b Chrome ユーザは、新しいウィンドウで開いたコードをコピーしてください。[理由]
';var d=a[b];d.parentNode.insertBefore(c,d.nextSibling);preArray.push(a[b].cloneNode(!0))}})(); // 装飾 (function(){function k(a){var d=document.createElement("link");d.setAttribute("rel","stylesheet");d.setAttribute("type","text/css");d.setAttribute("href",a);g(d)}function l(a,d){var b=document.createElement("script");b.setAttribute("type","text/javascript");b.setAttribute("src",a);d?(b.onload=b.onreadystatechange=function(){if(!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,e=!1,h()},n(function(){g(b)})):g(b)}function g(a){document.getElementsByTagName("head")[0].appendChild(a)} function p(a){m(function(){e=!0;a();e=!1})}function n(a){m(function(){e=!0;a()})}function m(a){e||0!=c.length?c.push(function(){a();h()}):(a(),h())}function h(){if(!e&&0 //]]>