2015年4月24日金曜日

VBAで指定のファイルに含まれるシート一覧を作成する方法

指定のエクセルファイルに含まれるシートの一覧が必要なときがたまにあります。
シートの一覧表から各シートへとべるようにリンクを張ったり、単純にどこまで設計書を作成したか確認したかったり…。
それほど複雑な処理が必要なわけではないので、覚えておくと結構役に立つのではないかと思います。
サンプルコード
Sub make_sh_list(sPath as string,sFile as string,sSh as string)
'引数は記入先のファイルパス、記入先のファイル名、記入先のシート名

  Dim sh As Object
  Dim row_num As Long
  Dim col_num As Long
  Dim wb As Workbook
  Dim ws As Worksheet
  

  Workbooks.Open sPath

  Set wb = Workbooks(sFile)
  Set ws = wb.Worksheets(sSh)
    
  row_num = 1
  col_num = 1

  For Each sh In wb.worksheets
    ws.Cells(row_num, col_num) = sh.Name
    row_num = row_num + 1
  Next sh

End Sub

For Eachステートメントは覚えておくと便利
上記のコードでは、For Eachをぐるぐる回しながら、指定ファイルのWorksheet名を取得しています。
For NextではWorksheetの数だけループが回るようになっているので、終了条件を気にする必要はありません。

シート名を記入した後にrow_numを1ずつ増やすことで、シート名を記入するセルの指定が1行ずつ下へずれていくようになっています。

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

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