エクセルの各シート名とページ数を取得して、一覧表を作成するマクロです。
ページ数を目視でひとつひとつ数えると、面倒で時間がかかりますよね。
マニュアルや仕様書の目次作成なんかに役立ちました。
個人用マクロブックなどに貼ってお使いください。
ソースは以下のとおり。
ページ数を取得してシート一覧表を作成するVBAのソース
'=============================================
' ページ数を取得してシート一覧表を作成
' 2010.05.06
'=============================================
Sub ページ数を取得してシート一覧表を作成()
Dim mysheet As Worksheet '各シート
Dim page_sum As Integer 'ページ数
Dim list() As Variant 'シート名とページ数格納用
Dim i As Integer '配列添え字用
Dim maxi As Integer '配列最大添え字用
'-----------------------------------------
' シート名とページ数を配列に代入
'-----------------------------------------
maxi = 0
'ブックの各シートごとに
For Each mysheet In Worksheets
'シートのページ数取得
mysheet.Activate
page_sum = Application.ExecuteExcel4Macro("get.document(50)")
'配列にシート名とページ数を代入
ReDim Preserve list(1, maxi)
list(0, maxi) = mysheet.Name
list(1, maxi) = page_sum
maxi = maxi + 1
Next mysheet
'-----------------------------------------
' 配列を新規ブックに転記
'-----------------------------------------
'新規ブック追加
Workbooks.Add
ActiveSheet.Name = "シート一覧"
'リストタイトル設定
Range("A1").Value = "シート名"
Range("B1").Value = "ページ数"
'配列転記
For i = 0 To maxi - 1
Range("A" & i + 2) = list(0, i)
Range("B" & i + 2) = list(1, i)
Next
End Sub
エクセルの話題はトラコミュもおすすめ
トラコミュ エクセル(Excel)