こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今日も業務効率化のアイデアを発信していきますっ!
今回はエクセルVBAからエクセルファイルを開く方法を紹介していきます。エクセルVBAを使ってアプリケーションを作っていくときに基本となる技ですので覚えておく便利ですよ。
業務効率化ツールを例に挙げても、まずはエクセルファイルを読み込ませて、そのデータを直接加工したり、参照したりする場合が圧倒的に多いです。しっかりと習得しておくことで開発のバリエーションが広がりますよっ。
目次
ダイアログボックスからファイルを開くプログラムを作る
標準モジュールに新しいプロシージャを作成する
ファイルメニューの新規作成からに「ファイルを開く.xls」を作成します。ワークシート上に「エクセルファイルを開く」ボタンを配置します。
コマンドボタンをダブルクリックするとシートモジュールが表示されるので、「CommandButton1_Click()」の箇所にOpenExcelFileと書きます。
標準モジュールにSubプロシージャ「OpenExcelFile」を作成します。作成したプロシージャに次の段落で説明するコードを貼り付けます。
サンプルコードを貼り付ける
さきほど作成したプロシージャ「OpenExcelFile」に下記のコードを貼り付けます。
1 2 3 4 5 6 7 8 9 10 |
Sub OpenExcelFile() Dim openFilePath As String openFilePath = Application.GetOpenFilename _ ("Microsoft Excel ファイル,*.xls*", , "エクセルファイルを選んで下さい") Workbooks.Open openFilePath End Sub |
プログラムコードの解説
それではプログラムコードの解説をしていきます。重要なポイントに絞って説明していきます。全体の流れは以下のようになります。
- ファイル選択ダイアログボックスを表示させる
- 選択したファイルのパスを取得する
- 選択したファイルを開く
GetOpenFilenameメソッドでファイルのフルパスを取得する
ApplicationオブジェクトのGetOpenFilenameメソッドを使うことでファイルのフルパスを取得できます。
今回のプログラムでは変数openFilePathにGetOpenFilenameメソッドで取得したファイルパスを入れています。
1 2 |
openFilePath = Application.GetOpenFilename _ ("Microsoft Excel ファイル,*.xls*", , "エクセルファイルを選んで下さい") |
それではGetOpenFilenameメソッドについてもう少し詳しく、実際の画面を見ながら説明していきますね。
ファイルの拡張子
「Microsoft Excel ファイル」はファイルの種類のところに表示させる文言なので何でもかまいません。わかりやすい名前をつければ良いでしょう。
「*.xls*」はダイアログボックスで表示させたいファイルの種類です。ここでは拡張子にxlsが含まれるファイルを全て表示させるようにしています。画像を見てもエクセルのファイルしか表示されてませんよね?
実際このフォルダにはテキストファイルや画像ファイルがあります。拡張子xlsでフィルターをかけているということですね。このことをフィルタリングともいいます。
フィルタリングできる拡張子は追加することもできます。その場合セミコロン;で区切ります。
という風にします。すると下の画像のようになります。拡張子がtxtのファイルも表示されるようになりましたね。セミコロンの前後に空白を入れるとうまく表示されないので注意してください。
既定の拡張子
既定の拡張子とはダイアログボックスを開いたときに、最初に表示させる拡張子のことです。
上記のように2つ以上の拡張子を指定した場合、セレクトボックスからファイルの拡張子を選択して絞り込めるようになります。下の図はエクセルファイルの拡張子が一番上に来ていますね。
これは既定の拡張子に1と入れているからです。2と入力するとテキストファイルの拡張子が一番上に表示されます。省略した場合は自動的に1が指定されます。
タイトル名
ダイアロボックス上に表示されるタイトル名を指定することができます。今回は「エクセルファイルを選んでください」としています。「エクセルファイルの選択」などとしてもよいですね。タイトル名は省略することができます。その場合、ダイアロボックス上には何も表示されません。
Openメソッドでエクセルブックを開く
エクセルブックを開くには次のようにしてWorkbooksオブジェクトのOpenメソッドを使います。
ファイルのパスはフルパスを指定するか、ファイル名をのみを指定します。ファイル名のみを指定した場合は、カレントフォルダ内のファイルを開きます。
プログラムコードの解説は以上です。
ダイアログボックスからファイルを開くプログラムの動作確認
それでは実際に出来上がったプログラムを動かしてみましょう。
ワークシートの「エクセルファイルを開く」ボタンを押します。
ダイアログボックスが表示されたら、開きたいファイルを選択し開くボタンをクリックします。
エクセルファイルが開きました。
まとめ
いかがでしたか?今回の内容をまとめます。
- GetOpenFilenameメソッドでファイルのフルパスを取得できる
- Openメソッドでエクセルブックを開くことができる
それではまた~。
次回は「エクセルVBAでダイアログボックスを使ってファイルを非表示で開く方法」を紹介します。
その使い方だと損してます!
会社員、個人事業主のかたへ。
無料で登録できるAmazonビジネスアカウントを知ってますか?
何と言っても便利なのが請求書払いによる後払いができるということ。
また、承認ルールを作成すれば、業務上必要な物だけに購入を制限することができます。
さらに多くの商品にビジネスアカウント価格が設定されており、個人アカウントより安く購入できます。
このように個人アカウントと比べてビジネスアカウントはお得な機能や特典がついています。
無料で登録できるので、会社員、個人事業主なら使ったほうが得なのは言うまでもありません。