エクセルVBAでダイアログボックスを表示させ特定のファイルを1つだけ開く方法

こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今日も業務効率化のアイデアを発信していきますっ!

今回はエクセルVBAからエクセルファイルを開く方法を紹介していきます。エクセルVBAを使ってアプリケーションを作っていくときに基本となる技ですので覚えておく便利ですよ。

業務効率化ツールを例に挙げても、まずはエクセルファイルを読み込ませて、そのデータを直接加工したり、参照したりする場合が圧倒的に多いです。しっかりと習得しておくことで開発のバリエーションが広がりますよっ。

レクタングル大336×280

ダイアログボックスからファイルを開くプログラムを作る

標準モジュールに新しいプロシージャを作成する

ファイルメニューの新規作成からに「ファイルを開く.xls」を作成します。ワークシート上に「エクセルファイルを開く」ボタンを配置します。

コマンドボタンをダブルクリックするとシートモジュールが表示されるので、「CommandButton1_Click()」の箇所にOpenExcelFileと書きます。

標準モジュールにSubプロシージャ「OpenExcelFile」を作成します。作成したプロシージャに次の段落で説明するコードを貼り付けます。

サンプルコードを貼り付ける

さきほど作成したプロシージャ「OpenExcelFile」に下記のコードを貼り付けます。

プログラムコードの解説

それではプログラムコードの解説をしていきます。重要なポイントに絞って説明していきます。全体の流れは以下のようになります。

  1. ファイル選択ダイアログボックスを表示させる
  2. 選択したファイルのパスを取得する
  3. 選択したファイルを開く

GetOpenFilenameメソッドでファイルのフルパスを取得する

ApplicationオブジェクトのGetOpenFilenameメソッドを使うことでファイルのフルパスを取得できます

GetOpenFilename (ファイルの拡張子, 既定の拡張子, タイトル名)

今回のプログラムでは変数openFilePathにGetOpenFilenameメソッドで取得したファイルパスを入れています。

それではGetOpenFilenameメソッドについてもう少し詳しく、実際の画面を見ながら説明していきますね。

ファイルの拡張子

「Microsoft Excel ファイル」はファイルの種類のところに表示させる文言なので何でもかまいません。わかりやすい名前をつければ良いでしょう。

「*.xls*」はダイアログボックスで表示させたいファイルの種類です。ここでは拡張子にxlsが含まれるファイルを全て表示させるようにしています。画像を見てもエクセルのファイルしか表示されてませんよね?

実際このフォルダにはテキストファイルや画像ファイルがあります。拡張子xlsでフィルターをかけているということですね。このことをフィルタリングともいいます。

フィルタリングできる拡張子は追加することもできます。その場合セミコロン;で区切ります。

*.xls*;*txt

という風にします。すると下の画像のようになります。拡張子がtxtのファイルも表示されるようになりましたね。セミコロンの前後に空白を入れるとうまく表示されないので注意してください。

既定の拡張子

既定の拡張子とはダイアログボックスを開いたときに、最初に表示させる拡張子のことです。

上記のように2つ以上の拡張子を指定した場合、セレクトボックスからファイルの拡張子を選択して絞り込めるようになります。下の図はエクセルファイルの拡張子が一番上に来ていますね。

これは既定の拡張子に1と入れているからです。2と入力するとテキストファイルの拡張子が一番上に表示されます。省略した場合は自動的に1が指定されます。

タイトル名

ダイアロボックス上に表示されるタイトル名を指定することができます。今回は「エクセルファイルを選んでください」としています。「エクセルファイルの選択」などとしてもよいですね。タイトル名は省略することができます。その場合、ダイアロボックス上には何も表示されません。

Openメソッドでエクセルブックを開く

エクセルブックを開くには次のようにしてWorkbooksオブジェクトのOpenメソッドを使います。

Workbooks.Open ファイルのパス

ファイルのパスはフルパスを指定するか、ファイル名をのみを指定します。ファイル名のみを指定した場合は、カレントフォルダ内のファイルを開きます。

プログラムコードの解説は以上です。

ダイアログボックスからファイルを開くプログラムの動作確認

それでは実際に出来上がったプログラムを動かしてみましょう。

ワークシートの「エクセルファイルを開く」ボタンを押します。

ダイアログボックスが表示されたら、開きたいファイルを選択し開くボタンをクリックします。

エクセルファイルが開きました。

まとめ

いかがでしたか?今回の内容をまとめます。

  • GetOpenFilenameメソッドでファイルのフルパスを取得できる
  • Openメソッドでエクセルブックを開くことができる

それではまた~。

次回は「エクセルVBAでダイアログボックスを使ってファイルを非表示で開く方法」を紹介します。

エクセルVBAでダイアログボックスを使ってファイルを非表示で開く方法
ダイアログボックスを表示させてエクセルファイルを非表示で開く方法を紹介します。プログラムからエクセルファイルを開きたいけど、画面に表示させないでシート上のデータだけを取得したいという場合に役に立つ技です。Visibleプロパティを使うことでファイルを非表示にすることができます
レクタングル大336×280
レクタングル大336×280

シェアする

  • このエントリーをはてなブックマークに追加

フォローする