いかちソフトウェア

目次シートを作成するVBAサンプル

トップ > テクニック > VBAサンプル

Excel VBA で他シートへのハイパーリンクを目次シートに作成するには

指定したシートに、すべてのシートのハイパーリンクを作成するExcelVBAです。
マクロを実行すると、目次シートの名称を入力する入力ボックスが表示されます。
目次シートには、当該Excelブックのすべてのシートへのハイパーリンクが作成されます。
Option Explicit

Public Sub 目次シート作成()
  On Error GoTo Exception

  Dim strNewSheetNm As String
  strNewSheetNm = InputBox("目次シートの名前を入力してください。")

  Dim objNewSheet As Worksheet
  Set objNewSheet = ThisWorkbook.Worksheets.Add

  objNewSheet.Name = strNewSheetNm

  Dim lngRow As Long
  lngRow = 1

  Dim objSheet As Excel.Worksheet
  For Each objSheet In Worksheets
    Dim strSheetNm As String
    strSheetNm = objSheet.Name

    If (strSheetNm <> strNewSheetNm) Then
      objNewSheet.Hyperlinks.Add _
        Anchor:=objNewSheet.Cells(lngRow, 1), _
        Address:="", _
        SubAddress:=strSheetNm & "!A1", _
        TextToDisplay:=strSheetNm

      lngRow = lngRow + 1
    End If
  Next

  Set objNewSheet = Nothing

  On Error GoTo 0

  Exit Sub

Exception:
  Call MsgBox(CStr(Err.Number) & ":" & Err.Description, vbOKOnly + vbCritical)
  Err.Clear
End Sub