今回はVBAでワークブックの開く方法を解説します。新人研修でも一番初めにファイルの開く方法を教えます。普通に開くのはダブルクリックでいいのですが、VBAではファイルの正確なファイルの位置を知る必要があるなど少し大変です。順序良くVBAをマスターしていきましょう。
目次
VBAでファイルを開く方法、その3ステップ
わからないことをする時は、まず「自動記録」をしてみます。そこで得られたVBAのコードを元にいろいろな機能をつけていきましょう。
「自動記録状態にしてファイルを開く」だけで知りたいコードがすぐ入手できますよ。
1.ひとまず自動記録
マクロの自動記録の方法がわからない場合は、<自動記録の記事 [前記事のマクロの作り方にリンクを張ってください]>を見てください。
フォルダの中はこうなっています。
注意として、ダブルクリックで開くのではなく、「ファイル」→「開く」とクリックして「Excelの機能から」ファイルを開くようにしてください。
2.コードを見てみる
自動記録されたVBAのコードを見てみましょう。見方がわからない人は<マクロの作り方 [前記事のマクロの作り方にリンクを張ってください]>を見てください。
こんなコードになりました。
ChDirの行は関係ありません。その次のWorkbooks.Openが重要です。この行がファイルを開くVBAのコードです。
Filename:=となっていますね。ここでファイルの場所を指定しています。これを絶対パスと言います。
3.きちんと返り値をもらおう
Workbooks.Openでファイルを開くとWorkbook型のオブジェクトを返します。
Workbook型というのが何かというのは置いておいて、これで開いたファイルにアクセスできるようになります。
Sub Macro1()
Dim TargetWorkbook As Workbook
Set TargetWorkbook = Workbooks.Open(Filename:=”C:¥tmp¥TargetWorkBook.xlsx”)
TargetWorkbook.Worksheets(“Sheet1”).Range(“A1”).Value = “Hellow World!”
End Sub
TargetWorkbook.Worksheets(“Sheet1”).Range(“A1”).Value = “Hellow World!”
End Sub
変数はDimで宣言し、オブジェクトなのでSetを使います。Workbook型のオブジェクトをもらいつつファイルを開く場合は、引数をカッコで囲まないとエラーになるので注意してください。
これでTargetWorkBookのA1セルにHello World!と表示されたと思います。
やはりファイルを開くのはVBAでも無くてはならない操作です。今回はOpenメソッドでファイルを開く方法を説明しました。
ただファイルを開くだけでなく、Workbook型のオブジェクトを受け取り、その後の処理に活用することができることも大事ですのでしっかりマスターしましょう。