ラベル ページ数取得 の投稿を表示しています。 すべての投稿を表示
ラベル ページ数取得 の投稿を表示しています。 すべての投稿を表示

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

関連記事

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

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

Excel VBAでパワーポイントのスライド数を取得するマクロ

ExcelVBAを使ってファイルを開かずにパワーポイントのスライド数を取得するマクロを紹介します。

ファイルを開かないでパワーポイントのスライド数を確認 サンプルコード

Private Function get_page_cnt_ppt(sFile As String, sPath As String) As Long
'ページ数の取得を行う関数(パワポ)
'引数:処理対象のファイル名、処理対象ファイルの格納フォルダ
        
    Dim obj As Object
    
    'オブジェクトを取得
    Set obj = GetObject(sPath & "\" & sFile)
    
    'スライド数を取得
    get_page_cnt_ppt = obj.BuiltinDocumentProperties(25).Value
    
    Set obj = Nothing
    
End Function
スライド数を取得するためには、BuiltinDocumentPropertiesに"25"もしくは"Number of Slides"を指定します。

参考:Dsofile.dllのダウンロード・使い方


ファイルを開かずにパワーポイントのスライド数を確認するには、Dsofile.dllが必要

ファイルを開かずにスライド数を取得するためには、Dsofile.dllをインストールする必要があります。つまり、このマクロを不特定多数の人が使う場合には、各自のPCにDsofile.dllをインストールしなくてはいけないということです。Dsofile.dllインストールが難しいという場合には、どうしたらよいのでしょうか。

その答えとしては、マクロの中でファイルを開くことでスライド数を確認するという方法があります。マクロの実行速度は落ちますが、特別な設定なしでスライド数を確認することが可能です。

ファイルを開いてパワーポイントのスライド数を確認 サンプルコード

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

   Dim pp As Object
   Dim lCount As Long

   Set pp = CreateObject("PowerPoint.application”)

   With pp
      'ファイルオープン
       .Presentations.Open sPath  & "\" & sFile, ReadOnly:=True
      'スライド数取得
       lCount = .activepresentation.slides.Count
       
       'パワポを閉じる
       .Presentations(sFile).Close
       .Quit
   End With
   
   'オブジェクト変数を解放
   Set pp = Nothing
   get_page_cnt_ppt = lCount

End Function

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

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

2015年4月24日金曜日

ExcelVBA(マクロ)でWordのページ数の取得を行う方法

ExcelVBA(マクロ)でWordのページ数の取得
Excel VBAでWordのページ数を取得するやり方を書いてみました。 マクロを使ったページ数の確認方法は2つあります。マクロの中でWordファイルを開いて確認するか、開かずに確認するかという違いがあります。 まず、実際のコードを紹介します。
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

ファイルを開かずにページ数を取得するためには、Dsofile.dllのインストールが必要になります。詳しくは下記の記事を参照ください。
Dsofile.dllのダウンロード・使い方

Wordファイルを開いてページ数を確認
Private Function get_page_cnt_word(sFile As String, sPath As String) As Long
‘ページ数の取得を行う関数(Word)
'引数:処理対象のファイル名、処理対象ファイルの格納フォルダ

   Dim wdApp As Object
   Dim wdDoc As Object
   Dim lCount As Long

   Set wdApp = CreateObject(“Word.Application”)

   'ファイルオープン
   Set wdDoc = wdApp.Documents.Open(sPath & “" & sFile)
   'ページ数取得
   lCount = wdDoc.ComputeStatistics(Statistic:=wdStatisticPages, IncludeFootnotesAndEndnotes:=True)

   'Wordを閉じる
   wdDoc.Close
   wdApp.Application.Quit

   'ページ数表示
   get_page_cnt_word = lCount

   'オブジェクト変数を解放
   Set wdDoc = Nothing
   Set wdApp = Nothing

End Function
それぞれの方法のメリット・デメリット
Wordファイルを開かずにページ数を確認
メリット
  • 処理速度が速い
デメリット
  • 実際のページ数と違った値を出すことがある
  • dsofile.dllをインストールする必要がある
Wordファイルを開いてページ数を確認
メリット
  • 正確なページ数を取得することができる
デメリット
  • ファイルを開くため、処理速度が遅い
  • 参照設定を行う必要がある

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

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