アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

Book のプロパティを取得する / 設定する

Book のプロパティを取得する / 設定する


  ブックのプロパティの取得には、 BuiltinDocumentProperties プロパティを
  使用します。
  
  取得できるプロパティは、作成者や会社名などです。
  
  最後に一覧表を載せてあります。
  
  各プロパティには、インデックス番号が割り振られていて、合計30種類あります。
  
  この中には、他の Office アプリケーションで使用しているプロパティもあるので、
  Excelですべて使用されているわけではありません。
  
  サンプル example29 を載せてあります。
  
Sub GetDocumentProperty()

    Dim i As Integer
    Dim Object_Book, Caption_String As String
    
    '開いているWookbookの中からプロパティを取得するWookbookの選択
    SelectInit_Book_or_Sheet = 0
    Caption_String = "プロパティを取得するWookbookの選択"
    Object_Book = Select_Book_or_Sheet(Caption_String)
    
    'キャンセルボタンが押された場合には終了します
    If SelIndex = -1 Then
        End
    End If
    
    
    '値が設定されていないプロパティを取得しようとすると
    'エラーになるので無視します。
    On Error Resume Next
        
    For i = 1 To 30
        
        Range("A" & Format(i)) = Workbooks(Object_Book). _
                                 BuiltinDocumentProperties(i).Name
                                 
        Range("B" & Format(i)) = Workbooks(Object_Book). _
                                 BuiltinDocumentProperties(i)
    Next

End Sub

  BuiltinDocumentProperties の対象は、Workbook オブジェクトですが、
  Workbook オブジェクトは開いてあるのが前提です。
  
  Last author などは、プロパティを変更しても、bookを保存するときに
  Excelが書き換えてしまうので、設定・変更しても意味がありません。
  
  設定・変更する項目を吟味してお使いください。

Sub SetDocumentProperty()

    Dim i As Integer
    Dim Object_Book, Caption_String As String
    
    '開いているWookbookの中からプロパティを設定するWookbookの選択
    SelectInit_Book_or_Sheet = 0
    Caption_String = "プロパティを設定するWookbookの選択"
    Object_Book = Select_Book_or_Sheet(Caption_String)
    
    'キャンセルボタンが押された場合には終了します
    If SelIndex = -1 Then
        End
    End If
        
    For i = 1 To 30
        
        Workbooks(Object_Book).BuiltinDocumentProperties(i) = _
                                                 Range("B" & Format(i))
        
    Next

End Sub

Function Select_Book_or_Sheet(Caption_String) As String
    'SelIndex に 初期値を代入します (代入しておかなくても動作します)
    SelIndex = -1

    'UserForm のタイトル部分に Caption_String で定義された文字を表示します
    UserForm1.Caption = Caption_String

    'フォームを表示させます
    UserForm1.Show
        
    'SelIndex = -1 キャンセルボタンが押されました
    '-1 以外は、上から何番目の Book または sheet を選択したかが
    'SelIndex に代入されています
    
    If SelIndex = -1 Then
        Select_Book_or_Sheet = ""
    Else
        If SelectInit_Book_or_Sheet = 0 Then
            Select_Book_or_Sheet = Workbooks(SelIndex).Name
        Else
            Select_Book_or_Sheet = Sheets(SelIndex).Name
        End If
    End If
End Function

  
       プロパティの一覧
Indexプロパティ名
1Title
2Subject
3Author
4Keywords
5Comments
6Template
7Last author
8Revision number
9Application name
10Last print date
11Creation date
12Last save time
13Total editing time
14Number of pages
15Number of words
16Number of characters
17Security
18Category
19Format
20Manager
21Company
22Number of bytes
23Number of lines
24Number of paragraphs
25Number of slides
26Number of notes
27Number of hidden Slides
28Number of multimedia clips
29Hyperlink base
30Number of characters (with spaces)



Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.