開発者テクノロジ | Visual Basic for Applications
Microsoft 製品に組み込まれている Visual Basic の実装。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Excelシートが1~200まで分かれており、一番端のシートにリストを作り、そのシート内の番号をクリックすると、番号を振り分けたシートにリンクするようにしたいのですが、マクロはどのように設定したらよいでしょうか?
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
> 一番端のシートにリストを作り、そのシート内の番号をクリックすると、> 番号を振り分けたシートにリンクするようにしたい
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
以上のようなマクロを実行できればよい、ということでしょうか。