本ページには広告が含まれています。

Excel VBA ワークブックの操作について(初心者向け13)

Excel VBA ワークブックの操作について(初心者向け13)

よろしくお願いしますm(_ _)m

セル→シートの順番だったから今日はブックですか?

くるみこ
くるみこ

よくわかったね(^^)

そのとおり! 今日はブックの操作について勉強しましょう

前回のおさらいはこちらの記事です(^^)/ 下のカードをクリックすれば開きます

くるみこ
くるみこ

前回記事でわかったことは
・シートがアクティブか非アクティブの違いがわかりました
・ワークシートシートを制御する各種メソッドがわかりました
・Workseets と Sheets の違いがわかりました

【この記事でわかること
WorkbooksコレクションとWorkbook オブジェクトについて
・ワークブックを制御する各種メソッドやプロパティについて解説

スポンサーリンク

Workbooksコレクションとは

Workbooksコレクションは、Workbookオブジェクトの集合体のことです。現在開かれているすべての Workbookオブジェクトが含まれています

Workbooksコレクションを取得するには

Workbooksプロパティを利用してWorkbooksコレクションのWorkbookオブジェクトを取得します

Countプロパティ

・開いているブックの数を取得するには「Count」プロパティを使います

Workbooks.Count  ‘開いているブックの数を取得する

・MsgBox関数を使って動作確認してみましょう

Sub sample1()
    MsgBox "開いているブック数は" & Workbooks.Count & "です。"
End Sub

Nameプロパティ

・Nameプロパティを利用してExcelのブック名を取得することができます

Workbooks(インデックス番号).Name ‘指定インデックスのブック名を取得する

Sub sample2()
    MsgBox Workbooks(1).Name  'インデックス番号1のブック名を表示する
End Sub

Pathプロパティ

・PathプロパティでExcelブックのパスを取得することができます

Workbooks(インデックス番号).Path ‘指定インデックスブックのパスを取得する

Sub sample3()
    MsgBox Workbooks(1).Path  'インデックス番号1のブックのパスを表示します
End Sub

Workbooksコレクションのメソッド

Addメソッド

Addメソッドは新しいブックを作成するためのメソッドです

Workbooks.Add  ‘ワークブックを新規に作成する

NewWindowメソッド

・指定ブックを新しいWindowで開きます(指定ブックのクローンを作成します)

Workbooks(“ブック名”).NewWindow ’指定ブックを新しいWindowで開く

・ブックを二つ開いて比較する場合などに使われたりします

Activateメソッド

・ブックをアクティブにするメソッドです

Workbooks(“ブック名”).Activate  ‘ブック名を指定してアクティブにする
Workbooks(1).Activate  ’インデックス番号で指定してアクティブにする

Workbooksコレクションには、「Select」メソッドはありません!

Openメソッド

・ワークブックを開くメソッドです
・ファイルを指定してブックを開く

Workbooks.Open FileName:=”C:\Book1.xlsx”

・オプションを指定してブックを開く

‘読み取り専用で開く
Workbooks.Open FileName:=”C:\Book1.xlsx” , ReadOnly:=True
‘リンクの更新をしないで開く
Workbooks.Open Filename:=”C:\Book1.xlsx”, UpdateLinks:=0

Closeメソッド

・ワークブックを閉じるメソッドです

Workbooks(“Book1”).Close  ‘指定したブックを閉じる
Workbooks.Close  ‘開かれているすべてのブックを閉じる

・オプションを指定してブックを閉じる場合

‘変更を保存してブックを閉じる
Workbooks(“Book1”).Close SaveChanges:=True
Workbooks(“Book1”).Close True  ‘名前付き引数無しでもOK
‘保存しないでブックを閉じる
Workbooks(“Book1”).Close SaveChanges:=False
Workbooks(“Book1”).Close False  ‘名前付き引数無しでもOK

Save/SaveAs メソッド

・Saveメソッドは指定したブックを上書き保存します。引数はありません
・SaveAsメソッドは、Excelブックを別名で保存します

Workbooks(“ブック名”).Save  ‘指定ブックを上書き保存する
‘名前を指定してブックを保存する(Book1→Book2)
Workbooks(“Book1″).SaveAs Filename:=”Book2”
名前付き引数無しでもOK(同じ)です
Workbooks(“Book1”).SaveAs “C:\Book2”
‘フォーマットを指定して(CSV形式で)ブックを保存
Workbooks(“Book1″).SaveAs Filename:=”Book2”, FileFormat:=xlCSV

Workbookオブジェクトとは

Workbookオブジェクトは、Workbooksコレクションのコレクションのメンバーです。 Workbooksコレクションには、現在開かれているすべての Workbookオブジェクトが含まれていますから、その中のWorkbookオブジェクトを特定して使うことになります

ApplicationオブジェクトのThisWorkbookプロパティは、VBAのコードが実行されているブックを返します。 ほとんどの場合、これは作業中のブックと同じです。 ただし、VBAコードがアドインの一部である場合、ThisWorkbookプロパティはアドインブックを返しますので注意が必要です

ActiveWorkbookプロパティを利用してブックを閉じる

一番手前に表示されているブックを閉じるコードです

ActiveWorkbook.Close   ‘アクティブなブックを閉じます

・ActiveWorkbookプロパティを利用して一番手前に表示されているブックのオブジェクトを取得します。次にそのWorkbookオブジェクトのCloseメソッドでブックを閉じています

ThisWorkbookプロパティを利用してブックを閉じる

ThisWorkbookとは、現在実行中のVBAコードが記述されているブックのことです。すなわち、自ブックのことです

ThisWorkbook.Close   実行中のVBAコードが書かれたブックを閉じます

・ThisWorkbookプロパティを利用して現在実行中のVBAコードが記述されているブックのオブジェクトを取得します。次にそのWorkbookオブジェクトのCloseメソッドでブックを閉じています

・この場合注意しなければいけないのは、ThisWorkbookが単独で実行している場合です。ブックはCloseメソッドで閉じていますが、Excelはまだ閉じていない状況となっています。ブックのオブジェクトを閉じるだけで、Excelを閉じることはできないということがわかります。実際にこのコードを試していただければ確認できます(^^ゞ

まとめ(おわりに)

くるみこ
くるみこ

今回はここで終了です!
Workbooksコレクションの基本的なことは理解できましたか?
またWorkbookオブジェクトについても理解できましたか?

はい! なんとなくわかりました。WorkbooksコレクションはWorkbookオブジェクトの集まりということですよね(^^;

くるみこ
くるみこ

そうですね!まだまだ細かい部分はたくさんあるんですが、基本的なところはこれだけ知っていれば大丈夫だと思います(^^)
では、この続きは次回まで楽しみに待っていてね(^^)/

まとめと感想など

・WorkbooksコレクションはWorkbookオブジェクトの集合体
・ワークブックを制御する各種メソッドについて理解できました
・Workbookオブジェクトのプロパティの使い方がわかりました

マクロ(VBA)を実行する際は必ずバックアップを取ってから行ってください
・マクロ(VBA)は実行後にファイルを保存すると元に戻すことはできません!
・実行後にファイルを保存せず終了すれば、実行前に戻すことができます!

★★★ ランキング参加中! クリックしてね(^^)/ ★★★

今後の記事について

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
当面は「初心者向けマクロVBA」の記事を継続して書いていきます

【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう現在検討中です
・その他雑記的に「小ネタなどいろいろ」・・・・・
・今後の記事にもご期待ください(^^)/

スポンサーリンク
スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

今回の記事のサンプルはありません!コードをコピーしてご利用ください!
過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください