Excel・VBA

【VBA】『GetOpenFilenameメソッド』 の使い方

更新日:

スポンサーリンク

『GetOpenFilenameメソッド』は

  • [ファイルを開く]ダイアログボックスでユーザーが指定したファイルを開く
  • [ファイルを開く]ダイアログボックスでユーザーが指定したファイルのファイル名とフルパスを得る

という用途でよく使われる関数です。
この関数について説明します。

構文

GetOpenFilenameメソッドの構文

GetOpenFilenameメソッドの構文は以下のようになります。

Object.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

引数は5つあります。

パラメータ

パラメータ 省略可能か? データ型 内容
Object × Applicationオブジェクト
FileFilter Variant型 ファイルの種類を指定する文字列(ファイルフィルタ文字列)を指定します。この引数を省略するとファイルの種類は「"すべてのファイル (*.*),*.*"」になります。
FilterIndex Variant型 引数「FileFilter」で指定した「ファイルフィルタ文字列,ワイルドカードのペア」において、何番目のペアを既定値とするかを指定します。この引数を省略するか、「ファイルフィルタ文字列,ワイルドカードのペア」のペア数より大きな値を指定すると、1番目の「ファイルフィルタ文字列,ワイルドカードのペア」が規定値となります。
Title Variant型 [ファイルを開く]ダイアログボックスのタイトルを指定します。この引数を省略すると、”ファイルを開く" になります。
ButtonText Variant型 Macintoshのみ指定できます。
MultiSelect Variant型 TrueかFalseを指定します。Trueを指定した場合、複数ファイルを選択できるようになります。Falseを指定した場合1つのファイルしか選択できません。この引数を省略すると、”False " になります。

戻り値

Variant型です。
[ファイルを開く]ダイアログボックスで指定したファイルのフルパスを返します。

使い方

GetOpenFilenameメソッドの構文の使い方1
と記載すると、[ファイルを開く]ダイアログボックスを開くことができます。
ただこれだけでは、[ファイルを開く]ダイアログボックスからファイルを選択しても何も起こりません。

etOpenFilenameメソッドの構文の使い方2
と記載することで、[ファイルを開く]ダイアログボックスで選択したファイルのフルパスを変数に格納することができます。

具体的なプログラム例を次に示します。

プログラム例

[ファイルを開く]ダイアログボックスでユーザーが指定したファイルを開く

のように記述すると[ファイルを開く]ダイアログボックスでユーザーが指定したファイルを開くことができます。具体的な使用方法は

アイキャッチ画像
【VBA】[ファイルを開く]ダイアログボックスを用いてファイルを開く方法

に詳しく記載しているので参考にしてください。

[ファイルを開く]ダイアログボックスでユーザーが指定したファイルのファイル名とフルパスを得る

のように記述すると、[ファイルを開く]ダイアログボックスでユーザーが指定したファイルのファイル名とフルパスを取得することができます。

よくあるミス

ファイルフィルタ文字列とワイルドカードのセットで「"(ダブルコーテーション)」で囲むこと!

ファイルフィルタ文字列とワイルドカードのセットで「ダブルコーテーション」で囲むこと

【正】FileFilter:= “ファイルフィルタ文字列 , ワイルドカード”
【誤】FileFilter:= “ファイルフィルタ文字列” , “ワイルドカード”

のように
引数「FileFilter」にはファイルフィルタ文字列とワイルドカードを記述します。この時、引数全体を「"(ダブルコーテーション)」で囲まないといけません。
例えば、

FileFilter:= “Excelファイル , *.xlsx”

のように記述します。

FileFilter:= “Excelファイル“ , “*.xlsx”

のようにファイルフィルタ文字列とワイルドカードを個別に「"(ダブルコーテーション)」で囲むとエラーとなります。

引数「FileFilter」のワイルドカードは拡張子しか指定できない

引数「FileFilter」のワイルドカードは拡張子しか指定できない

FileFilter :=“Excelファイル , *.xlsx”

のようにワイルドカードには拡張子しか指定できません。

FileFilter :=“Excelファイル , テスト*.xlsx”

のように「テスト」で始まる拡張子「.xlsx」などは指定することがきないのです。

スポンサーリンク
スポンサーリンク

Copyright© Electrical Information , 2019 All Rights Reserved Powered by AFFINGER5.