Excel の名前範囲に値のリストがあります。VB コードを記述して、これらの値のリストを使用してワークシートを作成したいと考えています。これらの値のリストは変化し続けます。
コードは次のとおりです。
Sub AddSheets()
Dim cell As Excel.Range
Dim wsWithSheetNames As Excel.Worksheet
Dim wbToAddSheetsTo As Excel.Workbook
Dim i As Integer
i = 0
Set wsWithSheetNames = ActiveSheet
Set wbToAddSheetsTo = ActiveWorkbook
For Each cell In wsWithSheetNames.Range("sheet_name").End(xlDown)
With wbToAddSheetsTo
.Sheets.Add after:=.Sheets(.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = cell.Value
If Err.Number = 1004 Then
Debug.Print cell.Value & " already used as a sheet name"
End If
On Error GoTo 0
End With
Next cell
ここsheet_name
(単一列のセル) は、作成されるシートの名前がダンプされる名前範囲です。枚数は変更になる場合がございます。
上記のコードは正しく機能しません。この範囲の最後の値のシート名でシートを作成するだけです。どこが間違っていますか? 私はVBを初めて使用しています。これを行うためのより良い方法は何ですか?