[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『目次の改行』(素人)
お世話になります。目次の改行をしたいです。
こちらで似たような質問もあったのですが、何をどう組み込んでいいか分かりませんでした。
10行(10列?)ずつになるようにしたいです。
目次は下記のコードを入れています。
他のサイトからコピペさせてもらいました。
Dim i As Integer Dim iRow As Integer Dim sName As String
'目次シートの設定内容をクリア Range("A9:BC65535").ClearContents Range("A9:BC65535").Hyperlinks.Delete
'目次開始行数(本例は8行目から目次が作られる) iRow = 8 '目次を作成する列数(本例は3列目(C列)に目次が作られる) iColumn = 3
'ワークシートのサイズ分、下記処理を繰り返す For i = 3 To Worksheets.Count Step 1
'非表示となっているワークシートは目次作成対象外とする If Worksheets(i).Visible = xlSheetVisible Then
'ワークシート名を格納 sName = "'" & Worksheets(i).Name & "'" '目次シートの対象セルにハイパーリンクを設定(目次作成対象ワークシートのA1セルへのリンク) Call Hyperlinks.Add(Anchor:=Cells(iRow, iColumn), Address:="", SubAddress:=sName & "!A1", ScreenTip:=Worksheets(i).Name) '目次シートの対象セルにシート名を設定 Cells(iRow, iColumn) = Worksheets(i).Name
'リンクの文字の大きさ、フォントを設定 Cells(iRow, iColumn).Font.Size = 13 Cells(iRow, iColumn).Font.Name = "MS ゴシック" Cells(iRow, iColumn).Font.Bold = True
'次の行へ iRow = iRow + 1 End If Next i
End Sub
よろしくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
また、今のコードではエラーになりますが、参照先はどこですか?
参考までに書いてください。
(γ) 2021/09/15(水) 12:42
Dim i As Integer Dim iRow As Integer Dim sName As String
'目次シートの設定内容をクリア Range("A9:BC65535").ClearContents Range("A9:BC65535").Hyperlinks.Delete
'目次開始行数(本例は8行目から目次が作られる) iRow = 8 '目次を作成する列数(本例は3列目(C列)に目次が作られる) iColumn = 3
'ワークシートのサイズ分、下記処理を繰り返す For i = 3 To Worksheets.Count Step 1 '非表示となっているワークシートは目次作成対象外とする If Worksheets(i).Visible = xlSheetVisible Then 'ワークシート名を格納 sName = "'" & Worksheets(i).Name & "'" '目次シートの対象セルにハイパーリンクを設定(目次作成対象ワークシートのA1セルへのリンク) Call Hyperlinks.Add(Anchor:=Cells(iRow, iColumn), Address:="", SubAddress:=sName & "!A1", ScreenTip:=Worksheets(i).Name) '目次シートの対象セルにシート名を設定 Cells(iRow, iColumn) = Worksheets(i).Name
'リンクの文字の大きさ、フォントを設定 Cells(iRow, iColumn).Font.Size = 13 Cells(iRow, iColumn).Font.Name = "MS ゴシック" Cells(iRow, iColumn).Font.Bold = True
'次の行へ iRow = iRow + 1 End If Next i
End Sub
目次を下記のように作りたいです。(シート名は違います。)
シート3 シート13 シート23
シート4 シート14 ・
シート5 シート15 ・
シート6 シート16 ・
シート7 シート17
シート8 シート18
シート9 シート19
シート10 シート20
シート11 シート21
シート12 シート22
どんなコードをどこに入れてあげればいいか分かりません。
(素人) 2021/09/15(水) 13:07
'次の行へ iRow = iRow + 1 の二行に代えて、 If iRow = 17 Then iColumn = iColumn + 1 iRow = 8 Else '次の行へ iRow = iRow + 1 End If としてみてください。
ちなみに、 Dim iColumn As Long の宣言が漏れています。 (γ) 2021/09/15(水) 13:27
このコードはシートモジュールに書かれたものですが、
あなたのコードではそれが明示的に書かれていないので、
標準モジュールと普通は解釈されます。
すると、
Call Hyperlinks.Add(Anchor:=Cells(iRow, iColumn), 以下省略
ではエラーになります。Hyperlinksの頭にシートの特定が必要になります。
(γ) 2021/09/15(水) 13:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.