[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『目次へ戻る マクロ』(めぉ)
300シート近くのエクセルファイルを見やすくするために
目次をマクロで作りました。
初マクロでネットの解説コードをそのまま使っているだけです。
そこに、すべてのシートへ「目次へ戻る」リンクを作りたいのですが
いいものが見つかりませんでした。
ボタンはなくて、文字でセルA1に入れられるといいなと思います。
教えて頂けますでしょうか。
よろしくお願い致します。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
>目次は何で使ってますか?
↓の間違いでした。
目次は何を使ってますか? (OK) 2020/12/22(火) 15:12
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
解決済みのようですが、一応参考コードを貼っておきます。
目次作成時に↓のように一部追加するだけです。
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.