2015年4月26日日曜日

Excel VBAでVisioのページ数を取得するマクロ

Excel VBAを使って、Visioのページ数を取得するマクロを紹介します。

Visioのページ数を取得マクロ サンプルコード

Private Function get_page_cnt_vsd(sFile As String, sPath As String) As Long
'ページ数の取得を行う関数(visio)
'引数:処理対象のファイル名、処理対象ファイルの格納フォルダ
   Dim visio As Object
   Dim lCount As Long

   Set visio = CreateObject("Visio.Application”)

   With visio
       'ファイルオープン
       .Documents.Open sPath & "\" & sFile
       
       'シート数取得
       lCount = .ActiveDocument.Pages.Count
       
       'Visioを閉じる
       .Documents(sFile).Close
       .Quit
   End With
   
   'オブジェクト変数を解放
   Set visio = Nothing
   get_page_cnt_vsd = lCount

End Function
Excel VBAでVisioのページ数を取得するマクロの気になるところ

Wordおよびパワーポイントの場合は、Dsofile.dllを使用すればファイルを開かずにページ数・スライド数を取得することができます。取得元となるのは、ファイルのプロパティに表示されているページ数・スライド数です。

ただ、Visioの場合は、ファイルのプロパティにページ数の項目が無いようにみえます。そのため、ファイルを開いてページ数を取得して閉じるという方法で値を取得しています。ファイルを開くとどうしてもマクロの実行速度が落ちてしまうので、ファイルを開かずに値が取れたらいいのですが…。

関連記事

この記事はお役に立てたでしょうか?
もし参考になると思っていただけたら、こちらのボタンから共有をお願いします。

このエントリーをはてなブックマークに追加