このオブジェクトは、 「ファイルを開く」「名前をつけて保存」「フォルダの参照」などのダイアログを表示するためのオブジェクトです。
次の種類のものがあります。
VBScriptの場合
Dim Instance
Set Instance = WScript.CreateObject( "SeraphyScriptTools.CommDialog")
"SeraphyScriptTools.CommDialog"というProgIDです。
Instanceオブジェクトには、すでに、このオブジェクトが生成済みでメインウィンドウに関連づけられています。
通常はInstanceオブジェクトから利用すると便利です。
OpenFileDialogメソッドは「ファイルを開く」ダイアログを表示します。
選択されたファイル名が返されます。
キャンセルした場合はヌルが返ります。
パラメーターは、いずれも省略可能です。
PathNameは初期状態で表示されるファイル名です。
Filterはフィルタリングするもので、つぎのような書式をもちます。
表示名 | ワイルドカード | 表示名 | ワイルドカード …
フィルタリング文字はダイアロクボックス上に表示される「表示名」と、実際にファイルをフィルタリングするワイルドカードによるフィルタを「 | 」で区切ります。
例) "テキストファイル(*.TXT)|*.TXT|すべてのファイル|*.*"
MultiOpenFileDialogメソッドは「ファイルを開く」ダイアログを表示します。
複数のファイルを選択することができます。
戻り値はVariant配列が返されます。
キャンセルした場合はヌルが返されます。
受けられるファイル名の合計長は8KByte程度なので、あまり沢山のファイルは選択できません。
それ以外はOpenFileDialogと同じです。
True(真)で、存在しないファイルを指定した場合、「ファイルは存在しません。作成しますか?」という問い合わせが表示されるようになります。
False(偽)は存在しないファイルを指定することはできません。(標準の動作)
明示的にキャプションを指定することができます。
これを指定しないとディフォルトの「ファイルを開く」というタイトルで表示されます。
True(真)で、「読み取り専用で開く」というチェックボックスが表示されるようになります。
False(偽)はチェックボックスは表示されません。(標準の動作)
OpenFileDialogを実行するまえに、この値をセットすることができます。
ダイアログを表示した時点での「読み取り専用で開く」
の状態を指定することができます。
その後、ユーザーがチェックボックスを変更した結果が、このプロハティに戻されます。
True(真)で、ショートカットを指定したときに、ショートカットオブジェクトそのものを返します。
False(偽)はショートカットのリンク先を返します。(標準の動作)
任意のディレクトリをディフォルトのディレクトリにすることができます。
省略(空)するとOSに依存します。
ただし、パスの指定のフォルダがあれば、それが優先されます。
SaveFileDialogと共有です。
「名前をつけて保存」ダイアログを表示します。
指定したファイル名が戻ります。
キャンセルした場合はヌルが返ります。
パラメーターの指定はOpenFileDialogと同様です。
明示的にキャプションを指定することができます。
これを指定しないとディフォルトの「名前をつけて保存」というタイトルで表示されます。
任意のディレクトリをディフォルトのディレクトリにすることができます。
省略(空)するとOSに依存します。
ただし、パスの指定のフォルダがあれば、それが優先されます。
OpenFileDialogと共有です。
「フォルダの参照」ダイアログを表示します。
選択されたフォルダ名を返します。
キャンセルした場合はヌルが返ります。
Dirは初期選択のディレクトリで、省略すると「マイコンピュータ」となります。
メッセージを省略すると、BrowseForFolderCaptionプロパティの内容になります。
「フォルダの選択」ダイアログのディフォルトのメッセージを指定します。
BrowseForFolderメソッドで指定したメッセージが優先されます。
VBScriptのMsgBoxなどとの違いは、メインウィンドウを指定することにより親子関係ができる、という点にあります。
したがって、ウィンドウを表示している中にメッセージボックスを表示する必要があれば、こちらを使うほうがよいでしょう。
メッセージボックスを表示します。
VBScriptなどではMsgBoxという関数がありますが、このメッセージボックスは親ウィンドウをもつことができます。
InstanceオブジェクトのDialogオブジェクトからMessageBoxを使う場合、MainFrameオブジェクトが親ウィンドウとして使われます。
typにはウィンドウのタイプを示します。
「逆」の数値を指定すると、2番目のボタンがディフォルト・ボタンになります。
正 | 逆 | 選択項目 |
0 | 10 | OK |
1 | 11 | OK / CANCEL |
2 | 12 | YES / NO |
3 | 13 | YES / NO / CANCEL |
4 | 14 | RETRY / CANCEL |
5 | 15 | ABORT / RETRY / IGNORE |
iconには、アイコンの表示する種類を指定します。
0 | アイコンなし |
1 | エラー |
2 | 警告 |
3 | 情報 |
4 | 問い合わせ |
ユーザーが選択したボタンの結果がメソッドの戻り値となります。
1 | OK / YES / 再試行(RETRY) |
0 | NO / 無視(IGNORE) |
-1 | キャンセル / 中止(ABORT) |
メッセージボックスのタイトルを明示することができます。
省略するとメインウィンドウのウィンドウキャプションと同じタイトルになります。
カラーを作成したりできます。
メインウィンドウを指定します。
Objには、OverlappedWindowオブジェクトを指定します。
メインウィンドウを指定した場合、メッセージボックスのタイトルを取得する場合には必要なときに随時、最新のキャプションが取り込まれます。
また、メインウィンドウと親子関係がつくられます。
メインウィンドウに属する形でメッセージボックスやダイアログが表示されます。
InstanceオブジェクトのDialogオブジェクトプロパティを使う場合には、MainFrameオブジェクトがあらかじめメインウィンドウとして設定済みです。