Excel VBAを使ってファイルのプロパティ情報を知りたいとき、いちいちファイルを開いて情報を取得するのでは時間がかかってしまいます。ファイルを開かずにユーザー設定のプロパティを取得するには、「Dsofile.dll」を使うのが便利です。
Dsofile.dllのダウンロード
Dsofile.dllは下記のサイトから無料で入手することができます。
Dsofile.dllを使用することで、ファイルのプロパティを迅速に取得することが可能になります。
ファイルの概要プロパティというのは?
エクスプローラーを開いて適当なファイルを右クリックします。そして、プロパティを選択し、概要タブを開きます。(概要タブがない場合は、詳細タブをクリックします)
すると、ファイルには更新情報や作者名、会社名など様々なメタデータが保存されていることがわかるかと思います。
Dsofile.dllの使い方
Dsoファイルをインストール後、VBAではBuiltinDocumentPropertiesコレクションを利用してファイルのプロパティ値を取り出すことが可能になります。取り出したい値については、下記のように指定します。
- BuiltinDocumentProperties(インデックス番号)
- BuiltinDocumentProperties(プロパティ名)
- Title:タイトル
- Subject:サブタイトル
- Author:作成者
- Keywords:キーワード
- Comments:コメント
- Template:テンプレート
- Last Author:更新者
- Revision Number:改訂番号
- Application Name:アプリケーション名
- Last Print Date:印刷日時
- Creation Date:作成日時
- Last Save Time:更新日時
- Total Editing Time:編集時間
- Number of Pages:ページ数
- Number of Words:単語数
- Number of Characters:文字数
- Security:セキュリティ
- Category:分類
- Format:形式
- Manager:管理者
- Company:会社名
- Number of Bytes:バイト数
- Number of Lines:行数
- Number of Paragraphs:段落数
- Number of Slides:スライドの数
- Number of Notes:メモの数
- Number of Hidden Slides:非表示スライドの数
- Number of Multimedia Clips:マルチメディアクリップの数
- Hyperlink Base:ハイパーリンクの基点
- Number of Characters (with space):文字数(スペースを含む)
サンプルコード
BuiltinDocumentPropertiesを使って、Wordのページ数を取得するサンプルコードです。
Private Function get_page_cnt_word(sFile As String, sPath As String) As Long 'ページ数の取得を行う関数(Word) '引数:処理対象のファイル名、処理対象ファイルの格納フォルダ Dim wdDoc As Object 'オブジェクトを取得 Set wdDoc = GetObject(sPath & "\" & sFile) 'ページ数を取得 get_page_cnt_word = wdDoc.BuiltinDocumentProperties(14).Value 'オブジェクト変数を解放 Set wdDoc = Nothing End Function
関連記事
この記事はお役に立てたでしょうか?
もし参考になると思っていただけたら、こちらのボタンから共有をお願いします。
ツイート |
|