【ExcelVBA】ワークシートの追加
目次
基本編
ワークシート追加
Sub sample() ThisWorkbook.Worksheets.Add End Sub
名前を付けたワークシート追加
Sub Sample() ThisWorkbook.Worksheets.Add.Name = "在庫" End Sub
ワークシート追加してから名前を付ける
パターン1Sub Sample() ThisWorkbook.Worksheets.Add ThisWorkbook.ActiveSheet.Name = "在庫" End Sub
パターン2
Sub Sample() Dim NewWS As Worksheet Set NewWS = ThisWorkbook.Worksheets.Add() NewWS.Name = "在庫" End Sub
先頭に名前を付けたワークシート追加
Sub Sample() ThisWorkbook.Worksheets.Add(Before:=Worksheets(1)).Name = "在庫" End Sub
末尾に名前を付けたワークシート追加
Sub Sample() ThisWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "在庫" End Sub
先頭にワークシート追加してから名前を付ける
パターン1Sub Sample() ThisWorkbook.Worksheets.Add before:=Worksheets(1) ThisWorkbook.ActiveSheet.Name = "在庫" End Sub
パターン2 ※Addの後ろは()でくくります。
Sub Sample() Dim NewWS As Worksheet Set NewWS = ThisWorkbook.Worksheets.Add(before:=Worksheets(1)) NewWS.Name = "在庫" End Sub
末尾にワークシート追加してから名前を付ける
パターン1Sub Sample() ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count) ThisWorkbook.ActiveSheet.Name = "在庫" End Sub
パターン2 ※Addの後ろは()でくくります。
Sub Sample() Dim NewWS As Worksheet Set NewWS = ThisWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count)) NewWS.Name = "在庫" End Sub
先頭に3枚のワークシート追加
Sub Sample() ThisWorkbook.Worksheets.Add before:=Worksheets(1), Count:=3 End Sub
末尾に3枚のワークシート追加
Sub Sample() ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count), Count:=3 End Sub
グラフシート追加
Sub Sample() ThisWorkbook.Charts.Add End Sub※ Charts の箇所を Worksheets に置き換えればワークシート追加になります。
応用編
自ブックでワークシートが存在しないときに追加
Sub Sample() Dim TargetWS As String Dim TargetChk As Variant TargetWS = "Sheet8" '追加したいワークシート名明記 On Error Resume Next ' エラー発生時の継続処理有効化 Set TargetChk = Nothing Set TargetChk = ThisWorkbook.Worksheets(TargetWS) On Error GoTo 0 ' エラー発生時の継続処理無効化 If TargetChk Is Nothing Then 'ワークシートがない ThisWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = TargetWS Else 'ワークシートがある MsgBox "安心してください。" & TargetWS & " は、ありますよ!" End If Set TargetChk = Nothing End Sub※6行目のワークシート名を書き換えてください。
他ブックでワークシートが存在しないときに追加
Sub Sample() Dim TargetWB As String Dim TargetWS As String Dim TargetChk As Variant TargetWB = "TEST.xlsx" '対象ブック名明記 TargetWS = "Sheet8" '追加したいワークシート名明記 On Error Resume Next ' エラー発生時の継続処理有効化 Set TargetChk = Nothing Set TargetChk = Workbooks(TargetWB) On Error GoTo 0 ' エラー発生時の継続処理無効化 If TargetChk Is Nothing Then MsgBox TargetWB & " は開いてる?" Exit Sub End If On Error Resume Next ' エラー発生時の継続処理有効化 Set TargetChk = Nothing Set TargetChk = Workbooks(TargetWB).Worksheets(TargetWS) On Error GoTo 0 ' エラー発生時の継続処理無効化 If TargetChk Is Nothing Then 'ワークシートがない Workbooks(TargetWB).Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = TargetWS Else 'ワークシートがある MsgBox "安心してください。" & TargetWB & " に " & TargetWS & " は、ありましたよ!" End If Set TargetChk = Nothing End Sub※7行目のブック名を書き換えてください。
※8行目のワークシート名を書き換えてください。
※17行目でブックが開いていることを確認しています。開いていないときは処理を中止させています。
ディスカッション
コメント一覧
まだ、コメントがありません