Nameプロパティを使用してシート名の取得と設定 VBAの基礎知識

VBAの基礎知識 Nameプロパティを使用してシート名の取得と設定

Worksheetの名前を取得したり、設定するには、Nameプロパティを使います。この回ではNameプロパティを使用してシート名の取得と設定をしてみましょう.

Nameプロパティを使用してシート名の取得と設定

VBAの基礎知識 007回

Nameプロパティを使用してシート名の取得と設定

ワークシートの名前を取得したり、名前を設定するというマクロは今までもたくさん使っています。
これは Worksheet オブジェクトの Name プロパティを使って設定し得することができます。

(サンプルファイルは、こちらから サンプルファイルジップ

Nameプロパティを使用してシート名の取得と設定

こちらは原本シートをコピーして名前をつけるというマクロです。

指定したシートを指定枚数コピーして任意の名前をつける

1.このマクロでは Inputbox でユーザーから必要なコピー枚数を入力してもらって、その数値を受け取り、枚数分だけシートをコピーします。
次に、 ActiveSheet.Name でその追加したシートに名前をつけています。

Sub 枚数コピーして名前もつける()
    Dim i As Integer
    Dim cnt As Integer
      
    cnt = Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)
    For i = 1 To cnt
    Worksheets("テンプレート").Copy before:=Worksheets("テンプレート")
    ActiveSheet.Name = "令和5年" & i & "月"
    Next i
End Sub

Nameプロパティを使用してシート名の取得と設定1

2.inputbox を使ってユーザーに必要枚数を指定してもらいます。
cnt = Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)


Nameプロパティを使用してシート名の取得と設定2

3. For文を使って必要枚数文テンプレートをコピーして、コピーしたシート2年プロパティで名前を設定しています。

    For i = 1 To cnt
    Worksheets("テンプレート").Copy before:=Worksheets("テンプレート")
    ActiveSheet.Name = "令和5年" & i & "月"
    Next i

Nameプロパティを使用してシート名の取得と設定3

同名のワークシートがあるかないかを確認するマクロ

4. 今度は複数のシートがあるブックの中で、指定した名前のシートがあるかどうか探してもしあったらメッセージを表示します。さらにそのシートを選択するというマクロを作ります。

Sub 同じ名前のシートを探す()
    Dim WsName As String, mysheet As Worksheet
    WsName = "テンプレート"
    For Each mysheet In Worksheets
        If mysheet.Name = WsName Then
            MsgBox WsName & "と同じ名前のワークシートがあります"
            Worksheets(WsName).Select
            Exit Sub
        End If
    Next
End Sub

Nameプロパティを使用してシート名の取得と設定4

5. 実行すると同名のワークシートがある時は同じ名前のワークシートがありますとメッセージを表示します。


Nameプロパティを使用してシート名の取得と設定5

6. そして見つかった同盟のワークシートをセレクトします。

このマクロの場合同じ名前のシートがなければそのまま何も起こらず終わってしまいます。
最後にメッセージボックスで同名のシートはなかったと表示してもいいでしょう。

'以下のコードをEnd Subの前に追加する
MsgBox WsName & "と同じ名前のワークシートはありませんでした。"

Nameプロパティを使用してシート名の取得と設定6

ポイント
同じ名前のワークシートがあるかどうかはFor Eachステートメントを使ってworksheets collectionのメンバーである worksheet オブジェクトをひとつずつ探しています。 そしてIfステートメントで名前が同じかどうかをチェックすると言うやり方です。

こちらもおすすめ