Workbook について
Workbooksオブジェクトを形成するWorkbookオブジェクトについて記載していきます
Workbooksオブジェクトではファイルのオープン、全てのファイルを閉じることができました
Workbookオブジェクトでは、ファイルの保存、コピー、削除、クローズなどができるのです
■Workbookオブジェクト
・構文
構文は以下の通り、Workbooksオブジェクトのコレクションメンバーです
Excel.Workbooks(Index)
Workbookオブジェクトにはイベントが定義されていますが、これは追々ということで・・
メソッドやプロパティもかなりの量なので、重要そうなものだけを掲載していきます
Index … 1から始まり[Workbooks.Count]までの数字が指定できます
・メソッド
オブジェクトのメソッドは以下の通りです
- Activate … アクティブにする
- Breaklink … リンクを削除
- ChangeLink … リンクを変更
- Close … ファイルを閉じる
- DeleteNumberFormat … ユーザー定義の表示形式を削除
- EnableConnections … データ接続を有効化
- ExportAsFixedFormat … PDF または XPS 形式で保存
- LinkInfo … リンク情報を取得
- LinkSources … 全てのリンクを配列で取得
- OpenLinks … リンクの参照元文書を開く
- RemoveDocumentInformation … ファイル情報の削除
- Save … ファイルを保存
- SaveAs … ファイルを別名で保存
- SaveCopyAs … ファイルのコピーを保存
- UpdateFromFile … ファイルを更新
- UpdateLink … リンクを更新
- etc…
サーバーファイルや校閲、共有、保護、印刷、XMLについてのメソッドは除外しました
できれば、リンク関連も除外しときたかったんですが、載せるだけで説明はしませんw
・プロパティ
オブジェクトのプロパティは以下の通りです
- ActiveChart … アクティブなグラフ
- ActiveSheet … アクティブなシート
- ActiveSlicer … アクティブなスライサー
- Application … オブジェクトを作成したApplicationオブジェクト
- AutoSaveOn … 自動保存
- ChartDataPointTrack … 全グラフで実際のデータ要素を追跡
- Charts … 全グラフシートのコレクション
- CodeName … オブジェクトのコード名
- Colors … パレットの色
- Connections … データソース間の接続更新
- Container … オブジェクトのコンテナー
- DefaultPivotTableStyle … ピボットテーブルの既定のスタイル
- DefaultSlicerStyle … スライサーの既定のスタイル
- DefaultTableStyle … 既定の表のスタイル
- DisplayDrawingObjects … 図形の表示方法
- DisplayInkComments … 注釈をブックに表示するかどうか
- FileFormat … ファイル形式または種類
- ForceFullCalculation … 強制的な計算モードかどうか
- FullName … パスを含めたオブジェクトの名前
- IconSets … セルアイコンでデータにフィルターを適用する
- InactiveListBorderVisible … 非アクティブなリストの罫線を表示するかどうか
- Name … オブジェクトの名前
- Names … 名前定義のコレクション
- Parent … 親オブジェクト
- Path … 完全なパス
- PivotTables … ピボットテーブルのコレクション
- Queries … GetとTransformのクエリ
- ReadOnly … 読み取り専用かどうか
- ReadOnlyRecommended … 読み取り専用を推奨する設定かどうか
- RemoveDocumentInformation … 個人情報を削除
- SaveLinkValues … 外部リンクの値を保存
- Sheets … シートのコレクション
- ShowPivotTableFieldList … ピボットテーブルフィールドリストを表示できるかどうか
- Styles … スタイルのコレクション
- TableStyles … 表スタイルのコレクション
- Theme … テーマ
- UpdateLinks … リンク更新の設定
- UpdateRemoteReferences … リモート参照の更新設定
- VBProject … Visual Basic プロジェクト
- WebOptions … web ページとしての属性のコレクション
- Windows … ウィンドウのコレクション
- Worksheets … Worksheetのコレクション
- etc…
サーバーファイルや校閲、共有、保護、変換、回復、互換、ドキュメント情報、XMLについてのメソッドは除外しました
リンク関連は載せるだけです
■例
・簡単なサンプル
Sub Sample() Dim wb As Workbook Dim ws As Worksheet ' Workbookを取得する Set wb = Me.Application.ActiveWorkbook ' 各種プロパティを表示 Debug.Print wb.CodeName ' 「ThisWorkbook」 Debug.Print wb.FileFormat ' 「52」? Debug.Print wb.FullName ' 「C:\Book2.xlsm」 これはフルパス Debug.Print wb.Name ' 「Book2.xlsm」 これはファイル名のみ Debug.Print wb.Path ' 「C:\」 これはフォルダ名のみ Debug.Print wb.ReadOnly ' 「False」 Debug.Print wb.Sheets.Count ' 「1」 For Each ws In wb.Sheets Debug.Print ws.Name ' 「Sheet1」 Next Debug.Print wb.Styles.Count ' 「47」 Debug.Print wb.TableStyles.Count ' 「170」 Debug.Print wb.Windows.Count ' 「1」 Debug.Print wb.Worksheets.Count ' 「1」 ' 保存する Call wb.Save ' 閉じる Call wb.Close Set wb = Nothing End Sub
・説明
ActiveWorkbookでWorkbookを取得して、よく使うであろうプロパティを表示しています
Saveメソッドで、単一ファイルの保存を行って、Closeメソッドで単一ファイルを閉じています
・注意点
- WorkbooksオブジェクトのCloseメソッドは全てのファイルを閉じる
- WorkbookオブジェクトのCloseメソッドは単一ファイルを閉じる
- Excel.Application.ActiveWorkbookプロパティはマクロ登録したボタン押下直後に取得すること!
・その他
フルパスやファイル名、フォルダ名は取れるけど、拡張子や拡張子なしのファイル名(サンプルでいうところの「Book2」)だけとかは取れないんですねー
Workbooksオブジェクトに、OpenメソッドやCloseメソッドがあって、Workbookオブジェクトには、Saveメソッドがあるので、ファイル単位で行うことは、Workbookオブジェクトにあるかと思ったんですが、ファイルのコピーや削除はないんですね!
ではでは