『複数シートを一気に追加する方法(ピポットテーブル)』(そむ)
名前を付けた複数シートを一気に作成したい場合、ピポットテーブルを利用して作成しています。
その際、別のシートにシート名の一覧を入力しているのですが、そこに入力した順番通りにシートを作成する方法はありますか?
1月〜12月の数字や、50音順とかではありません。
(例:sheet1に東京、sheet2に大阪、sheet3に名古屋、sheet4に福岡、sheet5に北海道など)
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
前提条件として、シート名を記載しているのはA列とする
Sub test()
Dim indexSheet As Worksheet Dim wsName As String Dim i As Long Dim lastRow As Long Dim newSheet As Worksheet
' 参照「Index」シート Set indexSheet = ThisWorkbook.Sheets("Index")
' A列の最終行を取得 lastRow = indexSheet.Cells(indexSheet.Rows.Count, 1).End(xlUp).Row
' 1行目から最終行までループ For i = 1 To lastRow wsName = Trim(indexSheet.Cells(i, 1).Value)
' シート名が空でないかチェック If wsName <> "" Then 'シートの存在Check ' 同名シートが存在しない場合 If Not SheetExists(wsName) Then ' 新しいシートを末尾に追加 Set newSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) newSheet.Name = wsName End If End If Next i
MsgBox "指定された順序でシートを作成しました。" End Sub
' 指定した名前のシートが存在するか?
Function SheetExists(sheetName As String) As Boolean
Dim ws As Worksheet SheetExists = False For Each ws In ThisWorkbook.Sheets If ws.Name = sheetName Then SheetExists = True Exit Function End If Next ws End Function
(暇な人) 2025/05/07(水) 15:47:29
シートを「作成」となるとそれしかないと思います。 できているシートがあって、その順番通りにテーブルを作る、という要望と逆なら関数のみで出来ますが…… (i) 2025/05/07(水) 17:09:16
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.