第2章 Visual Basic の主なウィンドウ


この章の見出しの一覧

2.1 メインウィンドウ

 メインウィンドウとは/メインウィンドウの呼び出し方/ツールバーについて/メニューについて

2.2 プロジェクトウィンドウ

 プロジェクトウィンドウとは/プロジェクトウィンドウの呼び出し方

2.3 フォームウィンドウ

 フォームウィンドウとは/コントロールとは/コントロールのロック/フォームウィンドウの呼び出し方

2.4 プロパティウィンドウ

 プロパティウィンドウとは/プロパティウィンドウとフォームウィンドウの結び付き/プロパティウィンドウの表示対象/プロパティの値の参照と設定/プロパティウィンドウの呼び出し方/プロパティウィンドウとオブジェクトの対応関係の変更

2.5 ツールボックス

 ツールボックスとは/コントロールのサイズの変更と移動/ツールボックスの呼び出し方/カスタムコントロールとは

2.6 メニューエディタ

 メニューエディタとは/メニューの標準化とメニューの置き換え (取り込み) /メニューエディタの呼び出し方/モーダルなウィンドウとモードレスなウィンドウ

2.7 コードウィンドウ

 コードウィンドウとは/イベントプロシージャとジェネラルプロシージャ/宣言セクションとプロシージャ/コードウィンドウの呼び出し方

2.8 デバッグウィンドウ

 デバッグウィンドウとは/デバッグウィンドウ上のログの活用例/デバッグウィンドウの呼び出し方/Visual Basic の三つの状態/デバッグのための操作1(ブレークポイントの設定)/デバッグのための操作2(インスタントウォッチ)/デバッグのための操作3(呼び出し履歴)/デバッグのための操作4(シングルステップとプロシージャステップ)


Visual Basic の主なウィンドウには、次の8種類があります。これらは言わば、あなたの召使として働くロボットだと思ってください。

召使のロボット

それぞれのウィンドウは、つまり召使たちは、それぞれの顔をもっています。顔写真をよく見て名前が一致するように、しっかりと記憶に留めてください。また、それぞれのウィンドウの役割も覚えてください。それぞれの召使たちの役割は、厳格に決まっていますから、例えば、掃除係に風呂炊きを命じても事がはこびません。

これらのウィンドウを使うときには、先ずはディスプレイ画面上にウィンドウを登場させることが必要です。ですから何はともあれ、これらのウィンドウを呼び出すための操作方法だけは、この章でマスタしてください。アイコンあるいはメニューという言わば“魔法のランプ”から召使たちを登場させないことには、話が始まりません。



2.1 メインウィンドウ


[メインウィンドウとは]

メインウィンドウは、次の形 (顔) をしています。
 

メインウィンドウ (ツールバーの表示あり)


メインウィンドウは、Visual Basic による開発作業を行うときに必ず登場させるものです。これは、主要な働きをする召使の頭領格だということができます。何を行う場合も、メインウィンドウから必要なウィンドウ (召使) を呼び出すことができます。ですから、仕事の取っ掛かりを付けるために先ず始めに呼び出すべき召使いです。


[メインウィンドウの呼び出し方]

メインウィンドウは、ディスプレイ画面上に一つだけしか登場させない (一つだけ登場させる) という習慣を付けるのがよいでしょう。特殊なケースでは、例えばクライアントアプリケーションとサーバアプリケーションを同時にデバッグするようなときには、二つ登場させることが必要になることがあります。これはあくまでも例外的なケースであって、通常は一つだけしか登場させないようにすることをお勧めいたします。

メインウィンドウを登場させるには、Windows95 のスタートボタンをクリックして、出現したメニューを右にたどっていって、Visual Basic の 16 ビット版または 32 ビット版に相当するメニュー項目を見つけ出して、それをクリックしてくださいなお、Windows NT 3.51 の場合は、プログラムマネージャ画面の中の次の形をした Visual Basic のアイコンをダブルクリックしてください。
 

Visual Basic のアイコン

eee MANDALA と Visual Basic を併用する開発作業においては、Windows95 のスタートボタンをクリックして、出現したメニューを右にたどっていって、 TRIPLEE16 または MANDALA16 または TRIPLEE32 または MANDALA32 というメニュー項目を見つけ出して、それをクリックしてください。なお、Windows NT 3.51 の場合は、プログラムマネージャ画面の中の次の形の eee MANDALA のアイコンをダブルクリックしてください。こうすると、Visual Basic のメインウィンドウがディスプレイ画面上に登場するとともに eee MANDALA を利用するための準備が整います。
 

eee MANDALA のアイコン

Visual Basic または eee MANDALA を使用している最中は、このメインウィンドウをディスプレイ画面上に留めておくことが必要です。

Visual Basic および eee MANDALA の使用を終えるときには、メインウィンドウの右上端のX印閉じるボタンをクリック、または左上端のアイコンをダブルクリック (Windows NT 3.51 では左上端のコントロールボックスをダブルクリック) して、このメインウィンドウを消してください。あるいは、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の Visual Basic の終了(X) というメニュー項目 (次の図参照) をクリックすることによって消すこともできます。




[ツールバーについて]

メインウィンドウには、ツールバーを表示することもできますし、次の形 (顔) のように表示しないこともできます。ツールバーが表示されている最初の顔写真と少しばかり感じが違うかもしれませんが、同一人物です。
 

メインウィンドウ (ツールバーの表示なし)


ツールバーを表示するかどうかを変更するには、メインウィンドウの表示(V) というメニュータイトルを開いて、その中のツールバー(T) というメニュー項目 (次の図参照) をクリックしてください。ツールバーを表示したり消したり、サイクリックに変えることができます。ここで、実際に操作を行ってみてください。



この操作だけでなく、それぞれのウィンドウの呼び出し方など、実際に操作しながら本書を読み進めることをお勧めいたします。
 

ツールバー

ツールバーには、頻繁に行う操作を凝縮したボタンが上の図のように張り付いています。ツールバーを表示しておくと、そういう操作がボタン一つで行えるので、とても便利です。なお、それぞれのボタンの使い方は、この後で順次案内があります。


