ワークブック操作
今日も前回に引き続き、ワークブックの操作方法について勉強していくよ!
前回の記事はこちらになります。
今日使う実例はこちらになるからね!
Sub WORKBOOK_OP2()
'ワークブックを指定して開く
Workbooks.Open "C:\まるきち出欠表.xlsx"
MsgBox ActiveWorkbook.Path
MsgBox ActiveWorkbook.FullName
MsgBox ActiveWorkbook.Name
'アクティベートメソッドについて
ThisWorkbook.Activate
MsgBox ActiveWorkbook.Name
Workbooks("まるきち出欠表.xlsx").Activate
MsgBox ActiveWorkbook.Name
'ワークブックを閉じる 自動上書き保存
ActiveWorkbook.Close True
'ワークブックを変数に格納
Dim WB As Workbook
Set WB = Workbooks.Open("C:\まるきち出欠表.xlsx")
'実行中のマクロが記載されているブックをアクティベートする
ThisWorkbook.Activate
'変数WBに格納したワークブックのセルデータをコピー
WB.Sheets(1).Range("A1:B12").Copy ThisWorkbook.Sheets("Sheet1").Range("A1")
'まるきち出欠表.xlsxを閉じる
WB.Close True
ThisWorkbook.Sheets("Sheet1").Activate
End Sub
実例をまるごと使う場合、実行中のマクロが記載されているブックに空のワークシート”Sheet1″を用意してね!
前回の記事でダウンロードできる、まるきち出欠表.xlsxもCドライブの直下に置いてね!
ワークブックのパス/名前取得
ワークブックのパスのみを知りたい時は、Pathプロパティを使いましょう。
ActiveWorkbook.Path
実例6行目の場合、ActiveWorkbookは”C:\まるきち出欠表.xlsx”なので下記のようにMsgBoxで表示されます。
ワークブックのパスとワークブック名まで取得したい時は、FullNameプロパティを使いましょう。
ActiveWorkbook.FullName
実例8行目で、FullNameプロパティで取得した結果をMsgBoxで表示しています。
ワークブックのファイル名のみ取得したい場合、
ActiveWorkbook.Name
実例10行目で、Nameプロパティでファイル名のみ取得しMsgBoxで表示しています。
ワークブックのアクティベート
マクロの処理は基本的にアクティブになっているブックが対象になります。
よって、実務上でも、どのワークブックをアクティブとするか明示することが必要なケースが多々あります。
ThisWorkbook.Activate
実例13行目で「実行中のマクロが記載されているブック」をアクティブにしています。
実例を動作させると15行目のMsgBoxで「実行中のマクロが記載されているブック」のファイル名が表示されます。
下記イメージ図にある通り、アクティブにすると手前に表示されます。
実例17行目では、Workbooksの引数にファイル名を指定することで、指定したブックをアクティブにしています。
Workbooks(“まるきち出欠表.xlsx”).Activate
実例を動作させると19行目のMsgBoxで「まるきち出欠表.xlsx」のファイル名が表示されます。
ワークブックを変数に格納
VBAではワークブックを変数に格納することが可能です。ActiveWorkbookで開くとそのままアクティブになってしまいますが、変数に格納することでアクティブになることを回避することができます。
下記は、WBという変数をWorkbook型で宣言しています。
Dim WB As Workbook
次に先頭にSetステートメントをつけることで、Workbook型で宣言した変数WBに指定したWorkbookを格納しています。
Set WB = Workbooks.Open(“C:\まるきち出欠表.xlsx”)
実例35行目で、変数WBに格納したワークブックのセルデータを「実行中のマクロが記載されているブック」にコピーしています。
下記図のように「実行中のマクロが記載されているブック」のSheet1にまるきち出欠表.xlsxのセルデータがコピーされていることがわかります。
ワークブック操作2 パス/名前取得,アクティベート,変数に格納 まとめ
今日はワークブックの基本操作として、ワークブックの パス/名前取得,アクティベート,変数に格納といった処理について学びました。
実務でもワークブックが自動化対象であれば、多用することになりますので是非習得してください。
コメント