動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2506(ビルド18925.20168クイック実行)
「マクロ 最後のシートを選択」
といった検索キーワードでアクセスがありました。
それほど難しいマクロではありませんが、最後のシートが非表示である可能性を考えておく必要があります。
aiに最後のシートを選択するExcelマクロを作ってもらったら
各種無料aiに、
「最後のシートを選択するexcelマクロを作ってもらえますか」
に依頼したところ、それぞれ以下のようなコードを生成してくれました。
Geminiが生成してくれたのは以下のコードです。
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Select
Claudeの場合は以下のコードです。
Worksheets(Worksheets.Count).Select
基本的には動くコードなのですが、最後のシートが非表示のときには、実行時エラーが発生してしまいます。
最後のシートを選択するサンプルマクロ
最後のシートが非表示のときにも実行時エラーが発生しないようにするなら、以下のようなExcelマクロです。
Dim i As Long
For i = Sheets.Count To 1 Step -1
If Sheets(i).Visible Then
Sheets(i).Select
Exit Sub
End If
Next
サンプルマクロで行っている処理
Sheets.Countで取得できるシート枚数から、カウンター変数が「1」になるまで、「Step -1」を指定してFor~Nextループを回して、
Dim i As Long For i = Sheets.Count To 1 Step -1
シートが表示されていたら、選択して、Subプロシージャを抜けています。
If Sheets(i).Visible Then Sheets(i).Select Exit Sub
aiの回答
ちなみに、先ほどのコードを教えてくれたGeminiやClaudeに、
「これでは、最後のシート非表示のときにエラーになりませんか」
と指摘すると、上記のような「Step -1」のFor~Nextループを使ったコードを生成してくれました。
また、ChatrGPTの場合は、「Sheets(Sheets.Count).Select」を使ったコードを生成した直後に「応用例(シートが非表示でないものを選ぶ)」として、以下のようなコードを生成してくれました。
Sub SelectLastVisibleSheet() Dim i As Long For i = Sheets.Count To 1 Step -1 If Sheets(i).Visible = xlSheetVisible Then Sheets(i).Select Exit Sub End If Next i End Sub
Activateメソッドなら非表示でもOKだが…
ここまでお伝えしたとおり、
Sheets(Sheets.Count).Select
では、最後のシートが非表示のときに実行時エラーが発生しますが、以下のようにActivateメソッドを使うと、
Sheets(Sheets.Count).Activate
実行時エラーが発生することなく、表示されている最後シートが選択されます。
最終更新日時:2025-08-06 15:54
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAで最後のシートを選択する