[メニューについて]

ツールバーのボタンは簡便なのですが、ボタンの数が多くなるとスペースを食いますし、見つけ難くなります。数多くの機能に対応するためには階層構造を設けるというような工夫が必要です。

この点メニューには、始めから階層構造が設けてあります。メニュータイトルが第一階層になっていて、メニュー項目が第二階層以降になっています。

具体例として、メインウィンドウを見てみると、8個のメニュータイトルがあります。即ち、ファイル(F)、編集(E)、表示(V)、挿入(I)、実行(R)、ツール(T)、アドイン(A)、ヘルプ(H) の8個です。このどれか一つをクリックすると、そのメニューが開かれて、第二階層のメニュー項目が縦に並んで出て来ます。そこで、メニュー項目の一つをクリックすることによって、Visual Basic に指示を与えることになります。

メニュータイトルを開いた上に、更にメニュー項目をクリックするという2回の操作が必要ですが、機能をグループ分けすることになるので、メニューは数多くの機能に対応することができます。また、一つ一つメニューを開いてその中を見ていくと、どんな機能があるのかその概略が分かる点も便利です。



2.2 プロジェクトウィンドウ


[プロジェクトウィンドウとは]

プロジェクトウィンドウは、次の形 (顔) をしています。
 

プロジェクトウィンドウ


Visual Basic のプロジェクトとは、「開発プロジェクト」 というような意味ではありません。このプロジェクトという言葉の意味は、「幾つかのモジュールから構成されたプログラム」 に近いものだと考えてください。実際に、プロジェクトとは、幾つかのモジュールを集めた言わばモジュールの集合です。

プロジェクトウィンドウは、プロジェクトの代表としてメンバの一覧表を管理する召使です。そして、メンバの一覧表は、この召使を通して見ることができるようになっています。実際に、プロジェクトウィンドウには、そのタイトルの部分にプロジェクト名が記載されており、その下の二つのボタンの下にプロジェクトを構成するメンバの一覧表、即ちモジュール一覧表が記載されています。

プロジェクトウィンドウは、プロジェクトに対応して一つずつ存在するものだと思ってよいのですが、ディスプレイ画面上には、一つだけ (Visual Basic 一つに対して一つ) しか登場させることができません。詳しくいうと (後述する) カレントプロジェクトに対応するプロジェクトウィンドウを一つだけ登場させることができます。

eee MANDALA を用いた開発では、次の三つのモジュールを共通ライブラリモジュールとして、必ずプロジェクトに追加する (付け加える) ことになっています。

上に図示したプロジェクトウィンドウの中に、モジュール一覧表がありますが、これら三つのモジュールが追加されて (付け加えられて) いることを確認してください。なお、これらは、自動的に追加されるようになっています。


[プロジェクトウィンドウの呼び出し方]

Visual Basic のメインウィンドウを登場させると、同時にこのプロジェクトウィンドウも登場します。

プロジェクトウィンドウを使わないときには、最小化 (アイコン化) することもできますし、ディスプレイ画面上から消すこともできます。最小化 (アイコン化) するには、プロジェクトウィンドウの右上端の下線印 (Windows NT 3.51 の場合は下向き三角印) 最小化ボタンをクリックしてください。ディスプレイ画面上から消すには、プロジェクトウィンドウの右上端のX印閉じるボタンをクリック (Windows NT 3.51 の場合には左上端のコントロールボックスをダブルクリック) してください。ただし、プロジェクトウィンドウは、メインウィンドウの次によく使う召使ですから、通常はディスプレイ画面上に留めておいた方がよいでしょう。
 

ツールバーの中のプロジェクトウィンドウというボタン

ディスプレイ画面上から消されたプロジェクトウィンドウを呼び出すには、上図のボタン、即ちメインウィンドウのツールバーの中のプロジェクトウィンドウボタンをクリックしてください。または、メインウィンドウ表示(V) というメニュータイトルを開いて、その中のプロジェクトウィンドウ(R) というメニュー項目をクリックしてください。

因みに、このプロジェクトウィンドウを呼び出す操作は、プロジェクトウィンドウが既にディスプレイ画面上のどこかに登場している場合にも有効です。即ち、ディスプレイ画面上に数多くのウィンドウが重なっていて、どこにプロジェクトウィンドウがあるのかを探すのが面倒なときには、この操作をすることでプロジェクトウィンドウをディスプレイ画面の前面に浮き上がらせることができます。



2.3 フォームウィンドウ


[フォームウィンドウとは]

フォームウィンドウは、次の形 (顔) をしています。
 

フォームウィンドウ (コントロールを張り付ける前)


フォームウィンドウは、アプリケーションプログラム (プロジェクト) の画面をデザインするときに使う召使です。スクリーンペインタとかスクリーンエディタという一般名称で呼ばれる召使の仲間ですが、Visual Basic では、特にフォームウィンドウという名前がついています。

上の顔写真は、まっさらの状態ですが、次の顔写真は、上のフォームウィンドウのサイズを大きくした後に、いろいろなコントロールを張り付けたものです。

 

フォームウィンドウ (コントロールを張り付けた後)


フォームウィンドウの上では、ボタンやラベルやテキストボックスなどのコントロールを張り付けたり、色を塗ったりすることで、いわゆる画面のデザインを行います。なお、フォームウィンドウに方眼紙のようなグリッド (格子) があるのは、コントロールを張り付けるときの位置合わせのためです。グリッドに合わせることによって、整然とした配置にすることができます。

コントロールを張り付けるには、フォームウィンドウと一緒にツールボックスメニューエディタという召使を使います。そして、色を塗るには、フォームウィンドウと一緒にプロパティウィンドウという召使を使います。

フォームウィンドウは、Visual Basic のプロジェクトを構成するフォームモジュールに対応して一つずつ存在するものです。もしも、プロジェクトが複数のフォームモジュールから構成されている場合には、即ちそのアプリケーションプログラムが複数の画面を持つ場合には、それら複数のフォームウィンドウを次々とディスプレイ画面上に登場させていくこともできます。この章でご紹介している8種類のウィンドウを召使にたとえていますが、フォームウィンドウという召使は一人とは限らず、複数人のこともあるということになります。なお、後でご紹介するコードウィンドウについても同じことがいえます。


