【Excel VBA】ブックのプロパティ取得・設定(BuiltinDocumentPropertiesプロパティ)

めい
こんにちは!りゅう(@ryupong_b)です。
今回は、「ブックのプロパティの取得方法と設定方法」について解説していきます。
はじめに

今回は、ブックのプロパティの取得方法について解説します。
ブックのプロパティとは、ブックの作成者や、最終更新者、作成日時などのことを指します。
以下の通り、Excelファイルのプロパティをイメージしていただけると良いかと思います。

この記事を読むメリット
  • ブックのプロパティの取得方法が分かります。
  • 使用についての注意点についても詳しく解説します。
  • ユーザ設定のドキュメントプロパティの取り扱いについても解説します。

使用例

サンプルコードを交えて解説いたします。

サンプルコード

サンプルコード
Public Sub setBuiltinDocumentProperties()

    ' タイトルの設定
    ThisWorkbook.BuiltinDocumentProperties(1) = "vba-hack"

    ' 件名の設定
    ThisWorkbook.BuiltinDocumentProperties("Subject") = "業務効率化とプログラミング学習を同時に実践"

    ' タイトルをSheet1のB1セルに出力
    ThisWorkbook.Worksheets("Sheet1").Range("B1").Value = ThisWorkbook.BuiltinDocumentProperties("title")

    ' 変更日時をSheet1のB2セルに出力
    ThisWorkbook.Worksheets("Sheet1").Range("B2").Value = ThisWorkbook.BuiltinDocumentProperties(2)

End Sub

上記サンプルを実行すると、実行したブックの設定値が変更されてしまうので取り扱いにはご注意ください。

実行結果

実行前

実行後


りゅう
2枚目の画像のプロパティ値については、Excel保存後に反映されるので注意が必要です。

詳細解説

構文や注意点などについて解説します。

構文

構文

WorkbookObject.BuiltinDocumentProperties(index/title)

めい
indexかtitleのどちらかを指定してください。
具体的にどういった値を指定するかを次項にて解説します。

引数

引数には、以下表を参照しindexかtitleを指定してください。
index指定の場合「インデックス番号」を指定します。
title指定の場合「タイトル」の文字列を指定します。

インデックス番号 タイトル 詳細
1 Title タイトル
2 Subject 件名
3 Author 作成者
4 Keywords キーワード
5 Comments コメント
6 Template テンプレート
7 Last author 最後の作成者
8 Revision number 改訂番号
9 Application name アプリケーション名
10 Last print date 最終印刷日時
11 Creation date 作成日
12 Last save time 最終保存時間
13 Total editing time 合計編集時間
14 Number of pages ページ数
15 Number of words 単語数
16 Number of characters 文字数
17 Security セキュリティ
18 Category カテゴリ
19 Format フォーマット
20 Manager マネージャー
21 Company 会社
22 Number of bytes バイト数
23 Number of lines 行数
24 Number of paragraphs 段落数
25 Number of slides スライド数
26 Number of notes ノート数
27 Number of hidden Slides 非表示のスライド数
28 Number of multimedia clips マルチメディアのクリップ数
29 Hyperlink base ハイパーリンクベース
30 Number of characters (with spaces) 文字数(スペース含む)
31 Content type コンテンツタイプ
32 Content status コンテンツステータス
33 Language 言語
34 Document version ドキュメントバージョン

使用における注意点

一部値を取得する場合に、エラーが発生する場合があります。
例えば、印刷をしたことがないブックに対して、「最終印刷日時」を取得しようとするとエラーとなります。
従って、プロパティを取得する前に、エラーを無視するコードを記載しましょう。

サンプルコード(応用編)

本項では、汎用的なサンプルコードを掲載していきます。

ブックの全プロパティを出力

サンプルコード
Public Sub writeAllBuiltinDocumentProperties()
    Dim var As Variant  ' DocumentPropertyオブジェクト
    Dim i As Integer    ' ループカウンタ

    ' エラー無視設定
    On Error Resume Next

    i = 1
    For Each var In ThisWorkbook.BuiltinDocumentProperties

        ' A列にタイトルを出力
        ThisWorkbook.Worksheets("Sheet1").Cells(i, 1).Value = var.Name

        ' B列にプロパティ値を出力
        ThisWorkbook.Worksheets("Sheet1").Cells(i, 2).Value = var.Value

        ' ループカウンタをインクリメント
        i = i + 1

        Debug.Print var.Name
    Next

    ' エラー無視設定の解除
    On Error Resume Next

End Sub
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA