VBスクリプトからエクセルを開きダイヤログを表示
メソッド
| 名前 | 説明 |
|---|---|
| Execute | Show メソッドが呼び出された後に、ユーザーのアクションを実行します。 |
| Show | [ファイル] ダイアログ ボックスを表示し、ユーザーが [アクション] ボタン (-1) を押したのか、または [キャンセル] ボタン (0) 押したのかを示す長整数型 (Long) の値を返します。 Show メソッドを呼び出すと、ユーザーがファイル ダイアログ ボックスを終了するまでコードが実行されません。 [開く] ダイアログ ボックスと [名前を付けて保存] ダイアログ ボックスの場合は、Show メソッドの直後に Execute メソッドを使用してユーザーのアクションを実行します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| AllowMultiSelect | ユーザーがファイルのダイアログ ボックスから複数のファイルを選択したいときは True にします。 値の取得と設定が可能です。 |
| Application | FileDialog object のコンテナーアプリケーションを表すApplication object(このプロパティをAutomation object と共に使用して、そのオブジェクトのコンテナーアプリケーションを返すことができます)。 読み取り専用。 |
| ButtonName | ファイルのダイアログボックスの動作設定ボタンに表示されるテキストを表す文字列を取得または設定します。 値の取得と設定が可能です。 |
| Creator | FileDialog object が作成されたアプリケーションを示す32ビット整数を取得します 読み取り専用。 |
| DialogType | FileDialog object が表示するように設定されているファイルダイアログボックスの種類を表すMsoFileDialogType定数。 読み取り専用。 |
| FilterIndex | ファイルダイアログボックスのデフォルトのファイルフィルタを示す長整数型の値を取得または設定します。
既定のフィルタは、ファイルダイアログボックスが最初に開かれたときに表示されるファイルの種類を決定します。 読み取りと書き込み。 |
| Filters | FileDialogFiltersコレクションを取得します。 読み取り専用。 |
| InitialFileName | ファイル ダイアログ ボックスに最初に表示されるパスまたはファイル名を表すストリング型の値を設定するか返します。 値の取得と設定が可能です。 |
| InitialView | ファイルとフォルダー内のファイルとフォルダーの最初の表示を表す MsoFileDialogView 定数を取得または設定します。 値の取得と設定が可能です。 |
| Item | 指定したオブジェクトに関連付けられたテキストを取得します。 値の取得のみ可能です。 |
| Parent | オブジェクトの 親 オブジェクトを取得します。 読み取り専用です。 |
| SelectedItems | FileDialogSelectedItems コレクションを取得します。 このコレクションには、FileDialog オブジェクトの Show メソッドによって表示されたファイルのダイアログ ボックスでユーザーが選択したファイルのパスの一覧が含まれます。 読み取り専用。 |
| Title | FileDialogオブジェクトを使用して表示されるファイルのダイアログボックスのタイトルを取得または設定します。 値の取得と設定が可能です。 |
MsoFileDialogType Enum
| 列挙型 | 値 | 説明 |
|---|---|---|
| msoFileDialogFilePicker | 3 | [参照] ダイアログ ボックス |
| msoFileDialogFolderPicker | 4 | [フォルダーの選択] ダイアログ ボックス |
| msoFileDialogOpen | 1 | [開く] ダイアログ ボックスです。 |
| msoFileDialogSaveAs | 2 | [名前を付けて保存] ダイアログ ボックス |
Option Explicit
Const msoFileDialogOpen = 1
Dim xlApp, MyPath,OpenFileName, Fso
'実行中のスクリプトのフォルダーのパスを取得します
Set Fso = CreateObject("Scripting.FileSystemObject")
MyPath = Fso.getParentFolderName(WScript.ScriptFullName)
Set Fso = Nothing
'エクセルのオブジェクトを取得します
Set xlApp = CreateObject("Excel.Application")
With xlApp
With .FileDialog(msoFileDialogOpen)
'ダイアログ ボックスに最初に表示されるパス
.InitialFileName = MyPath & "\"
'ダイアログ ボックスから
'複数のファイルを選択できるようにする場合、Trueにします
.AllowMultiSelect = False
'コレクションをクリアします
.Filters.Clear
'コレクションに加えます
.Filters.Add "テキストファイル" ,"*.csv"
.Filters.Add "すべてのファイル" ,"*.*"
'既定ファイル フィルターを設定します
'既定のフィルターは、ダイアログ ボックスを最初に開いたときに
'ファイルの種類が表示されます
.FilterIndex = 1
'ダイアログボックスのタイトルを設定します
.Title = "ファイルの選択"
'ダイアログボックスの動作設定ボタンに表示されるテキストを設定します
.ButtonName = "開く"
'ダイアログボックスを表示します
If .Show = True Then
'ダイアログ ボックスでユーザーが選択したファイルのパスの一覧から
'1番目を取得します
OpenFileName = .SelectedItems(1)
Else
OpenFileName = ""
End If
End With
.Quit
End With
Set xlApp = Nothing
If OpenFileName = "" Then
MsgBox "キャンセルされました"
End If