【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行目でブックが開いていることを確認しています。開いていないときは処理を中止させています。




ディスカッション
コメント一覧
まだ、コメントがありません