![]() |
|
|
基礎解説
チェック式 WSH入門 第7回 Subプロシージャでユーザー独自の処理を定義する 1.Subプロシージャとは Visual Developer - Scripting 牟田口 大介 2006/12/07 |
|
|
|
|
|
前回は、VBScriptの重要要素となる配列について詳説した。今回は、第3回などで取り上げた算術演算子や第4回などで取り上げた関数などを組み合わせて、プロシージャ(手続き)を自作する方法について述べる。もちろん、データ型、配列などの知識が必要な場面も出てくるので、第4回だけでなく第5回、第6回もよく復習してから臨んでもらいたい。 プロシージャを自作するには、Subプロシージャを定義するSubステートメントや、Functionプロシージャを定義するFunctionステートメントを利用する。どちらも、手続きをまとめたもの(プロシージャ)を何度も呼び出せるようにするための構文である。今回は、Subプロシージャについて解説し、Functionステートメントについては次回解説する。 SubプロシージャとはSubステートメントを用いて、Subプロシージャと呼ばれる一連の手続きを定義することができる(プロシージャ:“Procedure”は英語で「手続き」を意味する)。まずは次のスクリプトをご覧いただきたい。 |
Option Explicit |
このスクリプトは、第4回で登場した1〜100のランダムな数値をメッセージ・ボックスで表示させるスクリプトを基に、Subステートメントを使ってSubプロシージャ化したものである。
Subプロシージャは次のように記述する。
Sub <Subプロシージャ名> () |
後述する「引数」がなければ( )は省略可能である。Subプロシージャはスクリプト中のどこにでも記述することができ、Subプロシージャ名を記述することでコード中のどこからでも何度でも呼び出すことができる。Subプロシージャから別のSubプロシージャを呼び出すことも可能である。Subプロシージャは呼び出されるとその内容を実行した後、呼び出し元の次の行に制御を移す。Subプロシージャでないコード部分をスクリプト・レベル・ステートメントという。概念図を示すと次のようになる。
![]() |
| Subプロシージャの概念図 |
| Subプロシージャはスクリプト中に複数定義可能であり、呼び出し元から呼び出された後、プロシージャ内部のステートメントを実行し、呼び出し元の次の行に制御を戻す。 左図は1つのSubプロシージャを1回だけ呼び出す単純な例、右図は複数のSubプロシージャを複数回呼び出す複雑な例である。 |
この例の場合、ShowRandomNumberと記述することでSubプロシージャShowRandomNumberを呼び出し、実行(1〜100のランダムな数を表示)した後、呼び出し元の次の行、MsgBox "終了"(「終了」を表示)を実行することになる。
第4回では同じスクリプトを(手動で)3回実行するというデモを行ったが、このようにSubプロシージャ化すると、同じコードを何度も記述することなく、一連の手続きを何回も呼び出して使うことができる。先ほどの例では1回呼び出しているだけだが、例えば、
ShowRandomNumber |
もしくは、
Dim intCounter |
とすることでSubプロシージャShowRandomNumberを3回呼び出すことができる。
なお、SubプロシージャShowRandomNumber内でDimステートメントを用いて宣言しているintMin、intMax変数は、このプロシージャ内だけで有効なローカル変数である。そのため、このSubプロシージャの外でintMin、intMaxを参照することはできない。逆に、Subプロシージャの外で宣言したスクリプト・レベルの変数(グローバル変数という)は、Subプロシージャ内でも参照・代入が可能である。例えば、次のようなスクリプトにおいて、スクリプト・レベルで宣言した変数strMessageの内容をSubプロシージャの中で参照できるということである。
Option Explicit |
| INDEX | ||
| [基礎解説]チェック式 WSH入門 | ||
| 第7回 Subプロシージャでユーザー独自の処理を定義する | ||
| 1.Subプロシージャとは | ||
| 2.Subプロシージャと引数(1) | ||
| 3.Subプロシージャと引数(2) | ||
| 基礎解説 |
TechTargetジャパン
- WebサーバのSSL証明書が「正しい」か確認する (2012/2/10)
SSLに必要なサーバ証明書の取得/インストールのミスはWebサイトの信頼を失墜させかねない。証明書ベンダ提供のツールで手軽かつ確実にチェックしよう - クライアントでも利用可能になるHyper-V 3.0とは? (2012/2/9)
Windows 8では、従来のWindows Virtual PCに代わって新しくHyper-V 3.0がクライアント向けにも導入される。その概要を解説 - 第303話 ペアプロ2 (2012/2/7)
あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた… - Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


