第3章 Visual Basic 6.0 による開発の成果物
3.2 基本モジュール
--- フォームモジュールとコードモジュール ---
この項目 (3.2.2.4) の見出しの一覧
新しいプロシージャの組み入れ/プログラムコードのコピー/ショートカットキー/元に戻す操作とやり直し操作/フォームモジュールの中のコントロールのコピー
ここには、基本モジュールの内容に関する操作の詳細説明として、次の三つが書いてあります。
・・ プログラムコードのコピー
基本モジュール (フォームモジュールまたはコードモジュール) のプログラムコードは、一つの宣言セクションと幾つかのプロシージャから構成されます。
プロシージャには、以前の説明のとおり、各種のオブジェクトと結び付いたイベントプロシージャと特定のオブジェクトとの結び付きのないジェネラルプロシージャの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 と6.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プロパティ) については例外があります。一つのフォームの中では、コントロール配列の場合を除いて、コントロール名が重複することが許されていません。ですから、操作の結果この規定に反することになる場合には、自動的に適当なコントロール名に変更されます。
カットアンドペーストの指示も、コピーアンドペーストの指示も、ショートカットキーを用いると素早くできます。ショートカットキーについては、この前にある (c) ショートカットキー の説明を参照してください。
--- Visual Basic 5.0 と 6.0 の資産の間では、コントロールのカットアンドペーストやコピーアンドペーストを行うことができます。しかし、Visual Basic 4.0 と6.0 (または Visual Basic 4.0 と5.0) との間では、できません。---