![]() |
|
|
基礎解説
チェック式 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ジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |








