• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロについて助言下さい。)

エクセルマクロでシート名を指定してアクティブにする方法

このQ&Aのポイント
  • エクセルマクロを使用して特定のシート名をアクティブにする方法について助言ください。
  • 現在のマクロでは、シート名を取得し、指定したシートが存在するか確認しています。作業シートのC1セルの値が0であれば、指定の日付のシートが存在しないと判断されます。
  • しかし、コードにおいてシート名が指定の番号ではなく、シート名が直接選択されるようにしたいです。具体的には、3と指定した場合にシート名が「3」のシートを選択できるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hananoppo
  • ベストアンサー率46% (109/235)
回答No.3

こんな感じでどうでしょう。 Sub 抽出() Dim i As Integer 'シート名を取得する Worksheets("作業").Activate Columns("A").ClearContents For i = 1 To Worksheets.Count Cells(i, 1).Value = Worksheets(i).Name Next i Range("C1").Select If ActiveCell.Value = 0 Then 'C1が0の場合の処理 MsgBox "日付シートの選択が許可されていません。" Exit Sub End If Worksheets("作業2").Activate Range("I3").Select For i = 1 To Worksheets.Count If Worksheets(i).Name = CStr(ActiveCell.Value) Then Worksheets(i).Activate Exit Sub End If Next i MsgBox "指定の日付シートが存在しません。" End Sub

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

下記の様に文字列である事を明示してはいかがでしょうか。ご参考まで。 Sheets(Cstr(ActiveCell.value)).Select

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

こんばんは 新しいブックに、シートを3つ以上用意し、1番目のシートの名前を「3」にして、以下のソースを試してみてください Sub sumple1() Dim A As String A = 3 Sheets(A).Select End Sub Sub sumple2() Dim A As Integer A = 3 Sheets(CStr(A)).Select End Sub Sub sumple3() ActiveCell.Value = 3 Sheets(CStr(ActiveCell.Value)).Select End Sub ポイントは「数字の3ではなく、文字の3ですよ」ということをVBAに伝える事です。

関連するQ&A