目次:
ビデオ: Application.OnTimeメソッドで別ファイルから実行【毎日エクセルVBA】 2024
VBAプロシージャがユーザーにファイル名を尋ねる必要がある場合、 はInputBox関数を使用してExcelユーザーに入力を許可します。ただし、ほとんどのユーザーはパス、バックスラッシュ、ファイル名、ファイル拡張子を覚えにくいので、入力ボックスは通常、このジョブに最適なツールではありません。言い換えれば、ファイル名を入力する際には、あまりにも簡単に止めることができます。 この問題を解決するには、アプリケーションオブジェクトのGetOpenFilenameメソッドを使用します。このメソッドは、コードが完全なパスを含む有効なファイル名を取得するようにします。 GetOpenFilenameメソッドは、使い慣れた[開く]ダイアログボックスを表示します([ファイル] - [開く] - [参照]を選択すると、Excelダイアログボックスが表示されません)。
<! - 1 - >
GetOpenFilenameメソッドは、指定されたファイルを実際に開きません。このメソッドは、ユーザーが選択したファイル名を文字列として返します。次に、ファイル名で必要なことを行うためのコードを書くことができます。GetOpenFilenameメソッドの構文
GetOpenFilenameメソッドの正式な構文は次のとおりです。
オブジェクト。 GetOpenFilename([fileFilter]、[filterIndex]、[title]、[buttonText]、[multiSelect])
GetOpenFilenameメソッドは、以下のオプション引数をとります。
機能 FileFilter | ダイアログボックス |
---|---|
(*.TXTなど)に表示されるファイルの種類を指定します。選択するユーザ | に対していくつかのフィルタを指定できます。
FilterIndex ダイアログボックスが表示するファイルフィルタを、デフォルトで |
で指定します。 | タイトル
ダイアログボックスのタイトル |
バーのキャプションを指定します。 | ButtonText
無視されます(Macintosh版のExcelでのみ使用されます)。 |
MultiSelect | Trueの場合、ユーザーは複数のファイルを選択できます。 |
<! - 9 - > | GetOpenFilenameの例 |
すべてのファイル(*。*)、*。 *
この文字列は、
すべてのファイル(*。*)
と
*のカンマで区切られた2つの部分で構成されています。 *
この文字列の最初の部分は、ファイルの種類ドロップダウンリストに表示されるテキストです。 2番目の部分は、ダイアログボックスが表示するファイルを決定します。例えば、 *。 *は
すべてのファイルを意味します。
次のコードのコードは、ユーザーにファイル名を尋ねるダイアログボックスを開きます。この手順では、5つのファイルフィルタを定義します。 Filter変数を設定するには、VBA行継続シーケンスを使用することに注意してください。そうすることで、この複雑な議論が単純化されます。 Sub GetImportFileName()文字列としてDim Finfo Dim FilterIndexは文字列として長さが薄くDim FileNameは変数として 'ファイルフィルタのリストを設定するFInfo = "テキストファイル(*.txt)、*。 txt、 "&_" Lotus Files(*。prn)、*。 prn、 "&_"カンマ区切りファイル(*.csv)、*。 csv、 "&_" ASCIIファイル(*。asc)、*。 asc、 "&_"すべてのファイル(*。*)、*。 * "'表示*。 *デフォルトでFilterIndex = 5 'ダイアログボックスのキャプションを設定するTitle = "インポートするファイルを選択する"'ファイル名を取得するFileName = Application。 GetOpenFilename(FInfo、_ FilterIndex、Title) 'FileName = Falseの場合、ダイアログボックスからの返信情報の処理Then MsgBox "ファイルが選択されていません。 "Else MsgBox"を選択した場合 "&FileName End If End Sub
ここで、この手順を実行するとExcelが表示されるダイアログボックスが表示されます。外観は、使用するWindowsのバージョンと設定した表示オプションによって異なる場合があります。
GetOpen Filenameメソッドは、カスタマイズ可能なダイアログボックスを表示し、選択したファイルのパスと名前を返します。ファイルは開かれません。
実際のアプリケーションでは、ファイル名でもっと意味のあることをします。たとえば、次のような文を使用して開くことができます。
ワークブック。 Open FileNameFileName変数はVariantデータ型として宣言されています。ユーザーが[キャンセル]をクリックすると、その変数にブール値(False)が含まれます。それ以外の場合、FileNameは文字列です。したがって、Variantデータ型を使用すると両方の可能性が処理されます。