よろしくお願いします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 ’インデックス番号で指定してアクティブにする
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オブジェクトの集まりということですよね(^^;
そうですね!まだまだ細かい部分はたくさんあるんですが、基本的なところはこれだけ知っていれば大丈夫だと思います(^^)
では、この続きは次回まで楽しみに待っていてね(^^)/
まとめと感想など
・マクロ(VBA)を実行する際は必ずバックアップを取ってから行ってください!
・マクロ(VBA)は実行後にファイルを保存すると元に戻すことはできません!
・実行後にファイルを保存せず終了すれば、実行前に戻すことができます!
★★★ ランキング参加中! クリックしてね(^^)/ ★★★
今後の記事について
今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
当面は「初心者向けマクロVBA」の記事を継続して書いていきます
【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう現在検討中です
・その他雑記的に「小ネタなどいろいろ」・・・・・
・今後の記事にもご期待ください(^^)/
過去記事のサンプルファイルをダウンロードできます
今回の記事のサンプルはありません!コードをコピーしてご利用ください!
過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください
・WorkbooksコレクションはWorkbookオブジェクトの集合体
・ワークブックを制御する各種メソッドについて理解できました
・Workbookオブジェクトのプロパティの使い方がわかりました