• ベストアンサー

Excel98でワークシート名の一覧を表示、印刷できますか?

ハイパーリンクをはって、たくさんのシート(70~100近いシート数)を作ってあるExcelデータがあるのですが、これを整理したいと思っています。 しかし、シート数がありすぎて整理しきれず困っています。 簡単にシート名の一覧を表示、印刷させる方法はありませんか? また、ハイパーリンク先のアドレスなんかもわかる方法があればよいのですが・・・。 ご存知の方、よろしくお願い致します。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

マクロの力が必要かと思います。 Excel98で、作動するかはわかりませんが、以下のマクロ試してみてください。 A列に、順にシート名を記述します。 Sub Macro1() Dim Sh As Object Dim Shno As Integer For Each Sh In ActiveWorkbook.Sheets Shno = Shno + 1 Cells(Shno, 1).Value = Sh.Name Next Sh End Sub マクロの記述に仕方ですが、以下に説明しておきます。ご存知でしたら失礼します。 ツールー>マクロー>VBエディターを開く 初めてであれば、挿入で標準モジュール作成して、上記をコピペします。 実行には、マクロでMacro1()選択して実行です。

kyonmimi2006
質問者

お礼

hallo-2007さん、アドバイスありがとうございました。 試してみます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

関数や操作ではできない。VBAを組める必要がある。経験はないようなので、本当は質問者にはできない。丸投げだが親切な回答者によって 得たコードを実行するよりほかない。 ーー シート名のリストの方はコードは簡単で 標準モジュールに Sub test02() Dim sh As Worksheet i = 1 For Each sh In ActiveWorkbook.Worksheets Cells(i, 1) = sh.Name i = i + 1 Next End Sub しかしここにもVBAで習得すべき事項が沢山詰まっているのですよ。 ーー ハイパーリンク先のアドレスなんかもわかる方法・・ これは少しレベルが高いので色々勉強してから疑問を煮詰めて質問のこと。 1シート(アクチブシートのリンク一覧をSheet2に出す)での例で (Range("A1:D20")は適宜変えること) Sub test03() Dim sh2 As Worksheet Set sh2 = Worksheets("Sheet2") Dim c As Range k = 1 For Each c In ActiveSheet.Range("A1:D20") If c.Hyperlinks.Count >= 1 Then 'MsgBox c.Hyperlinks.Count 'MsgBox c.Address sh2.Cells(k, "A").Value = c.Address sh2.Cells(k, "B").Value = c.Hyperlinks(1).Name k = k + 1 End If Next End Sub をやってみると、うまくいくようなのだが、小生自信なし。

kyonmimi2006
質問者

お礼

imogasiさん、ありがとうございました。 もっと勉強させていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A