[コントロールとは]

コントロールとは、フォームウィンドウに張り付けられるものです。その種類をあげると、ボタン (正式にはコマンドボタンと呼ぶ) やラベルテキストボックス (文字列をインプットするためのエリア) やフレームオプションボタンチェックボックスコンボボックススクロールバーなどがあります。メニューもコントロールの一種です。

メニュー以外のコントロールは、ツールボックスから取り出してフォームウィンドウの上に張り付けますが、メニューというコントロールは、メニューエディタを使って張り付けます。


[コントロールのロック]

フォームウィンドウに張り付けたコントロールは、移動することもサイズを変更することも簡単です。これがあまりにも簡単過ぎるために、従来は何かの拍子に誤って移動したりサイズを変更したりしてしまうことがありました。これを防止するためにコントロールのロックという機能が Visual Basic 4.0 から追加になっています。ロックをしておくと、コントロールを移動したりサイズを変更したりできなくなりますから、安心してフォームを見ることができます。
 

ツールバーの中のコントロールのロックというボタン

コントロールのロックをするには、フォームウィンドウをクリックしてフォーカスを当ててから、上図のボタン、即ちメインウィンドウのツールバーの中のコントロールのロックボタンをクリックしてください。または、メインウィンドウ編集(E) というメニュータイトルを開いて、その中のコントロールのロック(K) というメニュー項目をクリックしてください。

いずれの操作によっても、サイクリックにロックの設定と解除ができます。なお、ロック状態かどうかは、上図のボタンの形で分かります。


[フォームウィンドウの呼び出し方]

Visual Basic のメインウィンドウを登場させると、同時にフォームウィンドウも登場します。

フォームウィンドウを使わないときには、最小化 (アイコン化) することもできますし、ディスプレイ画面上から消すこともできます。

プロジェクトウィンドウの場合と同様に、最小化 (アイコン化) するには、フォームウィンドウの右上端あたりにある下線印 (Windows NT 3.51 の場合は下向き三角印) 最小化ボタンをクリックしてください。ディスプレイ画面上から消すには、フォームウィンドウの右上端のX印閉じるボタンをクリック、またはウィンドウの左上端にアイコンをダブルクリック (Windows NT 3.51 の場合には左上端のコントロールボックスをダブルクリック) してください。

ディスプレイ画面上から消されたフォームウィンドウを呼び出すには、プロジェクトウィンドウのモジュール一覧表の中の呼び出したいフォームモジュール名 (即ちファイル名) をクリックして反転させた後にフォームの表示というボタンをクリックしてください。または、プロジェクトウィンドウのモジュール一覧表の中の呼び出したいフォームモジュール名 (即ちファイル名) をダブルクリックする方法もあります。



2.4 プロパティウィンドウ


[プロパティウィンドウとは]

プロパティウィンドウは、次の形 (顔) をしています。
 

プロパティウィンドウ


プロパティウィンドウは、各種のプロパティの値を見たり設定したりするための召使です。これを使うことによって、フォームのプロパティの値、またはフォームの上に張り付けられたコントロールのプロパティの値を見たり設定したりできます。言わば、これはプロパティに関する専用エディタです。

プロパティとは、辞書によると所有物とか特性というような意味ですが、こう考えるよりも詳細情報または詳細情報種別という意味だと捕らえる方が分かりやすいでしょう。こう捕らえると、フォームのプロパティとは、フォームの詳細情報または詳細情報種別のことですし、コントロールのプロパティとは、コントロールの詳細情報または詳細情報種別のことだということができます。

なお、プロパティウィンドウは、後述のコードモジュールのプロパティの値 (例えばコードモジュールのオブジェクト名) を見たり設定したりする場合にも使います。


[プロパティウィンドウとフォームウィンドウの結び付き]

プロパティウィンドウは、本来ならばそれぞれのフォームウィンドウ (およびコードウィンドウ) ごとにあってもよさそうですが、スペースの関係からディスプレイ画面上に同時に一つだけ (正確には Visual Basic 一つに対して一つ) しか登場させることができないようになっています。ですから、ディスプレイ画面上に複数のフォームウィンドウ (やコードウィンドウ) が登場しているときには、一つのプロパティウィンドウを切り換えながら使うことによって、フォームウィンドウ (またはコードウィンドウ) のどれか一つと連携プレーをさせることになります。

プロパティウィンドウとフォームウィンドウ (またはコードウィンドウ) との結び付きは、プロパティウィンドウの1行目 (即ちタイトルバー) に記載されています。この結び付きを変更するには、フォームウィンドウ (またはコードウィンドウ) をクリックしてください。こうすれば、プロパティウィンドウは、今クリックしたものと結び付くことになります。


[プロパティウィンドウの表示対象]

フォームウィンドウと結び付いているプロパティウィンドウは、フォームのプロパティを表示している場合とフォームに張り付けられた各種のコントロールのプロパティを表示している場合があります。後者の場合の注意事項ですが、フォームの上には、いろいろなコントロールを幾つも張り付けることができるので、プロパティウィンドウがどのコントロールのプロパティを表示しているのか、その対応関係に気を付けてください。

表示されているプロパティがどれのものかということは、プロパティウィンドウの2行目 (タイトルバーのすぐ下) に記載されています。即ち、フォームのプロパティを表示している場合はフォーム名が記載されていますし、コントロールのプロパティを表示している場合はコントロール名が記載されていてます。

因みに、フォームおよびコントロールなどを総称してオブジェクトと呼びます。この用語を用いると、プロパティウィンドウの2行目には、オブジェクト名が記載されているということができます。


[プロパティの値の参照と設定]

プロパティウィンドウの3行目以降は、左側にプロパティの名前、右側にプロパティの値を記載した一覧表になっています。

