VBA100本ノック 51本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ
問題
#VBA100本ノック51本目
シートの一覧を作成します。
先頭に「目次」シートを追加し、
・A列にシート名を出力
・表示シートのみシート名にA1へのハイパーリンクを作成(非表示シートはリンクしない)
・B列にそのシートを印刷した時の総ページ数を出力
※シート名に注意(記号等)
非表示シートの印刷ページをわざわざ求める必要はありません。
0または空欄で構いません。
解答
Sub ハイパーリンク()
Dim ws As Worksheet
Set ws = Sheets("目次")
ws.Move before:=Sheets(1)
Dim i
For i = 2 To Sheets.Count
If Sheets(i).Visible = xlSheetVisible Then
ws.Hyperlinks.Add anchor:=Range("A" & i), _
Address:="", _
SubAddress:="'" & Sheets(i).Name & "'" & "!A1", _
TextToDisplay:=Sheets(i).Name
ws.Range("B" & i) = Sheets(i).PageSetup.Pages.Count
Else
ws.Range("A" & i) = Sheets(i).Name
End If
Next
End Sub

新人君
簡単そうに見えて
結構難しいんですかね!

ブチョ
俺から見たら
簡単そうに見えて
超簡単だけどな!

新人君
ほんまかいな……
コメント