Excelマクロ(VBA)で別のファイルを開く方法
※冊子を開いて中を見ている by Panasonic GH5+12-60m
「マクロで別のファイル開けないかな」
「別のファイルを操作できるとすごく楽になる」
Excelのマクロ(VBA)を使っていると別のファイルを開いたり、編集できるとすごく楽になる場面があると思います。
もちろん、ファイルを開く・編集も可能です。
今回は、マクロでファイルを開く・編集する方法をご紹介します。
マクロでファイル操作をできると、マクロのスキルレベルがあがりますので、最後まで見ていってください。
Excelマクロ(VBA):ファイルを開く
1Sub openExcelFile()
2 Dim wb As Workbook
3 Dim filePath As String
4
5 ' ファイルを指定
6 filePath = "/Users/nekoru/Library/CloudStorage/Dropbox/0 Inbox/test.xlsx"
7
8 ' ファイルを開く
9 Set wb = Workbooks.Open(filePath)
10End Sub
ファイルを指定
1' ファイルを指定
2filePath = "/Users/nekoru/Library/CloudStorage/Dropbox/0 Inbox/test.xlsx"
5、6行目で開くファイルを指定します。
上記はMacの場合です。
Windwsの場合はこちら
filePath = “C:¥Path/to/Your/File.xlsx”
ファイルのパスがわからなかったら、下記の手順で探してみてください。
- 開くファイルを右クリック
- プロパティ
ファイルを開く
1' ファイルを開く
2Set wb = Workbooks.Open(filePath)
指定したファイルを引数に、Workbooks.Openでファイルを開きます。
今回は、Excelファイルを開きましたが、別の書き方をすればテキストファイル、CSVファイルなど、別の種類のファイルを開くことも可能です。
Excelマクロ(VBA):ファイルを編集する
1' ファイルを開く
2Set wb = Workbooks.Open(filePath)
3
4' 編集したいシートを指定
5Set ws = wb.Sheets("Sheet1") ' 編集したいシート名を適宜変更
6
7' 編集処理
8ws.Celss(1, 1).Value = "Hello, World!" ' 編集したいセルや範囲を適宜指定
次は、開いたファイルの編集です。
編集したいシートを指定する
別のExcelファイルを編集するので、ファイル名・シート名を指定する必要があります。
指定しなければマクロは何を編集していいかわかりません。
1' 編集したいシートを指定
2Set ws = wb.Sheets("Sheet1") ' 編集したいシート名を適宜変更
wbでファイルを指定しており、wb.Sheetsでさらにファイルの中のSheetを指定しています。
このように指定することもできます。
ファイルを編集する
ファイル・シートの指定ができたら、編集ができます。
1' 編集処理
2ws.Cells(1, 1) = "Hello, World!" ' 編集したいセルや範囲を適宜指定
編集内容をここに書いてください。
Excelマクロ(VBA):ファイルを保存する
1Sub OpenExcelFile()
2 Dim wb As Workbook
3 Dim filePath As String
4
5 ' ファイルのパスを指定
6 filePath = "/Users/nekoru/Library/CloudStorage/Dropbox/0 Inbox/test.xlsx"
7
8 ' ファイルを開く
9 Set wb = Workbooks.Open(filePath)
10
11 ' 編集したいシートを指定
12 Set ws = wb.Sheets("Sheet1") ' 編集したいシート名を適宜変更
13
14 ' 編集処理
15 ws.Cells(1, 1) = "Hello, World!" ' 編集したいセルや範囲を適宜指定
16
17 ' ファイルを閉じる
18 wb.Close SaveChanges:=True
19End Sub
ファイルの編集が終わったら、ファイルを保存しましょう。
18行目のwb.Closeでファイルを閉じます
SaveChanges:=Trueで上書き保存
Falseにすると、保存しないで閉じます。
ファイルを操作できるようになると、マクロでできる幅が広がるのでぜひ使ってみてください。
Excel VBAを勉強するなら「できる大辞典」がおすすめです。
辞書なのでピンポイントで学ぶことができます。大学時代、2016年版を購入して勉強していましたが相当使いました。
ネットだけでも勉強はできますが、本を読みながらVBAを勉強したい方は購入してください。