[[20201222142407]] 『目次へ戻る マクロ』(めぉ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『目次へ戻る マクロ』(めぉ)

300シート近くのエクセルファイルを見やすくするために
目次をマクロで作りました。
初マクロでネットの解説コードをそのまま使っているだけです。

そこに、すべてのシートへ「目次へ戻る」リンクを作りたいのですが
いいものが見つかりませんでした。
ボタンはなくて、文字でセルA1に入れられるといいなと思います。
教えて頂けますでしょうか。
よろしくお願い致します。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


目次は何で使ってますか?
セルならハイパーリンクを張ればいいと思います。
ハイパーリンクの設定もマクロで出来ます。
(OK) 2020/12/22(火) 14:42

 >目次は何で使ってますか? 

 ↓の間違いでした。

 目次は何を使ってますか? 
(OK) 2020/12/22(火) 15:12

Sub ハイパーリンク付き目次作成()
    Dim objSheet As Worksheet
    Dim objSheetMT As Worksheet
    Dim i As String

    'アクティブシートへシートを追加
    ActiveWorkbook.Sheets.Add

    '追加したシートをリネーム
    ActiveSheet.Name = "一覧"

    Set objSheetMT = Sheets("一覧")

    objSheetMT.Columns("A:E").Clear

    i = 2

    '全シートループ
    For Each objSheet In Sheets
        'シート名を出力
        objSheetMT.Cells(i, 1) = objSheet.Name

        'シートへのハイパーリンクを設定
        ActiveSheet.Hyperlinks.Add Anchor:=objSheetMT.Cells(i, 1), Address:="", SubAddress:="'" & objSheet.Name & "'!A1", TextToDisplay:=objSheet.Name

        i = i + 1
    Next

End Sub


目次は上記のコードをつかっております。

300ちかくあるすべてのシートに一つ一つ
ハイパーリンクの設定をするのが手間なので、
一括でA1にリンクを貼りたいです。

すべてのシートを選択した状態だと
リンクの設定が出来ないため、マクロを使うのだと思っていましたが
違う方法があるのでしょうか?
(めぉ) 2020/12/22(火) 15:16


すみません、簡単な貼り付けでいけそうですね。
難しく考えすぎていました。
(めぉ) 2020/12/22(火) 15:24

 解決済みのようですが、一応参考コードを貼っておきます。

目次作成時に↓のように一部追加するだけです。

Sub ハイパーリンク付き目次作成2()

    Dim objSheet As Worksheet
    Dim objSheetMT As Worksheet
    Dim i As String

    'アクティブシートへシートを追加
    ActiveWorkbook.Sheets.Add

    '追加したシートをリネーム
    ActiveSheet.Name = "一覧"

    Set objSheetMT = Sheets("一覧")

    objSheetMT.Columns("A:E").Clear

    i = 2

    '全シートループ
    For Each objSheet In Sheets

       If objSheet.Name <> "一覧" Then '追加

          'シート名を出力
          objSheetMT.Cells(i, 1) = objSheet.Name

          'シートへのハイパーリンクを設定
          ActiveSheet.Hyperlinks.Add Anchor:=objSheetMT.Cells(i, 1), Address:="", SubAddress:="'" & objSheet.Name & "'!A1", TextToDisplay:=objSheet.Name

          objSheet.Hyperlinks.Add Anchor:=objSheet.Cells(1, 1), Address:="", SubAddress:="'" & ActiveSheet.Name & "'!A1", TextToDisplay:=ActiveSheet.Name  '追加

          i = i + 1

       End If  '追加

    Next
End Sub
(OK) 2020/12/22(火) 15:32

 一覧シートにもハイパーリンクが設定されてしまいますが、
 一括で全シートにSheet1のA1へのハイパーリンクを設定
 する方法です。

 Sub test2()
   Worksheets.Select
   ActiveCell.FormulaR1C1 = "=HYPERLINK(""#Sheet1!A1"")"
 End Sub
(OK) 2020/12/22(火) 15:47

 >すべてのシートを選択した状態だと 
 >リンクの設定が出来ないため、マクロを使うのだと思っていましたが 

 ↑のコードは、全てのシートを選択した状態でハイパーリンク関数を
 埋め込む作業をマクロの自動記録したものを少し改造したものです。

 ↓は自動記録コードです。

    Sheets(Array("Sheet5", "Sheet4", "Sheet3", "Sheet2", "Sheet1")).Select
    Sheets("Sheet5").Activate
    ActiveCell.FormulaR1C1 = "=HYPERLINK(""#Sheet1!A1"")"
    Range("A2").Select
(OK) 2020/12/22(火) 15:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.