vbsファイルを外部ファイルから参照する。
クリックイベントを受け取り、外部ファイルの処理を実行する
外部参照とは、別のファイルに記述されたプログラムを読み取り、
利用するための技術です。
VBScriptには、デフォルトで外部ファイルを参照する機能はありません。
(自分で実装することはできますが、ここでは省略します。)
HTMLを利用してvbsファイルを外部参照してみます。(Message.htmlを参照)
HTMLは最も身近なコンピューター言語のひとつで、
例えばこのサイトもHTMLで構成されています。
(「右クリックコンテキストメニュー」-「ソースの表示」を選択すると分かります)
Message.html
<script type="text/vbscript" src="Message.vbs"></script>
<script type="text/vbscript" src="GameMessage.vbs"></script>
HTML等のマークアップ言語の特徴として、「タグ」という概念があります。
タグは<>で囲まれ、様々な機能を持っています。
今回は、<script>タグを利用して、HTML内でスクリプト言語を使用します。
script要素のtype属性にVBScriptを指定し、
src属性に外部参照するファイル名を指定します。(srcはSourceの略です。)
外部参照だけでは、VBSciptのコードを読み取っているだけなので、
ボタンがクリックされるイベントをトリガーに、
VBScriptのコードを実行します。(Message.html-2を参照)
Message.html-2
<script type="text/vbscript" src="Message.vbs"></script>
<script type="text/vbscript" src="GameMessage.vbs"></script>
<input type="button" value="会話1" name="Message">
<input type="button" value="会話2" name="GameMessage">
<input>タグを追加しました。
<input>タグは主にGUIを構成するのにつかわれます。
(GUI=グラフィカル ユーザー インターフェースの略で、
視覚的な操作機構、ボタンやアイコン等を表します。)
input要素のtype属性に"button"を指定するとボタンが作成されます。
value属性は、この場合ボタンの上に表示される文字列です。
クリックイベントをハンドルする方法は複数ありますが、
今回はname属性で指定されている対象が、
OnClickイベントを起こした場合をハンドルします。(Message.vbsを参照)
Message.vbs
Sub Message_OnClick
MsgBox("任意の文字列")
End Sub
Subは戻り値を返さないサブルーチンを表します。
サブルーチンとは、途中に挿入できるコード部品で、
例えば
MsgBox("サブルーチン開始")
Message_OnClick()
MsgBox("サブルーチン終了")
とすると、「サブルーチン開始」「任意の文字列」「サブルーチン終了」
の順で出力されます。詳しくは長くなるので省略します。
サブルーチンの名前を、「name属性の値_OnClick」にします。
こうすることにより、
任意のname属性のタグでクリックイベントが発生した場合、
このサブルーチンが呼び出されることになります。
<img>タグを使用して、画像を出力します。(Message.html-3を参照)
Message.html-3
<script type="text/vbscript" src="Message.vbs"></script>
<script type="text/vbscript" src="GameMessage.vbs"></script>
<img src="ゆっくり.png" width="300" height="300">
<input type="button" value="会話1" name="Message">
<input type="button" value="会話2" name="GameMessage">
img要素のsrc属性で画像ファイルを指定し、
ピクセル単位でwidth(幅)とheight(高さ)を指定します。
(ピクセルはディスプレイに表示できる最小単位です。)
Ctrl + C で選択範囲をコピー
Ctrl + V で選択範囲(もしくは現在の位置)に張り付け
Ctrl + X で選択範囲を切り取り
いわゆるコピペでよく使うショートカットキーです。
最終更新:2011年06月16日 20:10