51本目 シート一覧と印刷ページ数

VBA100本ノック

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
新人君
新人君

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

ブチョ
ブチョ

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

新人君
新人君

ほんまかいな……

コメント

タイトルとURLをコピーしました