GetFilename

概要: baGetFilenameはファイル選択ダイアログボックスを表示して、選択されたファイルのパスを返します。

シンタックス: Result = baGetFilename( Operation, StartDir, Filename, Filter, Flags, Instruction, NoFolders, X, Y )

パラメータ: #string, #string, #string, #string, #integer, #string, #integer, #integer, #integer
Operation 表示するダイアログのタイプ。"open" または "save" を指定します。
StartDir 最初に表示するディレクトリ。""を指定するとカレントディレクトリになります。
Filename 最初に表示するファイル名。
Filter 表示するファイルタイプ。""を指定するとすべてのファイルを表示します。
Flags ダイアログの挙動を変更します。
Instruction ユーザへの操作説明表示。
NoFolders trueを指定するとフォルダの選択が表示されなくなります。
X ダイアログの水平位置。
Y ダイアログの垂直位置。

戻り値:

#string
選択されたファイルのパスを返します。ユーザがキャンセルした場合は""を返します。

例: filename = baGetFilename( "save", "c:\temp", "newfile.txt", "Text files|*.txt", 0, "ファイルの保存", false, 100, 100 )

ノート: パラメータFilterは"|"で区切った一連のストリングで構成します。各ストリングは2つで1組になっており、一つ目はドロップダウンボックスに表示される記述、2つ目はファイルタイプを決めるワイルドカードの設定です。複数のワイルドカードを設定する場合はセミコロンで区切ってください。
"Text files|*.txt" -- テキストファイルのみ表示します
"Text files|*.txt"|All files|*.*" -- テキストファイルのみ、またはすべてのファイルを表示することができます
"Images|*.bmp;*.tif;*.jpg" -- 形式の違う画像ファイルを表示します

パラメータNoFoldersをtrueにするとフォルダは表示されなくなり、ユーザは最初に表示されるディレクトリから変更ができないことになります。

パラメータXYはスクリーン左上からのピクセル数です。Xに-1を指定すると、ダイアログを呼び出したDirectorウィンドウのセンターに位置づけます。Xに-2を指定すると、スクリーンのセンターになります。

パラメータFlagsはダイアログボックスの外観と挙動を変更することができます。下記の値を組み合わせて指定することができます。

1   OFN_READONLY
ダイアログボックス作成時に最初から読み取り専用チェックボックスにチェックマークを付けます。
2   OFN_OVERWRITEPROMPT
保存ダイアログでファイルが既に存在した場合にメッセージボックスを表示します。ユーザは上書き保存するかどうか承認する必要があります。
4 OFN_HIDEREADONLY
読み取り専用チェックボックスを非表示にします。
8 OFN_NOCHANGEDIR
ユーザがファイル選択時にカレントディレクトリを移動した後に元のディレクトリに戻します。
32 OFN_ADDEXTENSION
ユーザが拡張子をつけずにファイル名を入力した場合に、パラメータFilterにリストされた最初の拡張子をパスの最後に追加して返します。
256 OFN_RETURNASLIST
OFN_ALLOWMULTISELECTが指定してある場合にファイルのパスをリストで返します。
512 OFN_ALLOWMULTISELECT
ファイル名リストボックスで複数選択が可能な設定にします。
2048 OFN_PATHMUSTEXIST
ユーザが、存在するパスしか入力できない設定にします。このフラグが設定されている状態でユーザがファイル名入力フィールドに無効なパスを入力した場合、警告メッセージボックスを表示します。
4096 OFN_FILEMUSTEXIST
ユーザが、存在するファイル名しかファイル名入力フィールドに入力できない設定にします。このフラグが設定されている状態でにユーザが無効なファイル名を入力した場合、警告メッセージボックスを表示します。
8192 OFN_CREATEPROMPT
ユーザに対して現在存在しないファイルを作成するかどうか確認する設定にします。
32768 OFN_NOREADONLYRETURN
読み取り専用チェックボックスにチェックマークの付いていないファイルで、書き込み禁止ディレクトリ下にないものを返す設定にします。
131072 OFN_NONETWORKBUTTON
ネットワークボタンを非表示にして使用不可にします。
262144 OFN_NOLONGNAMES
ファイル名リストボックスでロングファイルネームが表示されない設定にします。OFN_EXPLORERが設定されている場合は無視されます。

以下は32bitでのみ使用可能です。
524288 OFN_EXPLORER
Windowsのエクスプローラと同様のユーザインターフェースを使って"開く"または"保存"ダイアログボックスを作成します。
1048576 OFN_NODEREFERENCELINKS
選択されたショートカット(.LNK)ファイルのパスとファイル名を返す設定にします。この値が指定されていない場合はショートカットが参照しているファイルのパスとファイル名を返します。
2097152  OFN_LONGNAMES
"開く"または"保存"ダイアログボックスでロングファイルネームを表示します。このフラグが設定されていない場合は8.3形式でファイル名を表示します。OFN_EXPLORERが設定されている場合は無視されます。
4194304  OFN_SHOWPLACESBAR
プレースバーを表示します。ME/2000/XPのみで利用可能です。一緒にOFN_EXPLORERが指定されていない場合は効果がありません。このフラグが指定された場合、パラメータの位置指定は無視されることに注意してください。Windowsはユーザが最後に移動した場所へダイアログを表示します。


これらを複数使用するには、該当する値をまとめて加算してください。例:OFN_CREATEPROMPT + OFN_HIDEREADONLY + OFN_NONETWORKBUTTON

OFN_ALLOWMULTISELECTが設定されていてOFN_RETURNASLISTが設定されていない状態でユーザが2つ以上のファイルを選択した場合、戻り値は改行で区切られた一連のストリングになります。最初の行は選択されたディレクトリ、残りの各行は選択されたファイル名です。Directorの"line...of"キーワードを使って各行を取得してください。
OFN_RETURNASLISTが設定されている場合、戻り値は各ファイル名を要素とするリストになります。各要素はパスまで含んだ完全なファイル名になります。

OFN_EXPLORERフラグはNoFoldersオプションと同時に使うことはできません。

上記定数が入力しやすいように、スクリプトを記述しておきます。

OFN_READONLY = 1
OFN_OVERWRITEPROMPT = 2
OFN_HIDEREADONLY = 4
OFN_NOCHANGEDIR = 8
OFN_ALLOWMULTISELECT = 512
OFN_PATHMUSTEXIST = 2048
OFN_FILEMUSTEXIST = 4096
OFN_CREATEPROMPT = 8192
OFN_NOREADONLYRETURN = 32768
OFN_NONETWORKBUTTON = 131072
OFN_NOLONGNAMES = 262144
-- 32 bit のみ
OFN_EXPLORER = 524288
OFN_NODEREFERENCELINKS = 1048576
OFN_LONGNAMES = 2097152
OFN_SHOWPLACESBAR = 4194304

関連項目: baGetFolder
baGetDisk