次の方法で共有

Excelでマクロを使用してシートにリンクさせたい

Anonymous
2024-12-24T09:05:35+00:00

Excelシートが1~200まで分かれており、一番端のシートにリストを作り、そのシート内の番号をクリックすると、番号を振り分けたシートにリンクするようにしたいのですが、マクロはどのように設定したらよいでしょうか?

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-12-24T10:02:18+00:00

    > 一番端のシートにリストを作り、そのシート内の番号をクリックすると、> 番号を振り分けたシートにリンクするようにしたい

    (標準モジュール)

    Sub CreateIndexSheet()
        
        Const IndexSheetName As String = "目次シート"
        
        Dim wbkTarget As Excel.Workbook
        Dim wsIndex As Excel.Worksheet
        
        Set wbkTarget = ActiveWorkbook
        
        With wbkTarget.Worksheets
            
            On Error Resume Next
            Set wsIndex = .Item(IndexSheetName)
            
            If Err.Number = 0 Then
                wsIndex.Cells.Clear
                wsIndex.Move Before:=.Item(1)
            Else
                Err.Clear
                Set wsIndex = .Add(Before:=.Item(1))
                wsIndex.Name = IndexSheetName
            End If
            On Error GoTo 0
            
            If wsIndex Is Nothing Then
                Exit Sub
            End If
        
        End With
        
        Dim lngSheetIndex As Long
        Dim lngRow As Long
        Dim rngTarget As Excel.Range
        Dim wsRefer As Excel.Worksheet
        
        lngRow = 0
        
        For lngSheetIndex = 2 To wbkTarget.Worksheets.Count
            lngRow = lngRow + 1
            wsIndex.Cells(lngRow, 1).Value = lngRow
            Set rngTarget = wsIndex.Cells(lngRow, 2)
            Set wsRefer = wbkTarget.Worksheets(lngSheetIndex)
            rngTarget.Hyperlinks.Add Anchor:=rngTarget, _
                                     Address:="", _
                                     SubAddress:="'" & wsRefer.Name & "'!A1", _
                                     TextToDisplay:=wsRefer.Name
            Set wsRefer = Nothing
            Set rngTarget = Nothing
        Next
        
        With wsIndex
            .UsedRange.EntireColumn.AutoFit
            .Select
            .Cells(1.1).Select
        End With
        
        Set wsIndex = Nothing
        Set wbkTarget = Nothing
        
    End Sub
    

    以上のようなマクロを実行できればよい、ということでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません