SIBA INU のメモ帳

(祝)東京オリンピック!

(祝)北京オリンピック!

VBスクリプトからエクセルを開きダイヤログを表示

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 [名前を付けて保存] ダイアログ ボックス

COPY

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