VBA 任意のエクセルファイルを開く方法

VBAを利用して、別のエクセルファイルを開く方法を紹介いたします。
WorkBookを開くにはOpenメソッドを利用していきます。
使用頻度が高いと思うのでしっかりと押さえておきましょう。

ワークブックを開く

ワークブックを開く方法を紹介します。

WorkBooks.Open(開きたいエクセルファイルのパス)

例を見てみましょう。

Dドライブに「D:\vba\a.xlsx」というエクセルファイルを準備しました。

「D:\vba\a.xlsx」をVBAのopenメソッドを利用して、開いてみましょう。

Private Sub cmdOpen_Click()
    Workbooks.Open("D:\vba\a.xlsx")
End Sub

結果

事前に作成していたEXCELファイル「D:\vba\a.xlsx」を開くことができました。

このように、WorkBooks.Openメソッドにファイルのパスを渡すことでエクセルファイルを開くことができます。

ダイアログからファイルを選択して開く

ダイアログからファイルを選択し、開く方法を紹介いたします。
ダイアログを利用することで、ユーザがファイルを選択できるようになるのでとても便利です。
ダイアログから選択するには、「Application.GetOpenFilename」を利用します。

ファイルパス = Application.GetOpenFilename("任意の文字列,*.拡張子")

実際に例を見てみましょう。

Private Sub cmdOpen_Click()

    'ダイアログからエクセルを開く
    Dim str_wbnm As String
    str_wbnm = Application.GetOpenFilename("Excel,*.xls?")

    If str_wbnm <> "False" Then
        Workbooks.Open (str_wbnm)
    End If

End Sub

解説
4行目:ファイルパスを格納する変数
5行目:ダイアログを開く。「任意の文字列:Excel」「拡張子:*.xls?」 拡張子がxls?なので、「xls」「xlsx」「xlsm」のファイルを対象としている。xls?の「?」は任意の1文字という意味です。
7行目:ファイルを選ばずにキャンセルした場合、FalseがGetOpenFilenameから返却される。
8行目:Falseじゃない場合、エクセルファイルを開く。

結果

ダイアログが表示されて、ファイルを選択することができました。
赤い枠で囲われている部分が、指定した「任意文字と拡張子」になっています。

まとめ

今回は、VBAでファイルを開く方法を紹介しました。

ファイルを開くには、WorkBooks.Openメソッドを利用しましょう。

また、ダイアログを表示してユーザにファイルを選択してもらう場合は、「Application.GetOpenFilename」で任意のファイルのパスを取得しましょう。

取得したファイルのパスをWorkBooks.Openメソッドで開きましょう。

 

EXCEL VBAの記事一覧

おすすめの記事