【VBA入門】ファイルを選択のためのGetOpenFilename関数とは

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAでファイル選択ダイアログを使ってファイルを選択する方法を知っていますか?データを取り込む処理を作る場合など、ファイルを指定して処理を動かしたいときにとても便利です!

そこで今回は、

  • GetOpenFilenameメソッドを使ってファイルを選択する方法

といった基礎的なことから、

  • GetOpenFilenameメソッドを使ったサンプルコード
  • データ取り込み機能を作るときに覚えておくと便利な知識とは

といった応用的な方法まで、徹底的に解説します!

GetOpenFilenameメソッドを使ってファイルを選択する方法

はじめに、GetOpenFilenameメソッドの基礎的な使い方について解説します。GetOpenFilenameメソッドを使うと、つぎのようなファイル選択ダイアログを使うことができます。

データ取り込み・ファイル削除など、ファイルを指定した処理を作りたいときに使います。GetOpenFilenameメソッドは、次のように使います。

プロパティごとの使い方一覧:

Noオプション意味
1FileFilterファイルの種類(拡張子)の指定ができる
2FilterIndexFileFilterで指定したフィルタ文字列の中で、最初に表示する種類を番号で指定できる
3Titleダイアログのタイトルを変更できる
4MultiSelectファイルの複数選択可に変更ができる(Trueが複数選択可)

FileFilterについては少しわかりづらいので、補足しますね。

FileFilterの使い方

FileFilterは、ファイルを開くときに選択する拡張子のリストを追加することができるオプションです。

「表示名 , *.拡張子」を1つのセットとして、指定します。.xlsxと.csvの拡張子のファイルを選択できるようにする場合は、次のような書き方になります。

サンプルコード:

実行結果:

「Filefilter:=”Excelブック,*.xlsx,CSVファイル,*.csv”」と指定することで、「.xlsx」「.csv」の拡張子を指定したファイルを開くリストを2つ表示しています。このように、ファイルのタイプを拡張子で指定するリストを設定することができます。

フォルダを開く初期位置を変更する方法

GetOpenFilenameメソッドはそのまま使うと、マクロを実行しているフォルダが初期値として開かれてしまいます。そのため、ファイル選択画面で最初に開くフォルダを変更したい場合は、ChDir関数でフォルダの位置を変更するのがおすすめです!

GetOpenFilenameメソッドでファイル選択ダイアログを開く前に、ChDir関数でフォルダパスを指定しておくことで、指定したフォルダでファイル選択ダイアログを開くことができます。ChDir関数の使い方はつぎのとおりです。

ChDir関数の使い方サンプル:

実行結果:

このように、簡単にフォルダの初期位置を変更することができます!

GetOpenFilenameメソッドを使ったサンプルコード

次に、サンプルコードをもとに、具体的な使い方を解説します。ファイル選択後に指定したファイルを削除するサンプルコードです。

サンプルコード:

実行結果:

このように、GetOpenFilenameメソッドを使って選択したファイルを使って、簡単に処理を作ることができます。ちなみに、サンプルで使ったKillステートメントでファイルを削除する方法、MsgBox関数を使ってメッセージを表示する方法については、以下記事で詳しく解説しています。

気になる方は、ぜひ見てみてくださいね!

【ExcelVBA入門】Killステートメントでファイルを削除する方法とは
更新日 : 2018年8月20日
【Excel VBA】MsgBoxでメッセージボックスを表示する方法
更新日 : 2019年4月25日

補足:データ取り込み機能を作るときに覚えておくと便利な知識とは

ファイルを指定して処理を作るときは、ファイルの削除以外にも、別のブックやCSVファイルからデータを取り込みたいときもありますよね。そのため、ファイル取り込み処理を作るための知識を合わせて覚えておくのがおすすめです!

ユーザーフォームQueryTablesメソッドを使えば簡単にデータインポートツールを作ることができます。

ユーザーフォームで作った画面サンプル:

画面を作るためのユーザーフォームの使い方、ファイルを高速にインポートするためのQueryTablesメソッドの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】ユーザーフォームの使い方(テキスト表示、カレンダー)
更新日 : 2019年4月22日
【ExcelVBA入門】QueryTablesメソッドで高速にファイルを読み込む方法
更新日 : 2019年5月23日

まとめ

今回は、ファイル選択ダイアログを使うためのGetOpenFilenameメソッドの使い方を解説しました。別のCSV、Excelなどのファイルからデータをインポートするケースはよくあります。

今回解説した方法はどれも簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説