忍者ブログ
19 April

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

03 October

【Excel/VBA】渡し値のブックに、ブック内リンク付きの目次をつける

※目次テンプレートを作っている前提
※目次をつけたいブックを開いた状態でCall

そういや、言ってなかったんですが、掲載ソースにインデントが無いのは、ブログに張り付けた時にぶっとんでしまったのを、スペースで置換するのがめんどくせーからです。

-----------------------------------------------
目次テンプレートの仕様(ソース準拠)
-----------------------------------------------
ファイル名 =目次.xlt
シート名=目次
保存ディレクトリ=エクセルのシステムディレクトリ(保存時、拡張子に.xltを選ぶと自動で移動する場所)
各シート名が並ぶ列の一列目の座標=B2
クリックしたときに飛ぶセル=C6
-----------------------------------------------
Public Sub Crt_Mokuji(WB As Workbook)
'=====================================================================
' 渡したワークブックに目次を付ける
'=====================================================================
Dim WS As Worksheet
Dim ShtNM() As String, i As Long
Dim tmpNM As String

Const TgtRang As String = "B2"

tmpNM = Application.TemplatesPath & "目次.xlt"
ReDim ShtNM(WB.Worksheets.Count - 1)

i = 0
For Each WS In WB.Worksheets
ShtNM(i) = WS.Name
i = i + 1
Next

WB.Sheets.Add Before:=WB.Worksheets(1), Type:=tmpNM
Set WS = WB.Worksheets("目次")

With WS

For i = 0 To UBound(ShtNM)
.Hyperlinks.Add .Range(TgtRang).Cells(1 + i, 1), "", "'" & ShtNM(i) & "'!C6", , ShtNM(i)
Next

End With

Set WS = Nothing

End Sub
-----------------------------------------------
イミディエイト
-----------------------------------------------
call crt_mokuji(workbooks("これに目次をつけたい.xls"))
-----------------------------------------------

拍手

PR