次のマクロは役に立ちますか?
Sub activateSheet(sheetname As String)
'activates sheet of specific name
Worksheets(sheetname).Activate
End Sub
基本的には.Activate関数を使いたいのです。あるいは、.Select関数を次のように使用することもできます。
Sub activateSheet(sheetname As String)
'selects sheet of specific name
Sheets(sheetname).Select
End Sub
ワークシートの名前ではなくワークシートのインデックスを使用することをお勧めします。このようにして、「動的に」シートをループすることもできます。
for i=1 to thisworkbook.sheets.count
sheets(i).activate
'You can add more code
with activesheet
'Code...
end with
next i
また、パフォーマンスが向上します。
マクロなしでワークシートをアクティブにするためにテキストを(動的にではなく)リンクする別の方法は、選択した文字列を実際のリンクにすることです。これを行うには、テキストを含むセルを選択してCtrl + Kキーを押し、次に[このドキュメントに配置]オプション/タブを選択して、アクティブにするタブを選択します。テキストをクリックすると(それが現在リンクになっています)、設定されたシートがアクティブになります/選択されます。