例えば、あるオブジェクトの色を塗るには、そのオブジェクトの BackColor というプロパティの名前をクリックして反転させてから、その右の欄に適当な色の値を設定してください。色の値の設定するには、プロパティの値の欄の右端の下向き三角印のボタンをクリックするとパレットが現れますから、その中の色をクリックしてください。


[プロパティウィンドウの呼び出し方]

Visual Basic のメインウィンドウを登場させると、同時にプロパティウィンドウも登場します。

プロパティウィンドウを使わないときには、最小化 (アイコン化) することもできますし、ディスプレイ画面上から消すこともできます。最小化 (アイコン化) するには、プロパティウィンドウの右上端の下線印 (Windows NT 3.51 の場合は下向き三角印) 最小化ボタンをクリックしてください。ディスプレイ画面上から消すには、プロジェクトウィンドウの右上端のX印閉じるボタンをクリック (Windows NT 3.51 の場合には左上端のコントロールボックスをダブルクリック) してください。

これらの操作方法は、既におなじみのものです。一般に、こういった操作の共通性に着目すると、覚えた操作を広く応用できるようになります。
 

ツールバーの中のプロパティウィンドウというボタン

ディスプレイ画面上から消されたプロパティウィンドウを呼び出すには、上図のボタン、即ちメインウィンドウのツールバーの中のプロパティウィンドウボタンをクリックしてください。

または、メインウィンドウ表示(V) というメニュータイトルを開いて、その中のプロパティウィンドウ(S) というメニュー項目をクリックしてください。

なお、どのフォームのオブジェクトのプロパティを対象にするのかを明確にするために、呼び出し操作の前か後に、フォームウィンドウをクリックしてフォーカスを当てることが必要です。

因みに、このプロパティウィンドウを呼び出す操作は、プロパティウィンドウが既にディスプレイ画面上のどこかに登場している場合にも有効です。即ち、ディスプレイ画面上に数多くのウィンドウが重なっていて、どこにプロパティウィンドウがあるのかを探すのが面倒なときには、この操作をすることでプロパティウィンドウをディスプレイ画面の前面に浮き上がらせることができます。


[プロパティウィンドウとオブジェクトの対応関係の変更]

プロパティウィンドウは、ディスプレイ画面上のどれか一つのフォームウィンドウ (またはコードウィンドウ) と結び付いていて、その中のある一つのオブジェクトのプロパティを表示しています。プロパティウィンドウの2行目 (タイトルバーのすぐ下) には、そのオブジェクト名が記載されているので、プロパティウィンドウとオブジェクトの対応関係は一目瞭然です。

プロパティウィンドウとオブジェクトとの対応関係を変更するには、フォームウィンドウ (またはコードウィンドウ) をクリックしてフォーカスを当ててください。この操作はフォームウィンドウの場合、どの部分をクリックするかによって次の違いがあります。

あるフォームウィンドウのフォーム部分をクリックすると、プロパティウィンドウは、そのフォームウィンドウと結び付いてそのフォームプロパティを表示します。そのフォームに対応づけられるわけです。

あるフォームウィンドウの上に張り付けられている (メニュー以外の) あるコントロールをクリックすると、プロパティウィンドウは、そのフォームウィンドウと結び付いてそのコントロールプロパティを表示します。そのコントロールに対応づけられるわけです。



2.5 ツールボックス


[ツールボックスとは]

ツールボックスは、次の形 (顔) をしています。
 

ツールボックス (ウィンドウ)


図の右側に書いてあるのは、このツールボックスの中にあるコントロールの名前です。

ツールボックスは、フォームウィンドウ上に張り付けることのできるコントロールを保管している召使です。ここからコントロールを取り出すことができます。

ツールボックスの中のコントロールを一つ選んで、そのアイコンをクリックしてへこませた後に、フォームウィンドウの中の適当な場所でドラッグ (マウスの左ボタンをクリックしたままの状態でのマウスの移動) を開始してください。すると破線の四角形ができますから、できたところでマウスのボタンを離すと、そこにコントロールが張り付けられます。繰り返の説明ですが、ツールボックスの中のアイコンを一つへこませてからでないと、うまく張り付けられません。

なお、張り付け先を示す破線の四角形フォームウィンドウのフォーム部分につくると、指定したコントロールをフォームの上に張り付けることになります。

また、張り付け先を示す破線の四角形フォームウィンドウの中のフレームなどのコントロールの中につくると、指定したコントロールをフレームなどのコントロールの中に張り付けることになります。こうすると、コントロール間に親子関係が付き、フレームなどの親コントロールを移動させると、その中の子コントロールも一緒に移動するようになります。


[コントロールのサイズの変更と移動]

フォームの上に張り付けたコントロールも、コントロールの中に張り付けた子コントロールも、張りつけた後で、サイズの変更移動をすることができます。

コントロールのサイズを変更するには、その外枠をドラッグ (マウスの左ボタンをクリックしたままの状態でのマウスの移動) してください。これは、ウィンドウのサイズを変更するときに、その外枠をドラッグするのと同じ要領であり、マウスカーソルが上下矢印や左右矢印に変わったところで、ドラッグを始めてください。

コントロールを移動させるには、コントロールの中央をクリックして、そのままドラッグしてください。

複数のコントロール (コントロール群) を一括して移動させるには、先ず移動したい幾つかのコントロールのまわりをドラッグすることによって破線の四角形をつくり、その中にコントロールを入れてください。次に、その中の (どのコントロールでも構いませんから) 一つのコントロールの中央をクリックして、そのままドラッグしてください。破線の四角形の中のコントロールを一括して移動させることができます。

なお、コントロールが親子関係をもつ場合には、コントロールの中に張り付けた子コントロールは、親コントロールの外に移動させることはできません。


[ツールボックスの呼び出し方]

ツールボックスを呼び出すには、メインウィンドウ表示(V) というメニュータイトルを開いて、その中のツールボックス(X) というメニュー項目 (次の図参照) をクリックしてください。なお、ツールボックスを使うときには、コントロールを張り付ける相手となるフォームウィンドウを登場させないと意味がありません。



