大体でIT
大体でIT
Excel VBAで、シート名を取得したり変更するには、「.Name」を使います。シートの指定方法は、「アクティブシート」や「シートインデックス」、「シートオブジェクト」を使う方法がありますので、それぞれ解説していきます。シート名の取得や変更する方法について、マスターしていきましょう。
この記事では、シート名を取得する方法と、変更する方法について、ご紹介します。
シート名を操作したい場合は、「.Name」を使うとできます。
シートを指定する方法として、次の3つの方法があります。
- アクティブシートを指定
- シートインデックスを使う
- シートオブジェクトを使う
すべてのシート名を取得したり変更したい場合は、シートをループして操作します。
シート名の操作方法について、マスターしていきましょう。
では、シート名を取得する方法について、解説していきます。
シート名を取得するには、「.Name」を使います。
- アクティブシートを指定
- シートインデックスを使う
- シートオブジェクトを使う
アクティブシートのシート名を取得したい
アクティブシートのシート名を取得するVBAコードです。
Sub TEST1()
'アクティブシートのシート名を取得
Debug.Print ActiveSheet.Name
End Sub
実行すると、アクティブシートのシート名を取得できます。
アクティブシートのシート名を取得できた
シートインデックスを指定してシート名を取得してみます。
シートインデックスはシートの順番
2番目のシート名を取得したい
2番目のシートのシート名を取得するVBAコードです。
Sub TEST2()
'2番目のシートのシート名を取得
Debug.Print Sheets(2).Name
End Sub
実行すると、2番目のシートのシート名を取得できます。
2番目のシート名を取得できた
シートオブジェクトを指定してシート名を取得してみます。
シートオブジェクト名
シートオブジェクト「Sheet2」のシート名を取得してみます。
「Sheet2」のシートオブジェクトのシート名を取得したい
シートオブジェクト「Sheet2」のシート名を取得するVBAコードです。
Sub TEST3()
'シートオブジェクト「Sheet2」のシート名を取得
Debug.Print Sheet2.Name
End Sub
実行すると、シートオブジェクト「Sheet2」のシート名を取得できます。
シート名を取得できた
シートオブジェクト「Sheet2」のシート名を取得できました。
シート名の変更も同じように、「.Name」を使うとできます。
シートの指定方法は、次の3つがありますので、それぞれでやってみます。
- アクティブシートを指定
- シートインデックスを使う
- シートオブジェクトを使う
アクティブシートのシート名を変更したい
アクティブシートのシート名を変更するVBAコードです。
Sub TEST4()
'アクティブシートのシート名を変更
ActiveSheet.Name = "ABC"
End Sub
実行すると、アクティブシートのシート名を変更できます。
アクティブシートのシート名を変更できた
シートインデックスを指定してシート名を変更してみます。
2番目のシート名を変更したい
2番目のシートのシート名を変更するVBAコードです。
Sub TEST5()
'2番目のシートのシート名を変更
Sheets(2).Name = "ABC"
End Sub
実行すると、2番目のシートのシート名を変更できます。
2番目のシート名を変更できた
シートオブジェクトを指定してシート名を変更してみます。
シートオブジェクトを使ってシート名を変更したい
「Sheet2」のシートオブジェクトのシート名を変更してみます。
シートオブジェクト「Sheet2」のシートは、こちらになります。
シートオブジェクト「Sheet2」のシート名を変更するVBAコードです。
Sub TEST6()
'シートオブジェクト「Sheet2」のシート名を変更
Sheet2.Name = "ABC"
End Sub
シート名を変更できた
すべてのシート名を取得するには、シートをループして取得します。
シートをループしてシート名を取得するVBAコードです。
「For~Next」を使った場合は、こんな感じになります。
Sub TEST7()
'シートをループ
For i = 1 To Sheets.Count
'シート名を取得
Debug.Print Sheets(i).Name
Next
End Sub
「For Each~Next」を使った場合は、次のようなVBAコードとなります。
Sub TEST8()
Dim A
'シートをループ
For Each A In Sheets
'シート名を取得
Debug.Print A.Name
Next
End Sub
では、すべてのシートをループして、シート名を取得します。
シートをループしてシート名を取得
シート名を取得できた
複数のシート名を変更したい場合は、先ほどと同じようにシートをループして、変更していきます。
シートをループして、シート名を連番に変更するVBAコードです。
「For~Next」を使った場合のVBAコードです。
Sub TEST9()
'シートをループ
For i = 1 To Sheets.Count
'シート名を変更
Sheets(i).Name = i
Next
End Sub
「For Each~Next」を使った場合は、次のVBAコードになります。
Sub TEST10()
Dim A
i = 0
'シートをループ
For Each A In Sheets
i = i + 1
A.Name = i 'シート名を変更
Next
End Sub
すべてのシートをループして、シート名を変更します。
シートをループしてシート名を変更
シート名を連番にできた
この記事では、シート名を取得する方法と、変更する方法について、ご紹介しました。
シート名を操作したい場合は、「.Name」を使うとできます。
シートを指定する方法として、次の3つの方法があります。
- アクティブシートを指定
- シートインデックスを使う
- シートオブジェクトを使う
すべてのシート名を取得したり変更したい場合は、シートをループして操作します。
シート名の操作方法について、マスターしていきましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。