ワークブック操作2 パス/名前取得,アクティベート,変数に格納

目次

ワークブック操作

今日も前回に引き続き、ワークブックの操作方法について勉強していくよ!

前回の記事はこちらになります。

今日使う実例はこちらになるからね!

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 パス/名前取得,アクティベート,変数に格納 まとめ

今日はワークブックの基本操作として、ワークブックの パス/名前取得,アクティベート,変数に格納といった処理について学びました。

実務でもワークブックが自動化対象であれば、多用することになりますので是非習得してください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

ものおと申します。

10年以上の大手メーカー勤務経験のあるエンジニアです。

これまでのものづくりの経験から小学生にも伝わるExcel VBAお役立ち記事を発信していきたいと思います。

よろしくお願いします。

コメント

コメントする

CAPTCHA


目次