ツールボックスを使わないときには、ディスプレイ画面上から消すことができます。ツールボックスの右上端のX印閉じるボタンをクリック (Windows NT 3.51 の場合には左上端の小さなコントロールボックスをダブルクリック) すると消えます。


[カスタムコントロールとは]

カスタムコントロールには、例えば立体的に見えるボタンとか、スプレッドシートの構造をもつコントロールとか様々な種類があります。Visual Basic の標準コントロール以外にも、いろいろなコントロールを張り付けて利用してみたいというアプリ開発者の要求に応えて、幾つかの会社がカスタムコントロールを開発して販売しています。

カスタムコントロールは、カスタムコントロールモジュールというファイルの中に (一つまたは幾つかをまとめて) 入れて、保存したり持ち運んだりします。

上のツールボックスの顔写真は、カスタムコントロールが入っていない (標準コントロールだけを保管している) ときの顔です。カスタムコントロールモジュールをプロジェクトに追加する (付け加える) と、この顔は大きくなります。追加したモジュールの中のカスタムコントロールを載せるためのスペース分だけ大きくなるわけです。

そして、大きな顔になると、ツールボックスの中から標準コントロールだけでなくカスタムコントロールも選べるようになります。つまり、カスタムコントロールもフォームウィンドウ上に張り付けることができるようになるわけです。

なお、カスタムコントロールをツールボックスに追加したり削除したりするには、先ずメインウィンドウツール(T) というメニュータイトルを開いて、その中のカスタムコントロール(C)... というメニュー項目 (次の図参照) をクリックしてください。すると、カスタムコントロールというダイアログボックスが登場しますから、その中のチェックボックスを変更してください。




2.6 メニューエディタ


[メニューエディタとは]

メニューエディタは、次の形 (顔) をしています。
 

メニューエディタ


メニューエディタは、フォームの中のメニューのデザインをするときに使う召使です。言わば、メニューに関する専用エディタだといえます。

メニューエディタは、メニューを新たに張り付けるときだけではなく、既に張り付けられているメニューを変更するためにも、削除するためにも使うことができます。

一般に、コントロールをフォームウィンドウに張り付ける操作は、ツールボックスから取り出してフォームウィンドウの上へという流れになります。しかし、メニューというコントロールだけは、別扱いになっていて、このメニューエディタという召使を使って張り付けます。

メニューエディタを使ってメニューの編集を終えると、そのメニューはフォームウィンドウに出現しますから、意図した通りのメニューになっているかどうかをフォームウィンドウの上で確認することができます。

複数のフォームモジュールから構成されるプロジェクトにおいては、どのフォームのメニューを対象にするのか明確にしなければなりません。メニューの編集作業を始めるときには、フォームウィンドウをクリックしてフォーカスを当ててください。こうすると、「このフォームのメニューを対象にするのだ」 と宣言したことになります。


[メニューの標準化とメニューの置き換え (取り込み)]

数多くの画面プログラムから構成される業務アプリケーションシステムを開発するときに、各画面のメニューを統一性のある形にしたいというような標準化が求められたりします。

こんなときには、メニューのひな型 (標準形) をフォームモジュールにコピーできると好都合です。しかし、残念なことにメニューエディタには、この機能がありません。そこで出番となるのが、eee MANDALAメニューの置き換え (取り込み) を行う機能です。

先ずは、メニューエディタを用いてメニューのひな型をデザインしておき、次にメニューの置き換え (取り込み) 機能を用いてメニューのひな型をフォームモジュールにコピーすれば目的を達成することができます。そして、数あるフォームの中には、標準形からはずれたメニューにしたいものもあることでしょうから、そういう場合には、コピーをした後にメニューエディタを使って部分的に変更すればよいわけです。


[メニューエディタの呼び出し方]
 

ツールバーの中のメニューエディタというボタン

メニューエディタを呼び出すには、上図のボタン、即ちメインウィンドウのツールバーの中のメニューエディタボタンをクリックしてください。または、メインウィンドウツール(T) というメニュータイトルを開いて、その中のメニューエディタ(M)... というメニュー項目をクリックしてください。

なお、これらの操作が有効なのは、フォームウィンドウにフォーカスが当たっている場合だけです。ですから、これらの操作の前に、どのフォームのメニューを対象にするのかを指定するために、フォームウィンドウをクリックしてフォーカスを当てることが必要です。

メニューの編集作業が済んだら、メニューエディタの OK というボタンをクリックしてください。そこで編集した新版のメニューをフォームに反映することができます。

今編集したばかりの新版を捨てたいときには、キャンセルというボタンをクリックしてください。メニューは、編集作業を行う前の形に戻ります。

なお、OK またはキャンセルというボタンをクリックすると、メニューエディタはディスプレイ画面上から消えます。


[モーダルなウィンドウとモードレスなウィンドウ]

本題から少しそれますが、ここで注目していただきたいことがあります。それは、メニューエディタが呼び出されてから消されるまでの間、他の Visual Basic のウィンドウの操作が一切できなくなるということです。

このことを、メニューエディタはモーダルであるという言い方をします。この章でご紹介している8種類のウィンドウのうちメニューエディタだけがモーダルで、他の7種類はモードレスです。

一般的にダイアログボックスと呼ばれるウィンドウは、普通モーダルになっています。

モーダルなウィンドウが出現したときには、モーダルなウィンドウの操作を最優先で行ってください。いや、こうするしかありません。こうすることによって、そのウィンドウに関する操作を終えると、そのモーダルなウィンドウは消え去り、その仲間の他のモードレスなウィンドウに関する操作を行うことができるようになります。



2.7 コードウィンドウ


[コードウィンドウとは]

コードウィンドウは、次の形 (顔) をしています。
 

コードウィンドウ


コードウィンドウは、アプリケーションプログラム (プロジェクト) のプログラムコードを見たり書いたりするときに使う召使です。テキストエディタとかエディタという一般名称で呼ばれる召使の仲間ですが、Visual Basic では、特にコードウィンドウという名前がついています。

