「excel2013 マクロ sheet.count 最期から2つ目のシート」
という検索キーワードに気づきました。
Excel VBAで、最後から2番目のシートをどうにかするには、どのようなコードを書けばいいのか探していらしたのでしょう。
シートをどうしたかったのかが
「excel2013 マクロ sheet.count 最期から2つ目のシート」
だけではわかりませんので、シート名を取得するサンプルをご紹介しておきます。
最後のシート名を取得するサンプルマクロ
まずは、シートの枚数を変数に代入しておいて、最後のシート名を取得するマクロを理解しましょう。
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番目のシート名を取得するマクロは以下のとおりです。
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番目のシート名を取得する