• ベストアンサー

エクセルで全シートの一覧表を作りたい(VBA)

エクセルでシート名を一覧(目次)にして品名をクリックしたらそのシートに飛ぶようにしたいのですが。 エクセルのシートに複数の担当者が製品毎の仕様を入れていく作業をしているのですがシートが増えてくると重複で作成されるシートが出始めています。 そこで「目次」のシートを作成して、新規シート作成時に「目次作成」ボタンでシート名一覧表が更新されるようにしたいのです。 そして目次のシート名クリックで当該シートに飛ぶようにしたいのですが、当方永遠のVBA初心者ですのでよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

シートの左端から順番にB2から下にシート名を記載して各シートのA1にリンクします。 左からの順番を確実にしたいのでFor Each は使っていません。 目次のシート名を「目次」としていますので実際のシート名に変更してください。 .Nameと.Cells(mRow, "B")の頭の「.」に注意してください。 Sub Test() Dim i As Long, mRow As Long mRow = 2 With Sheets("目次") For i = 1 To Sheets.Count If Worksheets(i).Name <> .Name Then .Cells(mRow, "B").Formula = "=HYPERLINK(""#" & Worksheets(i).Name & "!A1"",""" & Worksheets(i).Name & """)" mRow = mRow + 1 End If Next End With End Sub

akira0723
質問者

お礼

早々のご回答ありがとうございます。 一発解決です!! こうなると悪い癖でつい「もう少し」が出そうですが、当初の目的は100%達成ですので一旦これで締め切らせて頂きます。 また、宜しくお願い致します。

Powered by GRATICA

関連するQ&A