コードウィンドウは、Visual Basic のプロジェクトを構成するフォームモジュールおよび各コードモジュールに対応して一つずつ存在するものです。そして、複数のモジュール (フォームモジュールやコードモジュール) を持つプロジェクトの場合には、それらの複数のコードウィンドウを次々とディスプレイ画面上に登場させていくこともできます。この章でご紹介している8種類のウィンドウを召使にたとえていますが、コードウィンドウという種類の召使は一人とは限らず、複数人のこともあるということになります。この点に関しては、ご紹介済のフォームウィンドウと同じです。

コードウィンドウは、重ねた二枚の紙切れのような構造になっています。

一般に、コードウィンドウの中には数多くのプロシージャが組み込まれているのが普通ですから、少なくともその内の二つを同時に見たいことがよくあります。 こんなときには、前面の紙切れを中ほどまで下にずらすと、二つのプロシージャを表示する態勢が整います。また、二枚の紙切れのそれぞれには、一つのプロシージャのある部分とそこから離れた別の部分を表示することもできます。プログラムコードをカットアンドペースト (またはコピーアンドペースト) するときには、この二枚重ねの構造はとても便利です。

なお、Visual Basic 4.0 からは、前面の紙切れをずらす操作が以前の版 (2.0) と少しばかり異なりますが、垂直スクロールバーの上の部分を下にドラッグすることで前面の紙切れを下にずらすことができます。

コードウィンドウはテキストエディタとして、Visual Basic の(ソース)コードを編集しやすいように工夫されています。例えば、次のような点が便利です。

[イベントプロシージャとジェネラルプロシージャ]

フォームモジュールの中には、フォームウィンドウを通して見ることのできる部分 (オブジェクト詳細情報)、およびコードウィンドウを通して見ることのできるプログラムコードが入っています。

コードモジュールの中には、フォームウィンドウを通して見ることのできる部分はなく、コードウィンドウを通して見ることのできるプログラムコードだけが入っています。なお、次の図と合わせて、第三章にあるVisual Basic を用いて生み出す4種類のソフトウェア資産という図も参照してください。



                        (宣言セクション、プロシージャ)


フォームモジュール = オブジェクト詳細情報 + プログラムコード


                ↑           ↑


            [フォームウィンドウ]   [コードウィンドウ]


                            ↓


コードモジュール  =              プログラムコード


                     (宣言セクション、ジェネラルプロシージャ)



即ち、フォームモジュールのプログラムコードコードモジュールのプログラムコードコードウィンドウを通して見ることができます。

フォームモジュールのプログラムコードの中には、各種のオブジェクトと結び付いたイベントプロシージャ、および特定のオブジェクトとの結び付きのないジェネラルプロシージャなる両方の種類のプロシージャを組み入れることができます。

他方、コードモジュールの中にはオブジェクトを入れることができませんから、コードモジュールのプログラムコードの中には、ジェネラルプロシージャという種類のプロシージャだけしか組み入れることができません。

これは、コードウィンドウの オブジェクト: というプロシージャの種類を表すコンボボックスを開くことで確認できます。フォームモジュールの場合、ここにはオブジェクト名の一覧が記載されていますが、コードモジュールの場合、ここにはジェネラルプロシージャを意味する (general) という文字列しか現れません。

eee MANDALA を用いた開発においては、フォームモジュールに組み込まれるプログラムコードは原則として全て機械生成されます。更に、二・三のコードモジュールも機械生成されますし、また三つのコードモジュールが共通ライブラリとして提供されます。したがって、アプリ開発者が開発するプロシージャは、一部のコードモジュールのジェネラルプロシージャだけであるということになります。

ところで、Visual Basic のイベントは、ハードウェアの動作と密接に関係したローレベルのものですが、このレベルのイベントプロシージャは全て機械生成されてしまいます。ですから、アプリ開発者は、ローレベルのイベントのハンドリングに頭をひねる必要がなくなります。しかし、業務内容に依存するプログラムコードは機械生成されませんから、アプリ開発者が活躍するのは、業務依存の高級イベントルーチンの開発に関する辺りだということになります。


[宣言セクションとプロシージャ]

コードウィンドウを通して見ると分かることですが、フォームモジュールのプログラムコードの中にも、コードモジュールのプログラムコードの中にも、一つの宣言セクションと幾つかのプロシージャが入っています。正確にいうと、プロシージャは一つもないことがありますが、宣言セクションは必ず一つあります。

コードウィンドウの中の宣言セクションを見るには、オブジェクト: というコンボボックスの中の (general) という文字列を選択し、更にプロシージャ: というコンボボックスの中の (declarations) という文字列を選択してください。

プロシージャを見るには、これ以外の選択をします。即ち、イベントプロシージャを見るには、オブジェクト: というコンボボックスの中からオブジェクトを選択した後に、プロシージャ: というコンボボックスの中からプロシージャを選択してください。また、ジェネラルプロシージャを見るには、オブジェクト: というコンボボックスの中の (general) という文字列を選択した後に、プロシージャ: というコンボボックスの中からプロシージャを選択してください。

eee MANDALA を用いた開発において、宣言セクションは、Option Explicit というステートメントで始める規約になっています。こうすると、変数宣言必須 (変数の宣言を強制する) になりますから、変数のスペルミスが見つけやすいプログラムになります。変数の宣言を省略可にすると、変数のスペルミスに悪戦苦闘するはめになるので、こうすることはお勧めできません。

なお、各モジュールの宣言セクションに Option Explicit というステートメントを自動的に付加するための指定方法については、「第4章 Visual Basic のカスタマイズ」 を参照してください。


[コードウィンドウの呼び出し方]

コードウィンドウを呼び出すには、プロジェクトウィンドウのモジュール一覧表の中の対応するフォームモジュール名またはコードモジュール名 (即ちファイル名) をクリックして反転させた後にコードの表示というボタンをクリックしてください。

または、それがコードモジュールに対応するものであれば、プロジェクトウィンドウのモジュール一覧表の中のコードモジュール名 (即ちファイル名) をダブルクリックすることで呼び出すこともできます。因みに、フォームモジュール名をダブルクリックするとフォームウィンドウが呼び出されます。

