LAST UPDATE 1998/07/18


『 その5-7 』



 ■ コードの書き換え


 今度はStartボタンをクリックしたところで、ファイルが選べるようにコードを追加する。 フォームの「Start」ボタンをダブルクリックして、Com_StartClickイベントを呼び出そう。そして次のようにコードを書き加えてほしい。

 ■ プログラム解説


On Error Resume_Next

     これは、エラーが発生したときはVBのエラー処理を通さずに次の行を実行せよという命令である。なぜこんなのが必要かというと、ファイルダイアログボックスを、ウインドウ右上のクローズボタンを使って閉じると内部的にはクローズではなくエラーが発生してしまうからである。
     これを無視するためにこのコードは必要なのであるが、その代わりにコードの6行目のif文でエラーの有無を調べて、正常でない処理が行われたときの処理をしている。

FileBox.filename = ""

     ファイルダイアログボックスが開いたときのデフォルトのファイル名を設定している。今回デフォルトは必要ないので、""(NULL:ヌルと呼ぶ)をセットしている。

FileBox.InitDir = "C:\"

     ダイアログボックスが開いたときの最初のフォルダを表す。このDirというのは「ディレクトリ」の事だが、フォルダと同じ意味である。本来MSDOSとかもっと古くCP/Mの頃にはディレクトリというのが一般的な呼び名であった。確か私の記憶によると、マックOSは最初からフォルダという言葉を使っていたような気がする。その後Windowsが95になって突如としてフォルダという呼び方が攻め込んできたようである。ということで、現在ウインドウズでは、両方の呼び名が混在していて、なんとなくわかりにくい。アプリのユーザーとして話すときは「フォルダ」。開発者として話すときは「ディレクトリ」というようになっているのが現状である。

FileBox.Filter = "X Files|*.X"

     ここではファイルダイアログ内にあるファイルの種類をセットしている。複数種類のファイルを選べるようにしたい場合は

FileBox.Filter = "X Files|*.X|3DA Files|*.3da|All Files|*.*""

    などと記述すれば良い。

FileBox.ShowOpen

     この命令が実行された時点でダイアログボックスは表示される。ShowOpenの変わりにShowSaveというのも使用可能で、Openにした場合は「ファイルを開く」というダイアログボックスになり、「キャンセル」ボタンと「開く」ボタンの組み合わせになり、Saveを使うと「開く」の変わりに「保存」というボタンの組み合わせになる。プログラムの処理場所はダイアログボックスが閉じるまではここにいて次の行は処理されない。

DoEvents

     これはなくても結構なのだが、ダイアログボックスが閉じたときに、即座にその下を書き直すための「おまじない」と考えて良い。本当のところは、ここでVBの処理をいったん中断して、他のアプリケーションが要求している処理を一通り行わせるという命令である。要するにこれは、サル講座その3(3-4)で紹介した「聖徳太子になりきれなかった男」にぐるっと一周他に手を上げている弟子がいないかどうか確認させる命令である。
     これによって、Xファイルを読みに行くという、時間のかかりそうな処理を始める前に他に必要な処理を先に済ませて、流れを少しでも美しくするのである。

ClearMesh(0)

     この命令で、前に読み込んだXファイルを消している。

FileBox.Filename

     あとは、この変数にファイル名がフルパスで格納されているので、必要に応じて取り出して使えば良いのである。




その5-1 | その5-2 | その5-3 | その5-4 | その5-5 | その5-6 | その5-7 | その5-8

『 サルのゲーム製作講座 』 目次 | その 1 | その 2 | その 3 | その 4 |
その 5 | その 6 | その 7 | その 8 | その 9 | その 10 | その 11


もどる

e-mail: sc_3da@magical2.egg.or.jp