Function Reference

FileOpenDialog

オープンファイルダイアログを開始します。

FileOpenDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )

 

パラメータ

title ダイアログGUIのタイトル
init dir GUIのファイルツリーの初期選択フォルダ
filter "All (*.*)"や"Text files (*.txt)"のような単独ファイル用フィルター、 または"All (*.*)|Text files (*.txt)"のような複数ファイル用フィルターグループ(注意を参照)。
options [オプション] ダイアログオプション : 1つ以上のオプションを指定したい場合は足し合わせてください。
  1 = (ファイル名が入力された場合) 存在しないファイルを許可しない
  2 = (バックススラッシュで終わるパスが入力された場合) 存在しないパスを許可しない
  4 = 複数選択可能
  8 = (ファイルが存在しなかった場合) ファイル作成プロンプトを表示する
default name [オプション] デフォルトで入力されているファイル名。デフォルトは空白("")。
hwnd [オプション] このダイアログの親として使用するウィンドウのハンドル。

 

返し値

成功 選択されたファイルのフルパスを返します。複数選択された場合は"Directory|file1|file2|..."のようになります。
失敗 @errorを設定します。
@error: 1 - ファイル選択に失敗
2 - 不正なファイルフィルター

 

注意

例のようにファイルフィルターはセミコロンで区切ってください。
また複数ファイル用フィルターグループでは"|"で区切ってください。

default nameを設定する場合はoptionsも設定しなければいけません。 もしオプションに何も設定したくない場合はオプションに0を設定してください。

特別なWindowsフォルダ(例えば"My Documents")も初期フォルダに設定できます。付録を参照してください。

関数の処理が成功した場合は@WorkingDirが変更されます。

 

関連

FileSaveDialog, FileSelectFolder, StringSplit

 


$message = "Hold down Ctrl or Shift to choose multiple files."

$var = FileOpenDialog($message, @WindowsDir & "\", "Images (*.jpg;*.bmp)", 1 + 4 )

If @error Then
    MsgBox(4096,"","No File(s) chosen")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096,"","You chose " & $var)
EndIf


; 複数ファイル用フィルターグループ
$message = "Hold down Ctrl or Shift to choose multiple files."

$var = FileOpenDialog($message, @WindowsDir & "", "Images (*.jpg;*.bmp)|Videos (*.avi;*.mpg)", 1 + 4 )

If @error Then
    MsgBox(4096,"","No File(s) chosen")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096,"","You chose " & $var)
EndIf