Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAで最後から2番目のシート名を取得する

VBAで最後から2番目のシート名を取得する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

VBAで最後から2番目のシート名を取得する

「excel2013 マクロ sheet.count 最期から2つ目のシート」
という検索キーワードに気づきました。

Excel VBAで、最後から2番目のシートをどうにかするには、どのようなコードを書けばいいのか探していらしたのでしょう。

シートをどうしたかったのかが
「excel2013 マクロ sheet.count 最期から2つ目のシート」
だけではわかりませんので、シート名を取得するサンプルをご紹介しておきます。

[スポンサードリンク]

最後のシート名を取得するサンプルマクロ

まずは、シートの枚数を変数に代入しておいて、最後のシート名を取得するマクロを理解しましょう。

Sub 最後のシート名を取得()
 Dim cnt As Long

 cnt = Sheets.Count
 MsgBox Sheets(cnt).Name
End Sub

SheetsコレクションオブジェクトのCountプロパティで、シートの枚数を取得できます。

その値を変数・cntに代入しておけば、最後のシートを表すオブジェクトを「Sheets(cnt)」という式で取得できます。

その名前を取得しているのが「Sheets(cnt).Name」というオブジェクト式です。

変数・cntを使わずに、
 cnt = Sheets.Count
 MsgBox Sheets(cnt).Name
をまとめると、
 MsgBox Sheets(Sheets.Count).Name
とも書けます。

最後から2番目のシート名を取得するサンプルマクロ

で、最後から2番目のシート名を取得するマクロは以下のとおりです。

Sub 最後から2番目のシート名を取得()
 Dim cnt As Long

 cnt = Sheets.Count
 MsgBox Sheets(cnt - 1).Name
End Sub

変数・cntには、シートの総数が代入されているので「- 1」した数値を使って「Sheets(cnt - 1)」というオブジェクト式で、最後から2番目のシートを表すオブジェクトを取得できます。

変数を使わないのであれば、
 MsgBox Sheets(Sheets.Count - 1).Name
です。

プログラミングの経験がない方の場合、「cnt - 1」のような単純な引き算や足し算を思いつけないことがあるのですが、何回か自分で考えてコードを書くと、思いつけるようになります。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAで最後から2番目のシート名を取得する

「Sheets・Worksheet」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.