コードウィンドウを使わないときには、最小化 (アイコン化) することもできますし、ディスプレイ画面上から消すこともできます。毎度おなじみのように、最小化 (アイコン化) するには、コードウィンドウの右上端あたりにある下線印 (Windows NT 3.51 の場合は下向き三角印) 最小化ボタンをクリックしてください。ディスプレイ画面上から消すには、コードウィンドウの右上端のX印閉じるボタンをクリック、またはウィンドウの左上端にアイコンをダブルクリック (Windows NT 3.51 の場合には左上端のコントロールボックスをダブルクリック) してください。

フォームモジュールのコードウィンドウを呼び出すには、別の方法もあります。その方法は、フォームウィンドウのオブジェクトをダブルクリックすることです。こうすると、コードウィンドウが呼び出されて、そのオブジェクトに関するイベントプロシージャを見ることができます。

ただし、eee MANDALA を用いた開発においては、フォームモジュールの中のプログラムコードは原則として全て機械生成されてしまいますから、この種のコードウィンドウを呼び出す必要はありません。誤ってオブジェクトをダブルクリックしたときには、登場したコードウィンドウの右上端のX印閉じるボタンをクリック、またはウィンドウの左上端にアイコンをダブルクリック (Windows NT 3.51 の場合には左上端のコントロールボックスをダブルクリック) して消してください。



2.8 デバッグウィンドウ


[デバッグウィンドウとは]

デバッグウィンドウは、次の形 (顔) をしています。
 

デバッグウィンドウ


デバッグウィンドウは、アプリケーションプログラムを Visual Basic インタープリタのもとで実行させたとき (開始の指示をしたとき) に登場する召使であり、その役割はデバッグの支援です。

例えば、変数の値を見るためにあらかじめウォッチ式を指定しておくと、デバッグウィンドウの上部 (ウォッチペイン) にウォッチ式で指定した式の値が表示されます。したがって、値の変化を観察することができます。

デバッグウィンドウは、実行のログをとるためにも使えます。コードウィンドウの中に Debug.Print というステートメントを張り付けておくと、そこを実行する度に、実行の状況を示すメッセージがデバッグウィンドウの下部 (イミディエイトペイン)に一行ずつ書き出されていきます。したがって、これを見ることによってプログラムの動きを知ることができます。

なお、プログラムを中断させて、イミディエイトペインに Visual Basic のステートメントを一行インプットして、Enter キーを押すと、そのステートメントを即実行させることができます。


[デバッグウィンドウに表示するログの活用例]

デバッグの方法の一つにブレークポイントがあります。これはなかなか有効な手段です。しかし、タイミングクリティカルなイベントプロシージャの中にブレークポイントを設定して中断させると、その後の動作が中断しない場合の動作と異なってしまうために、混乱することがあります。詳しくは Visual Basic の 「プログラミングガイド」 のイベントのデバッグに関する注意点を参照してください。このようなことを避けるには、Debug.Print というステートメントを用いてデバッグウィンドウのイミディエイトペインに実行のログをとることをお勧めしています。

この他にも、デバッグウィンドウのログは次のように活用することができます。それは eee MANDALA高級イベントルーチンがどのようなタイミングで呼び出されるのかを習得するため仕掛けです。

eee MANDALA RENSYUU3.VBP というプロジェクトを Visual Basic (インタープリタ) のもとで実行させると、デバッグウィンドウに画面対応の高級イベントルーチンのログが時々刻々と表示されるようになっています。アプリケーションプログラムを操作しながらこのデバッグウィンドウを見ることは、画面対応の高級イベントがどのような場合に発生するのかを理解する上でとてもに役立ちます。


[デバッグウィンドウの呼び出し方]
 

ツールバーの中の開始というボタン

デバッグウィンドウを呼び出すには、上図のボタン、即ちメインウィンドウのツールバーの中の開始ボタンをクリックしてください。または、メインウィンドウ実行(R) というメニュータイトルを開いて、その中の開始(S) というメニュー項目または完全コンパイル後に開始(F) というメニュー項目をクリックしてください。



こうすると Visual Basic が実行状態になりアプリケーションプログラムの実行が開始して、同時にデバッグウィンドウが登場します。

デバッグウィンドウを使わないときには、ディスプレイ画面上から消すことができます。デバッグウィンドウの右上端のX印閉じるボタンをクリック (Windows NT 3.51 の場合には左上端のコントロールボックスをダブルクリック) すると消えます。

消されたデバッグウィンドウを再度呼び出すには、メインウィンドウ表示(V) というメニュータイトルを開いて、その中のデバッグウィンドウ(D) というメニュー項目 (次の図参照) をクリックしてください。



因みに、このデバッグウィンドウを再度呼び出す操作は、デバッグウィンドウがディスプレイ画面上のどこかに既に登場している場合にも有効です。即ち、ディスプレイ画面上に数多くのウィンドウが重なっていて、どこにデバッグウィンドウがあるのかを探すのが面倒なときには、この操作をすることでデバッグウィンドウをディスプレイ画面の前面に浮き上がらせることができます。


[Visual Basic の三つの状態]

Visual Basic には、デザイン状態実行状態中断状態の三つの状態があります。

プロジェクトを開くと、最初はデザイン状態になります。この状態では、画面のデザインやプログラムコードのインプットや修正を自由に行うことができます。

アプリケーションプログラムの開始の指示をすると、実行状態になります。この状態では、インタープリタの働きによって正にプログラムが実行しているわけですから、画面のデザインを行うことができませんし、プログラムコードのインプットや修正を行うこともできません。また、プログラムの中の変数の値を見ることもできません。

実行状態を中断させて中断状態にすると、プログラムの中の変数の値を見ることができるようになりますし、若干の制限がありますがプログラムコードを修正できるようになります。ただし、中断状態では、画面のデザインを変更することはできません。
 

ツールバーの中の中断というボタン

