|
今回は、VBAから特定の名前(Name)でワークシートを作成してみましょう。エクセルには、特定のシートの特定のセル範囲にデータを取得したり、特定のシートの特性のセル範囲に対して集計を行うような機能があるので、実行時に動的に任意の名前でシートを作成できれば、既存のワークシートに影響を及ぼさない作業用のワークシートとして利用できるので、便利です。 VBAから新規のワークシートを作成するには、SheetsオブジェクトのAddメソッドを呼び出します。これで、新しいワークシートが作成され、その参照が返されるのですが、その名前は「Sheet4」などとなっているので、自分で名前を付ける場合はAddで返される参照をWorksheet型変数に格納し、Nameプロパティを設定しましょう。 Set testSheet = Sheets.Add testSheet.Name = "testSheet1" ただ、すでに同じ名前のシートがあると、名前の設定時にエラーになります。アプリケーションで独自に作業用のワークシートを作成するような場合は、「クリアされた特定の名前のシート」が欲しいわけですから、まず最初にすでに指定の名前のワークシートがあるか確認し、なければワークシートを作成、という流れにした方が良さそうですね。 Dim testSheet As Worksheet
Dim existSheet As Boolean
existSheet = False
For Each s In Worksheets
If s.Name = "testSheet" Then
Set testSheet = s
existTest = True
End If
Next
If Not existSheet Then
Set testSheet = Sheets.Add
testSheet.Name = "testSheet1"
End If
testSheet.Activate
これで「(存在しなければ新規に作成された)testSheet1という名前のワークシート」がアクティブになったので、後は一度使用するセル範囲をクリアしてから作業を行えば良いでしょう。 |