第3章 Visual Basic 5.0 による開発の成果物
この章の見出しの一覧
プロジェクトファイルとは/プロジェクトの名前/プロジェクトファイルの内容/モジュール一覧表の中のファイル名/プロジェクトファイルとプロジェクトエクスプローラ
メモ帳と比較したプロジェクトファイルに関する操作
新しいプロジェクトを開く/新しいプロジェクトファイルに名前を付けてプロジェクトの保存/後始末が必要な場合になされる問合わせ/新たに作成するファイルと既に作成済のファイル
豆知識: メニューに関する豆知識
作成済のプロジェクトファイルを開く/保存の指示が必要な場合とは/作成済のプロジェクトの上書き保存/作成済のプロジェクトファイルに名前を付けてプロジェクトの保存/作成済のプロジェクトファイルのパス情報の取得
モジュール一覧表の変更/スタートアップフォームの確認と設定・変更
3.2 基本モジュール
--- フォームモジュールとコードモジュール
---
フォームモジュールとは/コードモジュールとは/基本モジュールの名前
新しい基本モジュールをカレントプロジェクトに追加して開く/新しい基本モジュールに名前を付けてファイルの保存
作成済の基本モジュールをカレントプロジェクトに追加して開く/作成済の基本モジュールのファイルの上書き保存/作成済の基本モジュールに名前を付けてファイルの保存/エクスプローラでファイル名を変更すると/作成済の基本モジュールのパス情報の取得
基本モジュールを閉じてカレントプロジェクトから除名 (解放)
新しいプロシージャの組み入れ/プログラムコードのコピー/ショートカットキー/元に戻す操作とやり直し操作/フォームモジュールの中のコントロールのコピー
exe (実行可能プログラム) とは/exe の名前 (実行可能プログラム名)/exe
でのデバッグ/exe ファイル (実行可能プログラムファイル) に関する操作
Visual Basic 5.0 を用いたアプリケーションプログラム開発における主要な成果物には、次の4種類のソフトウェア資産があります。これらは、Visual
Basic 5.0 のウィンドウという召使たちに指示を与えて作った、あなたの作品だということができます。
これらのソフトウェア資産は、一旦はパソコンの中のメモリ上に展開されますが、最終的にはファイルという形になります。ファイルになった後は、保存したり、持ち運んだりできるようになります。例えば、光ディスク (MO) に格納して持ち運んだり、パソコンのハードディスクに保存したり、LAN で結ばれたサーバの共用ディスクに格納してシェア (共用) したりできるわけです。
そして、それぞれのソフトウェア資産は、ファイル名によって識別できるようになります。例えば、「Rensyuu3.vbp
というプロジェクトファイルの内容を変更する」 というように成果物を名指しにした表現が可能になるわけです。
ところで、ファイル名には拡張子を付けることができますが、拡張子の役割はソフトウェア資産の種類を一目で判別できるようにすることです。言わば、色分けをするわけです。
地球儀の海の部分を水色に塗ったり、隣り合う国に別々の色を付ける習慣があるのと同様に、ファイルの拡張子として、プロジェクトファイルには vbp、フォームモジュールには frm、コードモジュールには bas、exe (実行可能プログラム) には exe という拡張子を付けるのが習わしです。こうしておくと、拡張子によってソフトウェア資産の種類が一目で分かります。
なお、MANDALA を用いた開発においては、例えば、機械生成されたコードモジュールか手作りかによって拡張子を使い分けます。このようなコードモジュールの細かな種類が一目で分かるように、bas
だけでなく、Dnn、Fnn、fpr、psi、dbm、dem
などの拡張子も用いています (ただし nn は2個の数字)。
Visual Basic によるプログラムの開発作業としては、手作りする方法と MANDALA などを用いて機械生成する方法がありますが、いずれにしてもその成果物は、特定の形をしたファイルになります。
この章の狙いは、最終的な成果物の形をハッキリと意識した上で、それぞれの成果物の参照方法や変更方法などに関する基本操作をマスタすることです。
4種類のソフトウェア資産を個々に調べる前に、ここでこれらの関係を概観しておきましょう。
プロジェクトファイルの中のモジュール一覧表には,このプロジェクトに含まれるフォームモジュールとコードモジュールの全ての名前が記入されています。ですから、このモジュール一覧表は、これらの基本モジュールの全てを指し示しているということができます。つまり、プロジェクトファイルは、プロジェクトを代表するソフトウェア資産なのです。
コードモジュールの中にはプログラムコード (濃くハッチングした部分) が入っていて、これ以外のものは入っていないと考えてください。つまり、コードモジュールは、プログラムコードだけを格納したファイルです。
フォームモジュールの中にもプログラムコード (濃くハッチングした部分) が入っていますが、これだけでなく、オブジェクト詳細情報 (薄くハッチングした部分) も入っています。オブジェクト詳細情報とは、フォームの大きさ、およびフォームに含まれている各コントロールの位置や大きさなどの情報 (各種のプロパティ情報) のことです。つまり、フォームモジュールは、オブジェクト詳細情報 (プロパティ情報) とプログラムコードを格納したファイルです。
exe (実行可能プログラム) の中には、プロジェクトファイルとそのプロジェクトを構成する全ての基本モジュール
(フォームモジュールおよびコードモジュール)
を集約した情報が入っています。exe (実行可能プログラム) は、アプリケーションプログラムを配付するときに都合のよいファイルだといえます。
ここでは、開発の成果物の一つ (一種) であるプロジェクトファイルについて、ソフトウェア資産という観点から調べた後で、これに関する操作方法をマスタすることを目指します。
なお、操作方法の説明は「3.1.2 プロジェクトファイルに関する操作」という項から始まります。
[プロジェクトファイルとは]
Visual Basic のプロジェクトとは“開発プロジェクト”というような意味ではありません。このプロジェクトという言葉の意味は“幾つかのモジュールから構成されたプログラム”に近いものだと考えてください。実際に、プロジェクトとは、幾つかのモジュールを集めた言わば“モジュールの集合”です。
以上のことをご理解いただくとプロジェクトファイルという言葉の意味が明確になります。プロジェクトファイルとは、そのプロジェクトを構成するモジュールの一覧表などの情報を格納したファイルのことです。つまり、プロジェクトを代表するソフトウェア資産だということができます。
[プロジェクトの名前]
プロジェクトの名前、即ちプロジェクト名としては、プロジェクトを代表するプロジェクトファイルのファイル名を代用します。
プロジェクトファイルのファイル名には、ソフトウェア資産の種類が一目で分かるように vbp という拡張子を付けるのが習わしです。例えば、Rensyuu3.vbp というようなファイル名を付けます。なお、vbp は Visual Basic Project に由来します。
プロジェクトだと明確に分かっている場合には、ピリオドと拡張子を除いた名前
(上の例の場合には Rensyuu3) をプロジェクト名として用いることがあります。
[プロジェクトファイルの内容]
プロジェクトファイルの中の主な情報は、モジュール一覧表です。これは、どれとどのモジュールがプロジェクトのメンバになっているかを管理する表です。
プロジェクトファイルはテキストファイルですから、Windows 系 OS のメモ帳によってそのファイルを開いて、中身を見ることができます。
例えば、プロジェクトファイル Rensyuu3.vbp の中身を見ると、下記のように、プロジェクトを構成するモジュールの名前、即ちモジュール名
(モジュールのファイル名)
が一覧になっていることが分かります。
Type=Exe
Form=Rensyuu3.frm
Module=Ae_MsgL0; ..\Ae_MsgL0.bas
Module=Ae_Proc; ..\Ae_Proc.bas
Module=Ae_Rsmr; ..\Ae_Rsmr.bas
Module=CDbangou; CDbangou.F31
Module=Rensyuu; Rensyuu.D31
Module=KyokuSuu; KyokuSuu.F21
Module=Goukei; Goukei.F21
Module=CDbangou1; CDbangou.dem
Module=EnsouHun; EnsouHun.F31
Form=CDbangou.frm
Module=Rensyuu30001; Rensyuu3.fpr
Module=Rensyuu30002; Rensyuu3.psi
IconForm="FR_Rensyuu"
Startup="FR_Rensyuu"
HelpFile=""
Title="CD管理簿"
ExeName32="Rensyuu3.exe"
Command32=""
Name="RENSYUU3"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="AppliTech Inc."
CompilationType=-1
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1
2行目から "IconForm=・・・・・・・" という行の直前までの赤色の各行には、モジュールのファイル名がそれぞれ一つずつ記載されています。この例の場合は、全部で 43 行ありますが、このうちの 13 行がモジュールのファイル名です。
したがって、このプロジェクトは、この 13 個のモジュールから構成されているといえます。
[モジュール一覧表の中のファイル名]
モジュール一覧表の中のファイル名は、いろいろな形で表現されています。
パス情報が省略されているのはプロジェクトファイルと同じフォルダ (ディレクトリ) に存在するファイルですし、..\ という文字列で始まるのはプロジェクトファイルの親フォルダ (親ディレクトリ) に存在するファイルです。この他にドライブ名 (例えば C:) から始まる完全なパス指定 (フルパスファイル名) で表されたファイルもあります。
この例の中にはありませんが、拡張子が ocx
のモジュールは、フォームモジュールでもコードモジュールでもない言わば第三のモジュールであり、カスタムコントロールモジュールと呼ばれています。
[プロジェクトファイルとプロジェクトエクスプローラ]
実物を眺める方が理解が速いと考えて、プロジェクトファイルの中身を見てしまいましたが、こんな風にして Windows 系 OS のメモ帳でモジュール一覧表を眺めることをお勧めしているわけではありません。
モジュール一覧表を見るにはプロジェクトエクスプローラを呼び出してください。プロジェクトエクスプローラの中にモジュール名
(即ちファイル名) の一覧表があります。別の言い方をすると、プロジェクトファイルの主な情報
(モジュール一覧表) を見るためには、それ専用のプロジェクトエクスプローラという召使がいるので、それを使って見るのがよいということです。
Visual Basic は、4種類ものファイルを取り扱うために、それぞれに応じた数多くの機能があります。しかし、プロジェクトファイルだけに注目すると話は極めてシンプルになります。
[メモ帳と比較したプロジェクトファイルに関する操作]
テキストファイルを取り扱う Windows 系 OS の原始的な道具としてメモ帳がありますが、実はこのシンプルな操作方法を
Visual Basic は受け継いでいたのです。そこで、Visual Basic の操作方法とメモ帳のそれとを対比してみましょう。
メモ帳では、一どきに (即ちメモ帳のウィンドウ一つに対して) 一つだけのテキストファイルを開いて仕事をするのと全く同様に、(Visual
Basic 4.0 までは) 一どきに (即ちメインウィンドウ一つに対して)
一つだけのプロジェクトファイルを開くことができました。そして、処理の対象プロジェクトのことをカレントプロジェクトと呼び、そのプロジェクトファイルのことをカレントプロジェクトファイルと呼んでいました。
--- Visual Basic 5.0 から、プロジェクトグループという概念が追加されて、一どきに (即ちメインウィンドウ一つに対して) 複数のプロジェクトファイルを開くことができるようになりました。しかし、Visual Basic の入門者の方々は、一どきに複数のプロジェクトファイルを対象にしないようにすることをお勧めいたします。
因みに、複数のプロジェクトファイルを開く方法は、二つあります。即ち、Visual
Basic 自体を複数個起動する方法と、一つの Visual Basic の中で複数のプロジェクトを開く方法の二つです。そして、どうしても複数のプロジェクトファイルを開くことが必要な場合は、前者をお勧めしておきます。例えば、他のプロジェクトのソフトウェア資産
(プログラムコードやフォームウィンドウ上のコントロール)
をコピーしたい場合は、Visual Basic をもう一つ起動すればよいでしょう。---
カレントプロジェクトとは、いま注目しているプロジェクトのことであり、暗黙のうちに操作の対象となるプロジェクトのことです。例えば、「プロジェクトを保存する」
というと、それは暗黙のうちにカレントプロジェクトを保存することを意味します。
メモ帳でできることは、テキストファイルを参照したり変更したりすることだけですが、Visual Basic ではもっと多くのことができます。単にプロジェクトファイルの内容を参照したり変更したりすることだけでなく、それを実行 (開始) させたり、プロジェクトを構成するモジュールの内容を参照したり変更したりすることもできます。
ただし、ここでは話しを分かりやすくするために、先ずはプロジェクトファイルの内容に関する操作、およびその前提として必要になるファイル操作に焦点をあてることにします。この周辺までも細かくみてしまうと、大きな流れを見失うかもしれません。例えば、プロジェクトファイルを保存すると、そのプロジェクトを構成するモジュールも保存されるようになっているのですが、最初はプロジェクトファイルがどうなるかだけに注目する方が大きな流れをつかみやすいでしょう。
以下には、次の三つに分けて説明してあります。
ここには、新しいプロジェクトファイルに関する操作の詳細説明として、次の二つが書いてあります。
・・ 新しいプロジェクトを開く
・・ 新しいプロジェクトファイルに名前を付けてプロジェクトの保存
先ず、メモ帳を起動してみてください。こうするとテキストファイルを新たに作成するための準備が整います。同様に、Visual
Basic を登場させてみましょう。こうするとプロジェクトファイルを新たに作成するための準備が整います。
プロジェクトファイルを新たに作成するためには、その準備として先ず最初に新しいプロジェクトを開くことが必要です。
上の説明と一部重複しますが、Visual Basic が未だ登場していないときに、これを起動すると、仮の名前
(Project1 という名前) をもつ新しいプロジェクトが開かれて、この新しいプロジェクトがカレントプロジェクトになり、プロジェクトファイルを新たに作成するための準備が整います。
Visual Basic が既に登場しているときに、新しいプロジェクトを開くには、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の新しいプロジェクト(N)
というメニュー項目をクリックしてください。
--- Visual Basic 4.0 では、このメニュー項目をクリックしたときに何のダイアログボックスも登場しないのですが、Visual
Basic 5.0 では、新しいプロジェクトというダイアログボックスが登場するように変わりました。一般に何らかのダイアログボックスが登場する場合には、メニュー項目に“...”を付ける約束になっています。ですから、このメニュー項目は、新しいプロジェクト(N)...
というように“...”が付いていないといけないのですが、付け忘れ
(バグ) のようです。---
この指示を与えると、以下に示す新しいプロジェクトというダイアログボックスが登場します。ここでは、標準 EXE または VB Professional Edition コントロール をダブルクリックしてください。別の操作方法として、標準 EXE または VB Professional Edition コントロール をクリックした後に OK というボタンをクリックしても構いません。
なお、標準 EXE
と VB Professional Edition コントロール
との違いは、後者には標準の OCX
がすぐに使えるように組込まれている点です。
この操作によって、Project1 という仮の名前をもつ新しいプロジェクトがカレントプロジェクトになります。細かくいうと、先ずこの操作をする直前のカレントプロジェクトを閉じて、次に新しいプロジェクトを開いて、この後にこれをカレントプロジェクトに切り換えるという一連の処理がなされることになります。これで、プロジェクトファイルを新たに作成するための準備が完了するというわけです。
新しいプロジェクトが開かれると、プロジェクトエクスプローラを通してこの新しいカレントプロジェクトに関する情報を見ることができるようになります。もしも、プロジェクトエクスプローラが登場していなければ呼び出してみてください。
ここで推奨操作法をご伝授しておきます。プロジェクトファイルを新たに作成すると決めた場合には、新しいプロジェクトという指示の直後に、次に説明のある新しいプロジェクトファイルに名前を付けてプロジェクトの保存という指示を与えることをお勧めいたします。こうすれば、プロジェクトファイルは
(仮の名前ではなく) 正式な名前をもつことになりますし、作成済のものと全く同じ扱いになります。
[新しいプロジェクトファイルに名前を付けてプロジェクトの保存]
メモ帳を用いることで、文字をインプットしてテキストファイルを作成するという仕事がこなせます。これと同様に
Visual Basic を用いることで、一覧表にモジュールを追加したり (付け加えたり)
除名したり (取り除いたり) してプロジェクトファイル (のモジュール一覧表)
を作成する (この操作方法については後述) という仕事がこなせます。
ところで、文字をインプットしたり、メンバとなるモジュールを指定したりしている段階では、新たに作成しようとするファイルは、パソコンの中のメモリ上にあるだけですから、パソコンの電源を切ると消えてしまいます。そこで、新たに作成したテキストファイルの保存、あるいは新たに作成したプロジェクトファイルの保存のための操作が必要になります。
保存するには、メモ帳であれば、ファイル(F) というメニュータイトルを開いて、その中の名前を付けて保存(A)... というメニュー項目をクリックします。
これと同様に、Visual Basic の場合には、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の名前を付けてプロジェクトの保存(E)...
というメニュー項目をクリックしてください。
「この指示を与えると、以下に示す名前を付けてプロジェクトの保存というダイアログボックスが登場する」といえると分かりやすいのですが、必ずしもそうではありません。この辺りに関しては、この後にある [後始末が必要な場合になされる問合わせ] の説明を参照してください。
すぐに登場するとは限りませんが、やがての名前を付けてプロジェクトの保存というダイアログボックスが登場します。そこで、ファイル名とファイルの格納先のフォルダ
(ディレクトリ) とを指定してから保存
(または OK) というボタンをクリックしてください。プロジェクトファイルを保存することができます。
--- Visual Basic には名前を付けて
… の保存(A)... というメニュー項目がありますが、これは、(プロジェクトファイルではなく)
フォームモジュールまたはコードモジュールを保存するためのものですから、混同しないようにご注意ください。---
わざわざ名前を付けてプロジェクトの保存という指示を与えなくても、Visual Basic 側からの問合わせに答えて保存する方法もあります。
新しいプロジェクトファイルを作りかけの状態で、Visual Basic を終了させようとすると
(あるいは、別のプロジェクトファイルを開こうとすると)、Visual Basic
は作りかけのプロジェクトファイルをどう処置してよいのか判断に困って、以下に示すダイアログボックスを表示して問合わせをしてきます。ここで「はい」と答えて保存しても構いません。
どの場合についても、新たに作成したプロジェクトファイルを保存したくないときには、ダイアログボックスの中のキャンセルボタンをクリックしてください。
例えばメニュータイトルファイル(F) の中の (F) ような、括弧で括った下線付きの英字は、アクセスキーと呼ばれるものです。キーボード上の Alt キー (メニューキー) を押したまま、更にアクセスキー (上の例では F というキー) を押下することによってメニューを開くことができます。ただし、ディスプレイ画面上に複数のウィンドウが登場している場合に開くことのできるメニューは、フォーカスがあたっているウィンドウのものです。
このメニュータイトルのアクセスキーは、いわばメニューを開くという目的のためのショートカットキー
(後述の) のようなものです。
名前を付けてプロジェクトの保存(E)...
の中の (E)
ような、メニュー項目の中の括弧で括った下線付きの英字も、アクセスキーと呼ばれるものです。こちらのメニュー項目のアクセスキーの方は、メニュー項目を指定するために使うキーです。メニューが開いている際にアクセスキー
(上の例では E というキー)
を押下することは、メニュー項目をクリックするのと同じ効果があります。
なお、メニュー項目の右端の ... という文字列は、引き続いた操作が必要なことを予告しています。即ち、このメニュー項目をクリックすると、ダイアログボックスが登場するので、引き続いてその操作が必要だというわけです。
ここで、後始末が必要な場合には、一般的に以下のような問合わせがあることを覚えておくとよいでしょう。
Visual Basic に向かって何か指示を与えたときに、もしも後始末が必要であれば、指示を与えた直後に、Visual Basic から後始末をどうつけるかに関する問合わせがあります。操作者の心理としては、その先に進みたいと思っているわけですから、何のことかと戸惑うかもしれません。
後始末に関する問合わせは、次のように解釈してください。
「ご指示は分かりましたが、ご指示の通りにする前に、現状の後始末が必要です。ですから後始末をどうつけたらよいのか問合わせをいたします。後始末としては xxxxxx, xxxxxx, ... のどれにいたしますか?」
それから、後始末に関する問合わせの中にはキャンセルというボタンがありますが、このボタンは、指示の後で気が変わるような場合に配慮して
「あるいは、ご指示をキャンセルなさいますか?」 という問いを凝縮したものです。
例えば、名前を付けてプロジェクトの保存という指示に対して、プロジェクトファイルの後始末に関する問合わせがあるのなら、戸惑いはないといえるかもしれません。しかし、この指示に対して、モジュールの保存の是非に関する問合わせがなされることがあります。こんなときにも戸惑わずに、これも後始末に関する問合わせの一種だとみなしてください。
なぜこのような問合わせがあるのかというと、名前を付けてプロジェクトの保存という指示を与えると、プロジェクトファイルの保存に先立って必要なモジュールも保存されることになっているからです。詳しくいうと、もしもモジュールの最新の内容がファイルに保存されていなければ、原則としてそのようなモジュールの全てが保存されて、その後に、プロジェクトファイルが保存されるようになっています。ただし、これはあくまでも原則ですから、実際にモジュールを保存するかどうかについては、各モジュールごとに問合わせがなされますから、それにどう答えるかで決まります。
[新たに作成するファイルと既に作成済のファイル]
プロジェクトファイルに関する操作は、新たに作成しようとする場合と既に作成済のものを対象にする場合とで、少しばかり違いがあります。しかし、新たに作成しようとするプロジェクトファイルを一旦保存してしまえば、一切の違いがなくなります。したがって、例えば新しいプロジェクトという指示をしたらば、それに続けてすぐに、名前を付けてプロジェクトの保存という指示を与えることをお勧めしています。こうすれば、(仮の名前ではなく) 正式なプロジェクト名を付けることにもなりますし、作成済のものと同様に取り扱うことができます。
なお、本書で“作成済の”といっているは“完成した”ということではなく、単に“保存したことのある”という程度の意味だとみなしてください。
ここの説明は、作成済のプロジェクトファイルに対して通用するだけでなく、新たに作成しようとするプロジェクトファイルに対しても、それに名前を付けてプロジェクトの保存という操作を施した後であれば、通用します。
ここには、作成済のプロジェクトファイルに関する操作の詳細説明として、次の四つが書いてあります。この中の三番目の名前を付ける操作と四番目のパス情報の取得に関する操作の中で行う指示は、「3.1.2.1 新しいプロジェクトファイルに関する操作」
に説明があった新しいプロジェクトファイルに名前を付けるという指示と同じものです。
・・ 作成済のプロジェクトファイルに名前を付けてプロジェクトの保存
既に作成済のテキストファイルを参照したり、変更したりするには、メモ帳であれば、ファイル(F)
というメニュータイトルを開いて、その中の開く(O)...
というメニュー項目をクリックします。
これと同様に、Visual Basic の場合、既に作成済のプロジェクトファイルを参照したり、変更したりするには、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中のプロジェクトを開く(O)...
というメニュー項目をクリックしてください。
Visual Basic の場合には、ボタン一つでこの操作を行うことができます。上図のボタン、即ちメインウィンドウのツールバーの中のプロジェクトを開くボタンをクリックしてください。
このどちらか (メニュー項目またはボタン) によって指示を与えると、以下に示すプロジェクトを開くというダイアログボックスが登場します。ここで、ファイルが格納されているフォルダ
(ディレクトリ) とファイル名を選択してから開く
(または OK) というボタンをクリックしてください。プロジェクトファイルを開くことができます。
ところで、プロジェクトを開く場合、最近使ったものを開くことがほとんどですから、そういう場合の操作が楽にできるようになっています。最近使ったものを開く操作では、わざわざフォルダ (ディレクトリ) とファイル名を指定する必要がない分だけ手間が省けます。
最近使ったものを開くの操作方法には、次の二つがありますから、都合のよい方をお使いください。
第一は、既存のファイルというタブではなく最近使ったファイルというタブをクリックして開く操作方法です。こうすると、最近開いたプロジェクト
(50 個) の一覧を格納したリストボックスが出現しますから、この中の一つをダブルクリックすることで開くべきプロジェクトを指定することができます。
第二の方法は、特にほんの少し前まで使っていたプロジェクトを開く場合に便利です。こういう場合は、メインウィンドウのファイル(F) というメニュータイトルをクリックしてみるのがよいでしょう。メニューの中に最近開いたプロジェクト
(4 個) の一覧がありますから、そこに目指すプロジェクトがあれば、それをクリックすることで開くべきプロジェクトを指定することができます。これは、スマートで素早い操作方法だといえます。
上記のように操作方法は幾つもありますが、どの操作をしても結果は全く同じであり、指定のプロジェクト (ファイル) をカレントプロジェクト (ファイル) にすることになります。細かくいうと、先ずこの操作をする直前のカレントプロジェクトを閉じて、次に指定のプロジェクトを開いて、この後にこれをカレントプロジェクトに切り換えることになります。
ですから、この操作をすると、プロジェクトエクスプローラを通してこの新しいカレントプロジェクトに関する情報を見ることができるようになります。もしも、プロジェクトエクスプローラが登場していなければ呼び出してみてください。
[保存の指示が必要な場合とは]
メモ帳には、上書き保存(S)
というメニュー項目があります。これはテキストをメモ帳で変更した後、誤って電源を切断したり、メモ帳や
Windows 系 OS が異常終了してしまうような事態に備えるためのものです。テキストを変更しても、パソコンの中のメモリの内容が変更されるだけですから、電源を切断してしまうと変更後の最新の内容は消えてしまいます。しかし、上書き保存をしておけば、その内容がファイルに格納されますから、上記のような事態になっても安心だというわけです。
ところで、Visual Basic 用いて開発したアプリケーションプログラムに誤りがあったとしても Visual Basic や Windows 系 OS が異常終了することは稀です。これは、Visual Basic がアプリケーションプログラムの誤りをチェックアウトしているお陰です。
ですから、普通は、取り立てて保存の指示を与える必要はありません。ただし、プログラムの中から
DLL (ダイナミックリンクライブラリ) を呼び出している部分のデバッグが不十分な場合には、プログラムを変更したならば、それを実行させる前に保存の指示を与えておくことをお勧めいたします。
ダイナミックリンクライブラリ (DLL) の呼び出しパラメタに誤りのあるプログラムを実行させると、Visual Basic が異常終了したり、もろくも Windows 系 OS が異常終了するという結果になるかもしれません。そして、どの種の異常終了が発生しても、変更を施した後の最新のプログラムの内容は消えてしまいます。
これらに備えるには、こまめに保存をしておくことです。こうすれば、作成途中の最新のプログラムが消え去ることはありません。
なお、Visual Basic のアプリケーションプログラムが無限ループに陥った場合には、(インタープリタで実行しているのなら) Ctrl キーを押したまま更に Pause (Break) キーを押下することによって、Visual Basic を強制的に中断状態にすることができます。ただし、希にはこれが効かないこともあります。そういうときには、Visual Basic を強制終了させるか、最悪は Windows 系 OS を強制終了させなければならなくなります。
このような強制終了においては、もしも変更を施した後に保存をしていないと最新のプログラムの内容は消えてしまいます。
--- 因みに、Visual Basic や Windows 系 OS を強制終了させたいときには、キーボード上の
Ctrl
キーと Alt
キーの両方を押したまま、更に
Delete キーを押下してください。---
もしもファイルの内容を変更したにもかかわらず保存をおこたると、Visual Basic に異常終了が発生したときや強制終了させるときに、作成の途中の最新のプログラムがなくなってしまいます。正確にいうと、変更前の内容はファイルに残っていますから、全てがなくなるわけではありません。変更した部分がなくなるだけなのですが、DLL のパラメタに関するバグなどがある上に最新のプログラムまでなくなってしまうのですから、泣きっ面を蜂にさされたような気分になるものです。
こんな目に合わないように、要所要所で忘れずに保存の指示をしましょう。
ただし、上書き保存をしてしまうと、変更前の内容に戻すことが難しくなります。上書き保存をする前であれば、変更前の内容がファイルに残っていますから、この後でメモリの内容をファイルに保存するための操作をしない限り、簡単に元に戻すことができます。しかし、上書き保存をすると、ファイルの元の内容が最新の内容に置き換わってしまうので、元に戻すことが簡単にはできなくなってしまいます。これを十分に認識した上で、適切な保存の指示を与えてください。
Visual Basic のプロジェクトの上書き保存は、メモ帳の上書き保存に相当するものですが、少しばかり違いがあります。プロジェクトの上書き保存という指示を与えると、先ず始めにそのプロジェクトを構成するモジュール一つ一つについてチェックが行われ、もしも最新の内容が保存されていないものがあれば保存されるようになっています。Visual
Basic は、プロジェクトファイルだけでなくフォームモジュールやコードモジュールも取り扱っているので、基本的にこれらも保存されるようになっているわけです。
プロジェクトの上書き保存をするには、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中のプロジェクトの上書き保存(V)
というメニュー項目をクリックしてください。
または、ボタン一つでこれを行うには、上図のボタン、即ちメインウィンドウのツールバーの中のプロジェクトの上書き保存ボタンをクリックしてください。
---- Visual Basic には …
の保存(S) というメニュー項目がありますが、これは、(プロジェクトファイルではなく)
指定したフォームモジュールまたはコードモジュールを一つだけ保存するためのものです。どちらかというと特殊用途向けですから、混同しないようにご注意ください。---
プロジェクトの上書き保存という指示は、そのプロジェクトに含まれるフォームモジュールおよびコードモジュールのうちの更新されているものを全て保存
(最新の内容を保存) するとともに、プロジェクトファイルを保存するためのものです。保存をする場合には、このプロジェクトの上書き保存を用いるのが一般的です。
[作成済のプロジェクトファイルに名前を付けてプロジェクトの保存]
プロジェクトファイルの変更前の内容と変更を施した後の最新の内容の両方とも保存したいときには、名前を付けてプロジェクトの保存という指示を与えてください。これは、メモ帳の名前を付けて保存に相当するものです。
名前を付けてプロジェクトの保存の操作方法は、以前に説明があった [新しいプロジェクトファイルに名前を付けてプロジェクトの保存] と同じです。新しいプロジェクトの場合も作成済のプロジェクト場合も操作方法に変わりはありません。
メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の名前を付けてプロジェクトの保存(E)... というメニュー項目をクリックしてください。
この指示を与えると、名前を付けてプロジェクトの保存というダイアログボックスが登場します。ここで、新しいファイル名とファイルの格納先のフォルダ
(ディレクトリ) とを指定してから保存
(または OK) というボタンをクリックしてください。
これらの操作の結果、プロジェクトファイルの新しいコピーが作られることになります。そして、元のプロジェクトファイルは手つかずのまま残り、更にプロジェクトファイルの最新の内容がここで指定したファイルに保存されることになります。
ところで、この保存処理の結果は、プロジェクト名の変更
(即ちファイル名の変更)
だと捕らえることもできます。
元のプロジェクトファイルはそのまま残っているのですが、元のプロジェクトファイルの内容をコピーした新しいファイルができて、そのファイル名は、ここで指定した新しい名前になります。そして、カレントプロジェクトの名前 (即ちプロジェクト名) もこの新しい名前に変更されます。
ですから、元のプロジェクトファイルをここで消去してしまうとすれば、新しい名前のファイルは、元のプロジェクトファイルの名前が変更になった
(上に更に内容が最新の内容になった) ものだとみなすことができます。また、消去せずに残しておくとことにすれば、名前の変更をした上に、更に元のプロジェクトファイルを復元して残してあるのだとみなすことができます。
プロジェクト名の変更のために名前を付けてプロジェクトの保存という指示を与えるときには、保存した後に元のプロジェクトファイルを消去するようにお勧めいたします。もしも消去しないと、元のプロジェクトファイルがゴミファイルとして残ってしまうからです。なお、元のプロジェクトファイルを消去するには、Windows
系 OS のエクスプローラまたはファイルマネージャを登場させて、それに削除の指示を与える方法が普通です。
プロジェクトファイルのファイル名は、プロジェクトエクスプローラの中に記載されています。しかし、これはパス情報と拡張子を除いた簡略化されたファイル名ですから、ここからパス情報を得ることはできません。
パス情報を取得するには、一旦名前を付けてプロジェクトの保存という指示を与えます。
この操作方法は、以前の説明にある通りです。即ち、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の名前を付けてプロジェクトの保存(E)... というメニュー項目をクリックしてください。
この指示を与えると、名前を付けてプロジェクトの保存というダイアログボックスが登場するので、その中からパス情報を読み取ることができます。見た後は、キャンセルというボタンをクリックしてください。
なお、名前を付けてプロジェクトの保存という指示を与えたときに、名前を付けてファイルの保存という
(プロジェクトではなくファイルに関する) ダイアログボックスが登場することがあります。なぜこのようになるのかについては
[後始末が必要な場合になされる問合わせ]
の説明を参照してください。
プロジェクトファイルの中には、モジュール一覧表が入っていますが、この他にも幾つかの情報が入っています。
ここには、プロジェクトファイルの内容に関する操作としてモジュール一覧表の変更、およびその他の情報に関する操作の代表としてスタートアップフォームの確認と設定・変更を取り上げてあります。
・・ モジュール一覧表の変更
モジュール一覧表の変更に関する操作は、次の三つに分類されます。
この三つの操作は、これらの対象となる基本モジュールの種類
(フォームモジュールか、コードモジュールか)
および基本モジュールの保存の状態
(未だ保存されていない新たに作成しようとしている状態か、保存されたことのある作成済の状態か)
によって、次のように細分化されます。
●基本モジュールをカレントプロジェクトに追加する操作は、次の四つに細分化されます。
先頭の二つについては「3.2.2.1 新しい基本モジュールに関する操作」
の中の [新しい基本モジュールをカレントプロジェクトに追加して開く]
というところに、後の二つについては「3.2.2.2 作成済の基本モジュールに関する操作」
の中の [作成済の基本モジュールをカレントプロジェクトに追加して開く]
というところに説明があります。
●基本モジュールをカレントプロジェクトから除名する操作は、次の二つに細分化されます。
これらについては、「3.2.2.3 モジュール一覧表に関する操作」
の中の [基本モジュールを閉じてカレントプロジェクトから除名]
というところに説明があります。
●基本モジュール名を変更する操作は、次の二つに細分化されます。
これらについては、「3.2.2.2 作成済の基本モジュールに関する操作」
の中の [作成済の基本モジュールに名前を付けてファイルの保存]
というところに説明があります。
スタートアップフォームとは、プロジェクトの中でエントリポイント
(入口) となるモジュール、即ち最初に動作するモジュールです。
--- 正しくは、スタートアップモジュールと呼ぶべきですが、Visual
Basic の正式用語はスタートアップフォームになっているので、この用語を用いることにします。---
スタートアップフォームの確認や設定・変更をするには、メインウィンドウのプロジェクト(P) というメニュータイトルを開いて、その中の
… のプロパティ(E)... というメニュー項目をクリックしてください。
この操作をすると、以下に示すプロジェクトプロパティというダイアログボックスが登場します。ここで、スタートアップフォームの確認をすることができます。
スタートアップフォームの設定や変更をするには、確認操作の後にスタートアップの設定(S) というコンボボックスの中の一つの項目を選択してから OK というボタンをクリックしてください。
なお、確認だけでよいときには、キャンセルボタンをクリックしてください。
ここで、少しばかりの注意事項があります。即ち、スタートアップの設定(S)
というコンボボックスの中からスタートアップフォームを一つ選択する際に、そこに現れるのはモジュール名ではなく、フォーム名かプロシージャ名だということです。
フォームモジュールをスタートアップフォームにするには、そのフォーム名
(即ちモジュール名ではなくフォームのオブジェクト名) を選択してください。
コードモジュールをスタートアップフォームにするには、Sub
Main というプロシージャを表す文字列を選択してください。そして、コードモジュールのどれか一つに
Main という名前の Sub
プロシージャを組み入れるようにしてください。こうすると、Main
という名前の Sub プロシージャが最初に動作することになります。
なお、MANDALA を用いた開発においては、スタートアップフォームとして
MANDALA のメインフォームを指定することになっています。
3.2 基本モジュール
--- フォームモジュールとコードモジュール
---
ここでは、開発の成果物の一つ (一種) であるフォームモジュールおよびコードモジュールについて、ソフトウェア資産という観点から調べた後で、これに関する操作方法をマスタすることを目指します。ここでは、基本モジュールという言葉を使っていますが、これは Visual Basic の基本構成要素であるフォームモジュールおよびコードモジュールを意味します。
なお、操作方法の説明は「3.2.2 基本モジュールに関する操作」という項から始まります。
基本モジュールとは、フォームモジュールおよびコードモジュールを総称したものです。以下には、これらを分けてそれぞれの特徴が説明してあります。
[フォームモジュールとは]
フォームモジュールは、オブジェクト詳細情報とプログラムコードを特定の形式で入れたファイルです。2種類の情報が入っているので、フォームウィンドウとコードウィンドウの二つを通して見ないと、片手落ちになります。
なお、次の図と合わせてVisual Basic を用いて生み出す4種類のソフトウェア資産という図も参照してください。
(宣言セクション、イベントプロシージャ、 ジェネラルプロシージャ) フォームモジュール = オブジェクト詳細情報 + プログラムコード ↑ ↑ [フォームウィンドウ] [コードウィンドウ]
大雑把な言い方ですが、オブジェクト詳細情報とは、フォームウィンドウを通して見ることのできる情報であり、フォームの大きさ、およびフォームに含まれている各コントロールの位置や大きさなどの情報のことです。また、プログラムコードとは、コードウィンドウ通して見ることができる情報であるということができます。
--- これを逆方向から捕らえると、フォームウィンドウは、フォームモジュールのオブジェクト詳細情報を見たり変更したりするための召使であり、コードウィンドウは、フォームモジュール
(またはコードモジュール) のプログラムコードを見たり変更したりするための召使であるということができます。---
これらの情報をもう少し詳しく分類してみましょう。
オブジェクト詳細情報の中には、フォーム (というオブジェクト)
に関する諸々のプロパティの値、およびフォーム内に配置された各種のコントロール
(というオブジェクト) の一つ一つに関する諸々のプロパティの値が含まれています。
--- オブジェクト詳細情報の大半は、プロパティの値ですから、正確にいうとフォームウィンドウを通すよりもプロパティウィンドウを通して見た方が細かく見ることができます。---
プログラムコードの中には、宣言セクションおよび各種のプロシージャを含めることができます。プロシージャには、以前の説明の通り、各種のオブジェクトと結び付いたイベントプロシージャ、および特定のオブジェクトとの結び付きのないジェネラルプロシージャの2種類がありますが、フォームモジュールのプログラムコードの中には、これら両方の種類のプロシージャを組み入れることができます。
--- 因みに、フォームモジュールやコードモジュールは、テキストファイルという形
(テキスト形式) で保存されます。Visual Basic 4.0 より前のバージョンでは、バイナリファイルという形
(バイナリ形式) で保存することができましたが、これはできなくなりました。---
[コードモジュールとは]
コードモジュールとは、プログラムコードを入れたファイルです。その中にはプログラムコードが特定の形式で入っていて、それ以外のものは何も入っていません。即ち、フォームモジュールの中にあるようなオブジェクト詳細情報は入っていません。
なお、次の図と合わせてVisual Basic を用いて生み出す4種類のソフトウェア資産という図も参照してください。
(宣言セクション、ジェネラルプロシージャ) コードモジュール = プログラムコード ↑ [フォームウィンドウ] [コードウィンドウ] ↓ ↓ フォームモジュール = オブジェクト詳細情報 + プログラムコード
プログラムコードとは、コードウィンドウ通して見ることができるものであり、その中には宣言セクションおよび幾つかのプロシージャが入っています。
--- これを逆方向から捕らえると、コードウィンドウは、コードモジュール
(またはフォームモジュール) のプログラムコードを見たり変更したりするための召使だということができます。即ち、これを使って宣言セクションやプロシージャを見たり、それらの内容を変更したりできるわけです。---
コードモジュールのプログラムコードの中には、ジェネラルプロシージャという種類のプロシージャだけしか組み入れることができません。即ち、イベントプロシージャを組み入れることができません。なぜなら、コードモジュールの中にはフォームやコントロールなどのオブジェクトを含めることができないためです。
[基本モジュールの名前]
フォームモジュールの名前、即ちフォームモジュール名としては、フォームモジュールのファイル名を代用します。同様に、コードモジュールの名前、即ちコードモジュール名としては、コードモジュールのファイル名を代用します。
フォームモジュールのファイル名には、ソフトウェア資産の種類が一目で分かるように frm という拡張子を付けるのが習わしです。例えば、Jutyu.frm というようなファイル名を付けます。因みに、Visual Basic が生成するフォームモジュールの拡張情報ファイルには、frx という拡張子が使われています。なお、frm は Form に由来し、frx は Form Extension に由来します。
コードモジュールのファイル名には、bas
という拡張子を付けるのが習わしです。例えば、CDbangou.bas というようなファイル名を付けます。なお、bas
は Basic に由来します。
--- 繰り返しの説明になりますが、MANDALA を用いた開発においては、例えば、機械生成されたコードモジュールか手作りかによって拡張子を使い分けます。このようなコードモジュールの細かな種類が一目で分かるように、bas
だけでなく、Dnn、Fnn、fpr、psi、dbm、dem
などの拡張子も用いています (ただし nn は2個の数字)。---
短い名前が必要な場合は、フォームモジュール名としてピリオドと拡張子を除いた名前
(上の例の場合には Jutyu) を用いることがあります。同様に、コードモジュール名としてピリオドと拡張子を除いた名前
(上の例の場合には CDbangou) を用いることがあります。
--- フォームモジュールの名前とは別に、フォーム名
(即ちフォームの名前) がありますが、フォームモジュールの名前とフォームの名前とは異なるものですから注意してください。フォーム名とは、フォームモジュールの中のフォームというオブジェクトの名前であって、ファイル名ではありません。---
基本モジュールに関する操作は、次の三つに分類することができます。
●基本モジュールが格納されるファイルに関する操作は、次の六つに細分化されます。これらは、プロジェクトファイルに関するファイル操作を細分化した六つに対応します。⇔
という記号の後に、対応するプロジェクトファイルに関する操作が示してあります。
メモ帳に関する操作においては、(メモ帳一つに対して) ファイルを一つだけしか開けない形になっています。これに比べて、基本モジュールが格納されているファイルに関する操作においては、一つの Visual Basic に指示を与えて次々と基本モジュールを開いていくことができるので、複数のファイルを開いた状態にできる点に違いがあります。
開かれた基本モジュールが複数あり得るので、基本モジュールというファイルに関する操作は、どれを対象にするのか指定する必要があります。
このために、対象基本モジュールのコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。あるいは、モジュール一覧表の中の基本モジュール名
(即ちファイル名) をクリックして反転表示にしてください。こうすれば、操作の対象となる基本モジュールが決まりますから、後はメモ帳の操作と同じ要領で取り扱うことができます。
●モジュール一覧表に関する操作は、次の四つに細分化されます。
なお注意事項ですが、次の四つのうちここでご説明が必要なのは、三番目の除名に関する操作だけです。これ以外の三つは、ファイルに関する操作の中にある三つの操作と重複していますから、そこで説明されています。
●基本モジュールの内容に関する操作は、次の三つに細分化されます。
以下には、基本モジュールに関する上記の 10個 (重複して数えると
13個) の操作の詳細説明が書いてあります。
以下の 10個の基本モジュールに関する操作の詳細説明のうち、最後の一つを除いた九つは、フォームモジュールにもコードモジュールにも通用します。しかし、最後の一つは、フォームモジュールにだけに通用します。
ここには、新しい基本モジュールに関する操作の詳細説明として、次の二つが書いてあります。
・・ 新しい基本モジュールをカレントプロジェクトに追加して開く
先ず、メモ帳を起動してみてください。こうするとテキストファイルを新たに作成するための準備が整います。同様に、Visual
Basic を起動してみましょう。こうするとフォームモジュールを新たに作成するための準備が整います。
上の説明と一部重複しますが、Visual Basic が未だ登場していないときに、これを起動すると、仮の名前
(Form1 という名前) をもつ新しいフォームモジュールがカレントプロジェクトに追加して開かれ、このフォームモジュールを新たに作成するための準備が整います。
Visual Basic が既に登場しているときに、新しいフォームモジュールやコードモジュールをカレントプロジェクトに追加して
(付け加えて) 開く方法は、以下に書いてあります。
[新しい基本モジュールをカレントプロジェクトに追加して開く]
新しい基本モジュールをカレントプロジェクトに追加して (付け加えて)
開く操作方法は、フォームモジュールの場合とコードモジュールの場合で若干の違いがあります。
フォームモジュールを追加する場合は、メインウィンドウのプロジェクト(P) というメニュータイトルを開いて、その中のフォームモジュールの追加(F)
というメニュー項目をクリックしてください。
または、ボタン一つでこれを行うには、上図のボタン、即ちメインウィンドウのツールバーの中のフォームモジュールの追加ボタンをクリックしてください。
このどちらかの指示を与えると、仮の名前 (Form という文字列で始まる名前)
をもつ新しいフォームモジュールが開かれて、それに対応するフォームウィンドウが登場します。
--- ここでは、テンプレートの表示をしない設定
(「第4章 Visual Basic 5.0 のカスタマイズ」
を参照) の場合を述べています。テンプレートの表示をする設定の場合フォームモジュールの追加というダイアログボックスが登場します。---
コードモジュールを追加する場合は、メインウィンドウのプロジェクト(P) というメニュータイトルを開いて、その中の標準モジュールの追加(M)
というメニュー項目をクリックしてください。
または、ボタン一つでこれを行うには、上図のボタン、即ちメインウィンドウのツールバーの中の標準モジュールの追加ボタンをクリックしてください。
--- と簡単に書きましたが、この位置にはフォームモジュールの追加というボタンがあったはずです。そうです、これは可変ボタンになっていて、ボタンの右隣の下向き三角印のボタンをクリックすると出現するメニューの中の最後に
(最近) 選択したボタンが表示されるようになっています。---
もしも、この位置に標準モジュールの追加というボタンが表示されていなければ、ボタンの右隣の下向き三角印のボタンをクリックすると出現する標準モジュール(M)
というメニュー項目をクリックしてください。
このどれかの指示を与えると、仮の名前 (Module という文字列で始まる名前)
をもつ新しいコードモジュールが開かれて、それに対応するコードウィンドウが登場します。
--- ここでは、テンプレートの表示をしない設定
(「第4章 Visual Basic 5.0 のカスタマイズ」
を参照) の場合を述べています。テンプレートの表示をする設定の場合標準モジュールの追加というダイアログボックスが登場します。---
フォームモジュールの場合もコードモジュールの場合も、上記の指示を与えると、カレントプロジェクトに追加する
(付け加える) こと、および新しい基本モジュールを開くことの二つの処理が実施されます。
ここで推奨操作法をご伝授しておきます。基本モジュールを新たに作成すると決めた場合には、上記の指示の直後に、次に説明のある新しい基本モジュールに名前を付けてファイルの保存という指示を与えることをお勧めいたします。こうすれば、基本モジュールは
(仮の名前ではなく) 正式な名前をもつことになりますし、作成済のものと全く同じ扱いになります。
新しい基本モジュール (フォームモジュールまたはコードモジュール) に名前を付けて保存するには、次の三ステップの操作を行います。
第一ステップでは、どの基本モジュールを保存したいのかを指定します。プロジェクトエクスプローラのモジュール一覧表の中の新しい
(未だ保存されていない) 基本モジュールを一つ選んでそのモジュール名
(即ちファイル名) をクリックして反転表示にするか、あるいは保存したい基本モジュールに対応するコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。
第二ステップでは、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の名前を付けて
… の保存(A)... というメニュー項目をクリックしてください。
この指示を与えると、以下に示す名前を付けてファイルの保存というダイアログボックスが登場します。そこで、第三ステップとして、ファイル名とファイルの格納先のフォルダ
(ディレクトリ) とを指定してから保存
(または OK) というボタンをクリックしてください。基本モジュールを保存することができます。
---- 名前を付けてファイルの保存というダイアログボックスは、名前を付けてプロジェクトの保存に似ています。対象にするファイルの種類が異なるだけで、両方とも保存先を指定するためのものであり、形も全く同じです。
また、Visual Basic には名前を付けてプロジェクトの保存(E)...
というメニュー項目がありますが、これはプロジェクトに名前を付けること
(とそのプロジェクトファイルを保存すること)
が主目的ですから、混同しないようにご注意ください。---
ここの説明は、作成済の基本モジュールに対して通用するだけでなく、新たに作成しようとする基本モジュールに対しても、それに名前を付けてファイルの保存の保存という操作を施した後であれば、通用します。
ここには、作成済の基本モジュールに関する操作の詳細説明として、次の四つが書いてあります。この中の三番目の名前を付ける操作と四番目のパス情報の取得に関する操作の中で行う指示は、「3.2.2.1 新しい基本モジュールに関する操作」
に説明があった新しい基本モジュールに名前を付けてファイルの保存という指示と同じものです。
・・ 作成済の基本モジュールをカレントプロジェクトに追加して開く
メモ帳に関する操作においては、(メモ帳一つに対して) ファイルを一つだけしか開けない形になっています。これに比べて、基本モジュールが格納されているファイルに関する操作においては、一つの Visual Basic に指示を与えて次々と基本モジュールを開いていくことができるので、複数のファイルを開いた状態にできる点に違いがあります。
開かれた基本モジュールが複数あり得るので、基本モジュールというファイルに関する操作は、どれを対象にするのか指定する必要があります。
このために、対象基本モジュールのコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。あるいは、モジュール一覧表の中の基本モジュール名
(即ちファイル名) をクリックして反転表示にしてください。こうすれば、操作の対象となる基本モジュールが決まりますから、後はメモ帳の操作と同じ要領で取り扱うことができます。
[作成済の基本モジュールをカレントプロジェクトに追加して開く]
既に作成済の基本モジュール (フォームモジュールまたはコードモジュール) をカレントプロジェクトに追加して (付け加えて) 開くには、次の二ステップの操作を行います。
第一ステップでは、メインウィンドウのプロジェクト(P) というメニュータイトルを開いて、その中のファイルの追加(A)...
というメニュー項目をクリックしてください。
この指示を与えると、以下に示すファイルの追加というダイアログボックスが登場します。そこで、第二ステップとして、基本モジュールのファイルが格納されているフォルダ (ディレクトリ) とファイル名を選択してから開く (または OK) というボタンをクリックしてください。
この第二ステップでは、カレントプロジェクトに追加する (付け加える)
こと、および作成済の基本モジュールを開くことの二つを同時に行ってしまいます。
--- ファイルの追加というダイアログボックスは、名前を付けてファイルの保存にも似ています。大きな違いは、ファイルの追加はどのファイルを開いて読み出すのかを指定するのに対して、名前を付けてファイルの保存はどのファイルに書き出すのかを指定する点です。---
このファイルの追加の操作を行っても、基本モジュールに対応するフォームウィンドウやコードウィンドウは登場しませんから、必要なウィンドウを呼び出す操作はこの後で行ってください。
以上は、ファイルの追加のためのごく普通の操作方法ですが、同じことを次の裏わざを使って行うこともできます。裏わざを使うと複数のファイルを一遍に追加できるので便利です。
裏わざも二ステップの操作からなっていますが、中身はだいぶ違います。
第一ステップでは、Windows 系 OS のエクスプローラまたはファイルマネージャを開いて追加したいファイルをクリックして反転表示にします。Shift
キーまたは Ctrl キーを押したままの状態でクリックすれば、複数のファイルを反転表示にすることもできます。
第二ステップでは、反転表示のファイルをドラッグ
(マウスの左ボタンをクリックしたままの状態でのマウスの移動) して、プロジェクトエクスプローラにドロップします
(目標の個所でマウスの左ボタンを元に戻します)。エクスプローラに関するドラッグアンドドロップ操作によって、ファイルをコピーする際の要領を思い出していただくとよいでしょう。
こうすると、反転表示の全てのファイルをカレントプロジェクトに追加して
(付け加えて) 開くことになります。
作成済の基本モジュール (フォームモジュールまたはコードモジュール) の保存には、次の二ステップの操作を行います。
第一ステップでは、どの基本モジュールを保存したいのかを指定します。プロジェクトエクスプローラのモジュール一覧表の中の作成済の基本モジュールを一つ選んでそのモジュール名
(即ちファイル名) をクリックして反転表示にするか、あるいは保存したい基本モジュールに対応するコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。
第二ステップでは、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の
… の保存(S) というメニュー項目をクリックしてください。
--- Visual Basic には、プロジェクトの上書き保存(V) というメニュー項目がありますが、これは、そのプロジェクトに含まれる全モジュールのファイルを最新の内容にした上でプロジェクトファイルを保存するものです。
… の保存(S) の方は、指定した基本モジュールを一つだけ保存するためのものですから、どちらかというと特殊用途向けです。
通常は、プロジェクトの上書き保存(V)
の方をよく使用します。---
基本モジュール (フォームモジュールまたはコードモジュール) の変更前の内容と変更を施した後の最新の内容の両方とも保存するには、次の三ステップの操作を行います。
第一ステップでは、どの基本モジュールを保存したいのかを指定します。プロジェクトエクスプローラのモジュール一覧表の中の作成済の基本モジュールを一つ選んでそのモジュール名
(即ちファイル名) をクリックして反転表示にするか、あるいは保存したい基本モジュールに対応するコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。
第二ステップでは、名前を付けてファイルの保存という指示を与えます。
この操作方法は、以前に説明があった [新しい基本モジュールに名前を付けてファイルの保存] と同じです。新しい基本モジュールの場合も作成済の基本モジュールの場合も操作方法に変わりはありません。
メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の名前を付けて
… の保存(A)... というメニュー項目をクリックしてください。
この指示を与えると、名前を付けてファイルの保存というダイアログボックスが登場します。そこで、第三ステップとして、新しいファイル名とファイルの格納先のフォルダ (ディレクトリ) とを指定してから保存 (または OK) というボタンをクリックしてください。
これらの結果、基本モジュールの新しいコピーが作られることになります。元の基本モジュールはそのまま残ったままですが、その基本モジュールの最新の内容がここで指定したファイルに保存されることになります。
--- Visual Basic には、名前を付けてプロジェクトの保存(E)...
というメニュー項目がありますが、これはプロジェクトに名前を付けること
(とそのプロジェクトファイルを保存すること)
が主目的ですから、混同しないようにご注意ください。---
ところで、この保存処理の結果は、基本モジュール名の変更 (即ちファイル名の変更) だと捕らえることもできます。
元の基本モジュールはそのまま残っているのですが、元の基本モジュールの内容をコピーした新しいファイルができて、そのファイル名は、ここで指定した新しい名前になります。そして、カレントプロジェクトのモジュール一覧表の中の基本モジュール名 (即ちファイル名) もこの新しい名前に変更されます。
ですから、元の基本モジュールをここで消去してしまうとすれば、新しい名前のファイルは、元の基本モジュールの名前が変更になった
(上に更に内容が最新の内容になった) ものだとみなすことができます。また、消去せずに残しておくことにすれば、名前の変更をした上に、更に元の基本モジュールを復元して残してあるのだとみなすことができます。
基本モジュール名の変更のために名前を付けてファイルの保存という指示を与えるときには、これを行った後に元の基本モジュールを消去するようにお勧めいたします。もしも消去しないと、元の基本モジュールがゴミファイルとして残ってしまうからです。なお、元の基本モジュールを消去するには、Windows 系 OS のエクスプローラまたはファイルマネージャを登場させて、それに削除の指示を与える方法が普通です。
ただし、複数のプロジェクトのメンバになっている基本モジュール (即ち共用基本モジュール) の名前の変更のために名前を付けてファイルの保存という指示を与えた場合には、元の基本モジュールを消去してはなりません。もしも消去してしまうと、この基本モジュールをメンバにもつ他のプロジェクト (即ちこの基本モジュールが所属するプロジェクト) を開いたときに 「ファイルが見つかりません」 というエラーメッセージが出ることになってしまいます。
なぜなら、カレントプロジェクトのモジュール一覧表の中の基本モジュール名は新しい名前に変更されますが、これ以外のモジュール一覧表は変更されずに元の名前が残っているからです。そこで、そういうモジュール一覧表をもつプロジェクトを開くと、そのモジュール一覧表の中にある変更前の名前のファイルを探しに行くことになるので見つからないというわけです。
したがって、元の基本モジュールを残しておく必要があります。消去しても問題のなくなる時期は、その基本モジュールをメンバにもつような全てのプロジェクトに対して、それらを一つ一つ開いて、それぞれのモジュール一覧表の変更を済ませた後だということになります。
[エクスプローラでファイル名を変更すると]
ファイル名を変更するには、一般に Windows 系 OS のエクスプローラまたはファイルマネージャを用います。
そこで、Visual Basic に名前を付けてファイルの保存という指示を与える代わりに、エクスプローラ (またはファイルマネージャ) に名前の変更という指示を与えたとしても、基本モジュール名 (即ちファイル名) を変更することができるはずです。
ただし、こうするとモジュール一覧表の中のモジュール名は変更されません。ですから、この基本モジュールをメンバにもつようなプロジェクトを開くと
「ファイルが見つかりません」 というエラーメッセージが出ることになってしまいます。
これらのことから、どのプロジェクトのメンバにもなっていない基本モジュール
(言わば浪人中の基本モジュール)
に限って、エクスプローラ
(またはファイルマネージャ)
を使って名前の変更をしてもよいということができます。そうでない場合、基本モジュールの名前を変更するには
Visual Basic に対して名前を付けてファイルの保存という指示を与えてください。
プロジェクトエクスプローラを通してプロジェクトファイルの中のモジュール一覧表を見ると、基本モジュール (フォームモジュールまたはコードモジュール) のファイル名が分かります。しかし、ここにはパス情報が記載されていません。
基本モジュールのパス情報を取得するには、次の二ステップの操作が必要です。
第一ステップでは、どの基本モジュールのパス情報を知りたいのかを指定します。プロジェクトエクスプローラのモジュール一覧表の中の作成済の基本モジュールを一つ選んでそのモジュール名
(即ちファイル名) をクリックして反転表示にするか、あるいはその基本モジュールに対応するコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。
第二ステップでは、一旦名前を付けてファイルの保存という指示を与えます。
この操作方法は、以前の説明の通り、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の名前を付けて … の保存(A)... というメニュー項目をクリックしてください。
この指示を与えると、名前を付けてファイルの保存というダイアログボックスが登場するので、その中からパス情報を読み取ることができます。見た後は、キャンセルボタンをクリックしてください。
ここには、モジュール一覧表に関する操作の詳細説明として、次の四つがあるべきですが、三番目の“除名”についてのみ書いてあります。これ以外の三つは、既に説明されているからです。
・・ 新しい基本モジュールをカレントプロジェクトに追加して開く
・・ 作成済の基本モジュールをカレントプロジェクトに追加して開く
・・ 基本モジュールを閉じてカレントプロジェクトから除名 (解放)
・・ 基本モジュール名の変更 (基本モジュールのファイル名の変更)
先頭については「3.2.2.1 新しい基本モジュールに関する操作」
のところで、二番目と四番目については「3.2.2.2 作成済の基本モジュールに関する操作」
のところで、既に説明されています。
[基本モジュールを閉じてカレントプロジェクトから除名 (解放)]
基本モジュール (フォームモジュールまたはコードモジュール) を閉じてカレントプロジェクトから除名する (取り除く) には、次の二ステップの操作を行います。
第一ステップでは、除名したい基本モジュールを指定します。プロジェクトエクスプローラのモジュール一覧表の中の作成済の基本モジュールを一つ選んでそのモジュール名
(即ちファイル名) をクリックして反転表示にするか、あるいは除名したい基本モジュールに対応するコードウィンドウ
(フォームモジュールの場合はフォームウィンドウでも構いません)
をクリックしてフォーカスをあててください。
第二ステップでは、メインウィンドウのプロジェクト(P) というメニュータイトルを開いて、その中の … の解放(R) というメニュー項目をクリックしてください。
この第二ステップでは、基本モジュールを閉じること、およびカレントプロジェクトから除名する
(取り除く) ことの二つを同時に行ってしまいます。
なお、この指示を与えたときに、名前を付けてファイルの保存というダイアログボックスが登場して、除名する基本モジュールを保存するかどうかの問合わせがなされることがあります。これは後始末の一種です。
ここには、基本モジュールの内容に関する操作の詳細説明として、次の三つが書いてあります。
・・ プログラムコードのコピー
基本モジュール (フォームモジュールまたはコードモジュール) のプログラムコードは、一つの宣言セクションと幾つかのプロシージャから構成されます。
プロシージャには、以前の説明の通り、各種のオブジェクトと結び付いたイベントプロシージャと特定のオブジェクトとの結び付きのないジェネラルプロシージャの2種類があります。
--- ジェネラルプロシージャは、フォームモジュールの中にもコードモジュールの中にも組み入れることができます。他方、イベントプロシージャは、フォームモジュールの中にのみ組み入れることができます。---
新しいコードモジュールを開いた直後は、宣言セクションが一つあるだけで、プロシージャは一つもありません。ここに、プロシージャ
(正確にいうとジェネラルプロシージャ) を組み入れていけば、幾つかのプロシージャをもつコードモジュールに仕立てることができます。この操作方法は、この後半の部分
(ジェネラルプロシージャを組み入れる操作方法) に詳しく書いてあります。
新しいフォームモジュールを開いた直後も、宣言セクションが一つあるだけで、プロシージャは一つもありません。ここに、プロシージャ (ジェネラルプロシージャやイベントプロシージャ) を組み入れていけば、幾つかのプロシージャをもつフォームモジュールに仕立てることができます。
フォームモジュールにプロシージャを組み入れる操作方法は、どちらの種類のプロシージャを対象にするかによって異なります。
ジェネラルプロシージャを組み入れる操作方法は、この後半の部分に詳しく書いてあります。
フォームモジュールにイベントプロシージャを組み入れる操作方法は、コードウィンドウの働きのお陰で、極めて簡単です。即ち、コードウィンドウ上の方にある二つのコンボボックス
(プロシージャの種類を表すものとプロシージャ名を一覧にしたもの)
の中から適当なイベントプロシージャを選択するだけで、組み入れ完了となります。ですから、この後でプロシージャの内容をインプットすれば、プロシージャを作成できます。
ここまでの部分は、フォームモジュールとコードモジュールで少しばかり違いがありましたが、以後のジェネラルプロシージャの組み入れに関する部分
(後半の部分) は、フォームモジュールにもコードモジュールにも (即ちどちらの基本モジュールにも)
通用します。
基本モジュールにジェネラルプロシージャを組み入れる操作方法は、次の四ステップからなります。
第一ステップでは、組み入れ先の基本モジュールを明確にします。どの基本モジュールに組み入れるのかは、即ち組み入れ先は、コードウィンドウをクリックしてフォーカスをあてることによって指定してください。なお、組み入れ先の基本モジュールに対応するコードウィンドウが登場していない場合には、コードウィンドウを呼び出してください。
第二ステップでは、メインウィンドウのツール(T) というメニュータイトルを開いて、その中のプロシージャの追加(P)...
というメニュー項目をクリックしてください。
この指示を与えると、以下に示すプロシージャの追加というダイアログボックスが登場します。そして、ここからが第三ステップになります。プロシージャには、Sub
プロシージャ(S) と Function
プロシージャ(F) の2種類がありますから、どちらのタイプのプロシージャを組み入れるのかをオプションボタンで選択し、更に名前(N)
をインプットしてから OK
というボタンをクリックしてください。
これらの結果、コードウィンドウの中に新しいプロシージャのガラが現れます。
そこで、第四ステップとして、パラメタの宣言とプロシージャの内容をインプットしてください。こうすることで、プロシージャを作成することができます。
あるいは、上記の第二ステップと第三ステップの代わりに、コードウィンドウの中のプロシージャの区切れ目に、次のような文字列を直接インプットしてから、Enter キーを押下する方法もあります。
Function CDbangou_Check
プロシージャを作成する際に、文字列をキーボードからインプットするのが普通ですが、他のプログラムコードの一部をコピーしてくること
(カットアンドペーストまたはコピーアンドペースト) もできます。
カットアンドペーストとはコピー元から文字列を切り取って、コピーの宛て先に張り付けることであり、結果として文字列が移動することになります。コピーアンドペーストとはコピー元の文字列を
(切り取らずに) コピーして、宛て先に張り付けることですから、元の文字列は残ったままその文字列の新しいコピーがつくられることになります。
どちらの操作も、二つ (または一つ) のコードウィンドウの間で行います。
ある基本モジュールから別の基本モジュールにコピーするときには、コピー元とコピーの宛て先の両方のコードウィンドウを登場させて操作を行います。
他方、一つの基本モジュール内でコピーする場合は、そのコードウィンドウがコピー元であり、かつ宛て先だということになります。このときには、コードウィンドウの二枚重ねの構造を活用すると、コピー元と宛て先がどんなに離れていてもこれらを同時に見ながら操作できます。
--- コピー元のコードモジュールがカレントプロジェクトに入っていない場合には、そのコードモジュールを一旦カレントプロジェクトに追加してから、それに対応するコードウィンドウを登場させてください。一連の操作が終わった後で、そのコードモジュールをカレントプロジェクトから除名すれば、元どおりのモジュール構成に戻すことができますから、しばらくの間だけプロジェクトのメンバにするわけです。
あるいは、Visual Basic をもう一つ起動して、そのコードモジュールが含まれているプロジェクトを開いてから、コードウィンドウを登場させてください。そして、一連の操作が終わった後に、追加起動した方の
Visual Basic を終了させてください。---
コピー元と宛て先のコードウィンドウが決まったら、次の前段・後段の操作を行います。
前段では、コピーしたい文字列を取り出します。
先ずコピーしたい文字列をドラッグ (マウスの左ボタンをクリックしたままの状態でのマウスの移動) することによって反転表示にしてください。
次に、メインウィンドウの編集(E) というメニュータイトルを開いて、その中の切り取り(T)
またはコピー(C)
というメニュー項目をクリックしてください。
または、ボタンで切り取りの指示を与えるには、上図のボタン、即ちメインウィンドウのツールバーの中の切り取りボタンをクリックしてください。
または、ボタンでコピーの指示を与えるには、上図のボタン、即ちメインウィンドウのツールバーの中のコピーボタンをクリックしてください。
このどれかの操作を行うと、コピーしたい文字列は一旦クリップボードという仲介役のところにコピーされ、どこかに張り付けられるのを待つことになります。
後段では、クリップボードの中の文字列を目標の箇所に張り付けます。
先ず、コピーの宛て先をクリックすることによって、カーソルをそこに移動させます。照準を定めるわけです。
これに続けて、メインウィンドウの編集(E) というメニュータイトルを開いて、その中の貼り付け(P)
というメニュー項目をクリックしてください。
または、ボタンで貼り付けの指示を与えるには、上図のボタン、即ちメインウィンドウのツールバーの中の貼り付けボタンをクリックしてください。
このようにして引きがねをひくと、クリップボードの中の文字列が飛び出してコピーの宛て先に向かい、そこに張り付られます。
なお、コピーの宛て先が何箇所もある場合には、後段の操作を繰り返してください。この操作によってクリップボードの中の文字列はなくなりませんから、何箇所もの宛て先へコピーをすることができます。
カットアンドペーストの操作を行うことで、プロシージャを丸ごと一つ、他の基本モジュールに移動させることもできます。コピーアンドペーストの操作を行うことで、プロシージャを丸ごと一つコピーすることもできますが、その際には、名前の重複に注意してください。
--- 同じフォームモジュールの中や、または同じコードモジュールの中では、プロシージャ名が重複することは許されていません。しかし、異なるフォームモジュールやコードモジュールにおいては、プロシージャ名が重複することが許されています。たとえそれらが同じプロジェクトに含まれていても構いません。---
カットアンドペーストも、コピーアンドペーストも、Visual Basic のコードウィンドウの間で行えるだけでなく、例えばコードウィンドウと
Windows 系 OS
のメモ帳の間でも行えます。メモ帳にコピーアンドペーストする場合には、プロシージャを丸ごと一つコピーしたとしても、プロシージャ名の重複が問題になることはありません。
--- Visual Basic 4.0 と 5.0 との間では、プログラムコードのカットアンドペーストやコピーアンドペーストを行うことができます。---
カットアンドペーストの指示も、コピーアンドペーストの指示も、以下に示すショートカットキー
(短絡的な操作を可能にするキー) を用いると素早くできます。
--- ショートカットキーに似たものに、アクセスキーがありますが、これは言わば、メニューを開くという目的のためだけのショートカットキーのようなもので、これだけでは狙った指示は完結しません。---
編集(E) というメニュータイトルを開いて、その中の切り取り(T)
というメニュー項目をクリックする操作は、キーボード上の Ctrl
キーを押したまま更に X
キーを押下するキー操作 (これを Ctrl
+ X と表記することにいたします)
で代行できます。
編集(E) というメニュータイトルを開いて、その中のコピー(C)
というメニュー項目をクリックする操作は、Ctrl
+ C というキー操作で代行できます。
編集(E) というメニュータイトルを開いて、その中の貼り付け(P)
というメニュー項目をクリックする操作は、Ctrl
+ V というキー操作で代行できます。
以上の三つは、最も使用頻度が高いショートカットキーですが、Visual Basic ではこの他にも数多くのショートカットキーが定義されています。
「主要メニュー項目の索引」の中のメニューを開いた図を参照すると分ることですが、各メニュー項目の右側に書いてあるのがショートカットキーです。例えば、Ctrl
+ Z は元に戻すですし、Ctrl
+ F5 は完全コンパイル後に開始ですし、F8
はステップイン (シングルステップ)
ですし、Ctrl +
F は文字列の検索ですし、F3
は次を検索ですし、Tab
はインデントであるといった具合です。ショートカットキーを覚えると、操作がスムーズにスマートにできるようになります。
主にコードウィンドウ (またはその他のウィンドウ)
上で文字列の編集をしている際に問題になることが多いのですが、操作ミスで大切な文字列を消してしまうことがあります。このような場合に再度文字列をインプットするのは面倒ですし、誤りを発生させることになりかねません。このような事態に備えて、誤って行った編集操作を元に戻すこと
(アンドゥ) ができるようになっています。
誤って行った編集操作 (切り取りまたは貼り付けまたは文字列の削除または文字列の入力など)
を元に戻すには、メインウィンドウの編集(E) というメニュータイトルを開いて、その中の元に戻す(U)
というメニュー項目をクリックしてください。
または、ボタン一つでこれを行うには、上図のボタン、即ちメインウィンドウのツールバーの中の元に戻すボタンをクリックしてください。
あるいは Ctrl + Z
というショートカットキーの操作を行ってください。
このどれかの指示を与えると、誤って行った編集操作を元に戻すことができます。
ところで、元に戻す操作を誤って行ってしまうこともあり得ます。そして、この操作ミスで大切な文字列を消してしまうこともあるでしょう。ところが、これを元に戻したいと思って元に戻す操作を行っても元に戻すことはできません。このような場合には、やり直しの操作を行ってください。
やり直しの操作は、メインウィンドウの編集(E) というメニュータイトルを開いて、その中のやり直し(R) というメニュー項目をクリックしてください。
または、ボタン一つでこれを行うには、上図のボタン、即ちメインウィンドウのツールバーの中のやり直しボタンをクリックしてください。
このどちらかの指示を与えると、誤って行った元に戻す操作を行う前の状態に復元することができます。
フォームモジュールに張り付けるコントロールは、ツールボックスの中から取り出してくることもできますが、フォームモジュールの中のコントロールをコピーしてくること
(カットアンドペーストまたはコピーアンドペースト) もできます。
ほとんど繰り返しの説明になりますが、カットアンドペーストとはコピー元からコントロールを切り取って、コピーの宛て先に張り付けることであり、結果としてコントロールが移動することになります。コピーアンドペーストとはコピー元のコントロールを
(切り取らずに) コピーして、宛て先に張り付けることですから、元のコントロールは残ったままそのコントロールの新しいコピーがつくられることになります。
どちらの操作の場合も、コントロールを張り付けると同時にプロパティもコピーされるのでなかなか快適です。また、複数のコントロール
(コントロール群) の一括張り付けもできるので便利です。
--- ただし、そのコントロールのイベントプロシージャはコピーされません。---
どちらの操作も、二つ (または一つ) のフォームウィンドウの間で行います。
先ず前準備として、コピー元のコントロールが張り付けられているフォームウィンドウ、およびコピーの宛て先のフォームに対応するフォームウィンドウ
(これは前者と同じ場合もあります) を登場させてください。
--- コピー元のフォームがカレントプロジェクトに入っていない場合には、そのフォームモジュールを一旦カレントプロジェクトに追加してから、それに対応するフォームウィンドウを登場させてください。一連の操作が終わった後で、そのフォームモジュールをカレントプロジェクトから除名すれば、元どおりのモジュール構成に戻すことができますから、しばらくの間だけプロジェクトのメンバにするわけです。
あるいは、Visual Basic をもう一つ起動して、そのフォームモジュールが含まれているプロジェクトを開いてから、フォームウィンドウを登場させてください。そして、一連の操作が終わった後に、追加起動した方の
Visual Basic を終了させてください。---
フォームウィンドウの用意ができたら、次の前段・後段の操作を行います。
前段では、コピーしたいコントロールを取り出します。
コピーしたいコントロールが一つの場合には、それをクリックして、フォーカスをあててください。
複数のコントロール (コントロール群) を一括コピーしたい場合には、それらのコントロールのまわりをドラッグ (マウスの左ボタンをクリックしたままの状態でのマウスの移動) することによって破線の四角形をつくり、その中にコピーしたいコントロールが全て入るようにしてください。あるいは、Ctrl キーを押したままの状態で、コピーしたいコントロールを一つ一つクリックしてください。
次に、メインウィンドウの編集(E) というメニュータイトルを開いて、その中の切り取り(T) またはコピー(C) というメニュー項目をクリックしてください。あるいは、ツールバーの中の切り取りまたはコピーというボタンをクリックしてください。
こうすると、コピー元の幾つかのコントロールは、一旦クリップボードという仲介役のところにコピーされ、どこかに張り付けられるのを待つことになります。
後段では、クリップボードの中の幾つかのコントロールを目標の箇所に張り付けます。
先ず、コピーの宛て先のフォームウィンドウをクリックして、フォーカスをあててください。
これに続けて、メインウィンドウの編集(E) というメニュータイトルを開いて、その中の貼り付け(P) というメニュー項目をクリックしてください。あるいは、ツールバーの中の貼り付けボタンをクリックしてください。
このようにして引きがねをひくと、クリップボードの中にあった
(幾つかの) コントロールが飛び出してコピーの宛て先のフォーム (またはコントロール)
にに向かい、そこに張り付られます。
後段の操作の中で、コピー先のフォームウィンドウのフォーム部分をクリックすると、フォームの上に張り付けることになります。フォームを宛て先にするわけです。
他方、フォームウィンドウの中のフレームなどのコントロールをクリックすると、フレームなどのコントロールの中に張り付けることになります。コントロールを宛て先にするわけです。こうすると、コントロール間に親子関係が付き、フレームなどの親コントロールを移動させると同時に子コントロールも移動するようになります。
なお、コピーの宛て先が何箇所もある場合には、後段の操作を繰り返してください。この操作によってクリップボードの中のコントロールはなくなりませんから、何箇所もの宛て先へコピーをすることができます。
カットアンドペーストの場合も、コピーアンドペーストの場合も、同時にコントロールのプロパティの値を張り付けて
(コピーして) しまうので好都合です。ただし、(オブジェクト名)
(Name) というプロパティについては例外があります。一つのフォームの中では、コントロール配列の場合を除いて、コントロール名が重複することが許されていません。ですから、操作の結果この規定に反することになる場合には、自動的に適当なコントロール名に変更されます。
カットアンドペーストの指示も、コピーアンドペーストの指示も、ショートカットキーを用いると素早くできます。ショートカットキーについては、この前にある
[ショートカットキー]
の説明を参照してください。
--- Visual Basic 4.0 と 5.0 との間では、コントロールのカットアンドペーストやコピーアンドペーストを行うことができません。しかし、プログラムコードのカットアンドペーストやコピーアンドペーストは、行うことができます。---
ここでは、開発の成果物である
exe (実行可能プログラム) について、ソフトウェア資産という観点から調べます。そして、その後でこれに関する操作方法をマスタすることを目指します。
[exe (実行可能プログラム) とは]
exe (実行可能プログラム) は、プロジェクトファイルとそのプロジェクトを構成する全ての基本モジュール (フォームモジュールおよびコードモジュール) を特定の形式で集約したファイルであり、主にアプリケーションプログラムを配付する際に用いるものです。
ただし、OCX (カスタムコントロールモジュール)
および DLL (ダイナミックリンクライブラリ)
は exe ファイルの中に集約されません。したがって、配付に際しては、これらのファイルを
exe に添付することが必要です。
--- 以前に、カスタムコントロールモジュールとはフォームモジュールでもコードモジュールでもない言わば第三のモジュールであるとの説明をしましたが、これらのファイルは
exe ファイルへの集約に関して、基本モジュールとは異なる扱いになっていることに注意してください。---
exe というファイル (実行可能プログラムファイル) があるので、アプリケーションプログラムを配付する際に、次の点が有利になっています。
もしも、幾つかのモジュールから構成されるプロジェクトをそのままの形で配付するものとすると、数多くのファイルを配付しなければならなくなります。プロジェクトファイルとそのプロジェクトを構成する全ての基本モジュールをコピーしなければならないわけです。そして、このプロジェクトを実行させるパソコンの一台一台に Visual Basic をインストールすることが必要になります。
他方、exe ファイルを作って配付する方式は、プロジェクトファイルとそのプロジェクトを構成する全ての基本モジュールが一つのファイルに集約されますから、第一に取扱いやすさという点で優ります。そして、第二にプロジェクトを実行させるために、Visual Basic をインストールしておく必要はなくなります。ただし、MSVBVM50.dll、VB5JP.dll などの DLL が必要になりますから、これらを再頒布する際の条件をよく読んで確認の上、一緒に配付してください。
なお、MANDALA を用いて開発したアプリケーションプログラムについては、Ae_Sup32.dll
という DLL が必要になりますから、これを再頒布する権利を取得の上、それぞれのパソコンにインストールする必要があります。
[exe の名前 (実行可能プログラム名)]
exe の名前、即ち exe 名 (実行可能プログラム名) としては、exe (実行可能プログラム) のファイル名を代用します。
exe (実行可能プログラム) のファイル名には、ソフトウェア資産の種類が一目で分かるように exe という拡張子を付けるのが習わしです。例えば、Jutyu.exe というような名前を付けます。因みに、exe は Executable (実行可能) に由来します。そして、exe は exe というソフトウェア資産の種類を表す名前にもなっています。
短い名前が必要な場合は、ピリオドと拡張子を除いた名前 (上の例の場合には
Jutyu) を exe 名 (実行可能プログラム名)
として用いることがあります。
[exe でのデバッグ]
exe (実行可能プログラム) は、プログラムのデバッグが終わった後に、それを配付するために作成するのが普通です。ところが、これ以外にも、プログラムをデバッグするために exe ファイルを作成する場合があります。これは、exe を実行させることはできるのに、Visual Basic のインタープリタのもとでは実行させることができない (開始の指示を与えるとエラーになる) ような場合です。
具体的には、一つのフォームに数多くのコントロールを張り付けると、インタープリタのもとで実行させることができなくなることがあります。例えば
「メモリが不足です」 というエラーメッセージが出現して、先に進まなくなることがあります。こうなった場合には、exe
ファイルを作成してそれをデバッグするしかありません。そして、このデバッグ作業が普段よりも時間がかかり、面倒であることを体験すると、Visual
Basic のインタープリタを用いたデバッグがいかに便利であったのか、そのありがたみを知ることになるでしょう。
なお、通常の場合も、インタープリタのもとでデバッグを終えた後には、exe
ファイルを作成して最終段階の確認テストをすることが必要です。
[exe ファイル (実行可能プログラムファイル) に関する操作]
exe ファイル (実行可能プログラムファイル)
を作成するには、exe ファイルを作成しようとするプロジェクトがカレントプロジェクトになっていることを先ず確認してください。こうなっていないときには、そのプロジェクトを開いてカレントプロジェクトにください。なお、作成済のプロジェクトを開く操作については、「3.1.2.2 作成済のプロジェクトファイルに関する操作」
を参照してください。
そして、メインウィンドウのファイル(F) というメニュータイトルを開いて、その中の … の作成(K)... というメニュー項目をクリックしてください。
この指示を与えると、以下に示す実行可能ファイルの作成というダイアログボックスが登場します。
ここで、ファイルの格納先のフォルダ (ディレクトリ) とファイル名とを指定してから OK というボタンをクリックしてください。こうすると exe ファイルを作成することができます。
これ以前にこの exe ファイルを作成していれば、そのパス情報、即ちフォルダ
(ディレクトリ) 名とファイル名がダイアログボックスの中に残っています。ですから、同じ名前のファイルに上書き保存する場合には、何も設定せずにそのまま
OK というボタンをクリックすればよいようになっています。
ところで、OK というボタンをクリックする前に、実行可能ファイルの作成というダイアログボックスの中のオプション(O)...
というボタンをクリックすると、以下に示すプロジェクトプロパティというダイアログボックスが登場して種々のオプションを設定することができます。
例えば、タイトルの指定をすることができます。即ち、タイトル(T) 欄は、このアプリケーションプログラムが MsgBox 関数などで表示するダイアログボックスのタイトルの部分に記載される文字列のデフォルト値 (規定値) を指定するものです。
また、[スタート]メニューやプログラムマネージャ画面の中に表示されるアイコンの選択をすることができます。
--- 各フォームは、その左上端に表示されるアイコンをもっています。
このアイコンは、フォームが最小化されたときにタスクバーの中のボタンの左端に表示されるアイコン
(Windows NT 3.51 の場合にはアイコン化されたときに表示されるアイコン)
でもあります。なお、このアイコン (各フォームのアイコン) は、プロパティウィンドウによって
Icon
というプロパティを設定することで指定できます。---
複数のフォームから構成されるプロジェクトの場合、どのフォームのアイコンをプロジェクト代表にするのかが問題になります。即ち、[スタート]メニューやプログラムマネージャ画面の中に表示されるプロジェクト代表アイコンを決めなければなりません。この決定は、アイコン(O)
という欄で、フォームの一つを指名することによって行います。こうすると、指名されたフォームのアイコンがプロジェクト代表になります。
以上は、実行可能ファイルの作成の際に種々のオプションを設定する操作方法でしたが、それ以前にこれらのオプションを設定しておくこともできます。
あらかじめ実行可能ファイルの種々のオプションを設定しておくには、メインウィンドウのプロジェクト(P) というメニュータイトルを開いて、その中の … のプロパティ(E)... というメニュー項目をクリックしてください。
この指示を与えると「3.1.2.3 プロジェクトファイルの内容に関する操作」の中の
[スタートアップフォームの確認と設定・変更]
に示したプロジェクトプロパティという
(前述したものと同名の) ダイアログボックス (以下) が登場します。
このダイアログボックスには、4つタブ全般、実行可能ファイルの作成、コンパイル、コンポーネントがあります。前述した同名のダイアログボックスには、2つタブ実行可能ファイルの作成、コンパイルしかない点が異なりますが、この2つの共通のタブに関する操作は同じです。
このダイアログボックスの実行可能ファイルの作成というタブを開くと、タイトルの指定やプロジェクト代表アイコンの選択をすることができます。
どちらのプロジェクトプロパティというダイアログボックスにおいても、コンパイルというタブを開くと、コンパイルオプションの指定をすることができます。
即ち、Visual Basic 5.0 からサポートされたネーティブコードコンパイルを採用するのか、従来と同様にインタープリタ実行させるための
P-Code コンパイル
(Pseudo Code; 擬似コード) を採用するのかを選択できます。
コンパイルオプションとして ネーティブコードコンパイルを選択した場合には、最適化オプション
(実行速度を重視するのか、または exe サイズを小さくすることを重視するのかなど)
を指定できます。そして、CPU を使い続けるようなプログラムについては、実行速度を向上させる働きをします。しかし、ファイルやデータベースのアクセスが多いプログラムについては、ほとんど実行速度の向上は期待できません。
コンパイルオプションとして P-Code
コンパイルの指定をすると、従来と同様のコンパイルがなされます。この指定の場合、Visual
Basic 5.0 では exe サイズを小さくする工夫がなされていて、ほとんどのプログラムにおいて
Visual Basic 4.0 よりも小さな exe サイズになることが確認されています。例えばこれは、リモートメンテナンスを行う際のネットワークの負荷を軽減するというような効果があります。
--- ところで、数多くのプロジェクトの中に入っている共通ライブラリモジュールを変更した場合には、その全てのプロジェクトに対して exe ファイルの再作成が必要になります。これを手操作で一つ一つ行うのは、生産的とはいえません。こんなときには、MANDALAバッチを活用してください。
MANDALAバッチは、Visual
Basic による実行可能ファイルの作成の処理を一つ一つ手操作で指示しなくてもよいようにします。更に、MANDALA
を用いた開発においては、機械生成の処理を一つ一つ手操作で指示しなくてもよいようにします。---