実行状態から中断状態に変更するには、上図のボタン、即ちメインウィンドウのツールバーの中の中断ボタンをクリックしてください。または、メインウィンドウ実行(R) というメニュータイトルを開いて、その中の中断(K) というメニュー項目をクリックしてください。こうすると中断状態にすることができますが、一般に手操作ではプログラムの中の意図したステップで中断させることは困難です。意図したステップで中断させたい場合には、後述のブレークポイントの設定をしてください。また、特殊な操作なのですが、実行状態から中断状態に強制的に変更することもできます。この強制変更をするには、キーボード上の Ctrl キーを押したまま更に Pause (Break) キーを押してください。

中断状態は、デバッグの便をよくするためのものです。後述のデバッグのための操作1、2、3、4は、いずれも中断状態のときに行うことができます。

プログラムの実行が終了するとデザイン状態に戻ります。または、手操作でデザイン状態に戻すこともできます。
 

ツールバーの中の終了というボタン

実行状態または中断状態からデザイン状態に変更するには、上図のボタン、即ちメインウィンドウのツールバーの中の終了ボタンをクリックしてください。または、メインウィンドウ実行(R) というメニュータイトルを開いて、その中の終了(E) というメニュー項目をクリックしてください。こうすると一般にはデザイン状態に戻すことができます。ただし、プログラムがモーダルなダイアログボックスを表示しているときなどには状態の変更ができません。このような場合は、キーボード上の Ctrl キーを押したまま更に Pause (Break) キーを押して実行状態から中断状態に強制的に変更してください。こうすれば、デザイン状態に戻すことができるようになります。


[デバッグのための操作1(ブレークポイントの設定)]

デバッグ作業の中でブレークポイントの設定をすることは、なかなか有力な手段です。あるステートメントをブレークポイントとして設定しておくと、そこを実行する直前に中断状態になります。したがって、そのステートメントが実行されるかどうかを確かめられますし、またバグのありそうな前あたりで中断させて問題の箇所を詳しく調べるための準備体勢を整えることもできます。

ブレークポイントの設定をするには、先ず、どのステートメントをブレークポイントとして設定するのかを明確にするために、コードウィンドウの中の目指すステートメントをクリックしてください。
 

ツールバーの中のブレークポイントの設定/解除というボタン

次に上図のボタン、即ちメインウィンドウのツールバーの中のブレークポイントの設定/解除ボタンをクリックしてください。または、メインウィンドウ実行(R) というメニュータイトルを開いて、その中のブレークポイントの設定/解除(B) というメニュー項目をクリックしてください。

ブレークポイントの設定は、中断状態だけでなく、実行状態やデザイン状態においても行うことができます。また、上記の操作を繰り返すことで、複数のステートメントをブレークポイントとして設定することができます。


[デバッグのための操作2(インスタントウォッチ)]

中断状態では、変数や式の値を見ることができます。このことをインスタントウォッチと呼びます。

インスタントウォッチをするには、先ず、どの変数や式の値を見たいのかを明確にするために、コードウィンドウの中の変数または式をマウスでドラッグして反転状態にしてください。
 

ツールバーの中のインスタントウォッチというボタン

次に上図のボタン、即ちメインウィンドウのツールバーの中のメガネ印のインスタントウォッチボタンをクリックしてください。または、メインウィンドウツール(T) というメニュータイトルを開いて、その中のインスタントウォッチ(W)... というメニュー項目をクリックしてください。

なお、インスタントウォッチのダイアログボックスの中の追加(A) というボタンをクリックすることによって、変数や式の値をデバッグウィンドウの上部 (ウォッチペイン) に表示することができます。これをウォッチ式の追加と呼びます。こうしておくと、インスタントウォッチの操作をしなくても、変数や式の値を見ることができるようになります。

ウッォチ式の追加は、デザイン状態でも指定できます。デザイン状態では、ツール(T) というメニュータイトルを開いて、その中のウォッチ式の追加(A)... というメニュー項目 (次の図参照) をクリックして、ウォッチ式の追加というダイアログボックスによって指定してください。

ウォッチ式の追加


[デバッグのための操作3(呼び出し履歴)]

中断状態では、呼び出し履歴を見ることができます。
 

ツールバーの中の呼び出し履歴というボタン

呼び出し履歴を見るには、上図のボタン、即ちメインウィンドウのツールバーの中の呼び出し履歴ボタンをクリックしてください。または、メインウィンドウツール(T) というメニュータイトルを開いて、その中の呼び出し履歴(S)... というメニュー項目をクリックしてください。


[デバッグのための操作4(シングルステップとプロシージャステップ)]

中断状態では、プログラムの実行のステップを追跡していくことができます。一ステップずつ実行させるにはシングルステップを用いますし、呼び出したサブルーチンの中身を追跡せずに呼び出し側だけに着目してステップを追うにはプロシージャステップを用います。
 

ツールバーの中のシングルステップというボタン

シングルステップをするには、上図のボタン、即ちメインウィンドウのツールバーの中のシングルステップボタンをクリックしてください。または、メインウィンドウ実行(R) というメニュータイトルを開いて、その中のシングルステップ(I) というメニュー項目をクリックしてください。あるいは、ファンクションキー F8 を押してください。
 

ツールバーの中のプロシージャステップというボタン

プロシージャステップをするには、上図のボタン、即ちメインウィンドウのツールバーの中のプロシージャステップボタンをクリックしてください。または、メインウィンドウ実行(R) というメニュータイトルを開いて、その中のプロシージャステップ(O) というメニュー項目をクリックしてください。あるいは、Shift キーを押した状態でファンクションキー F8 を押してください。


eee MANDALA

ブラウザの戻る (Go Back) のボタンを押して元に戻るか、第3章または目次のページに進んでください。

また、アプリテック株式会社のホームページhttp://www.applitech.co.jp/のこの他の情報もご覧ください。


Copyright (C) 1995-1997 By AppliTech, Inc. All Rights Reserved.
eee, SSS/Win は、ウッドランド株式会社から販売されている製品です。
MANDALA は、アプリテック株式会社の商標として登録の申請を済ませています。
Visual Basic, Windows, Windows NT は、米国マイクロソフト社の商標です。
(ME96V421)