#author("2016-09-07T23:06:02+09:00","default:Miyashita","Miyashita")
*シートの追加・削除 [#r7f769e3]
作りたいシートが既にあったり,なかったり.~
シートの有無の判定はコードにすると数行だが,毎回書くのは面倒なのでSubを作成.~
 Dim ToF As Boolean
 Dim Sht As Worksheet
 Sub SheetExist(book As Workbook, sheetname As String)
 'シートの有無を判定
 ToF = False
 For Each Sht In book.Worksheets
   If Sht.Name = sheetname Then ToF = True
 Next
 
 '無ければエラーとして終了
 If Not (ToF) Then
     MsgBox "シート " & sheetname & vbCrLf & _
         "が" & book.Name & "にありません。処理を終了します。"
     End
 End If
 
 End Sub
#author("2018-02-21T15:00:18+09:00","default:Miyashita","Miyashita")

 Sub MakeNewSheet(book As Workbook, sheetname As String)
 'シートの有無を判定
 ToF = False
   For Each Sht In book.Worksheets
     If Sht.Name = sheetname Then ToF = True
   Next Sht
 
 '無ければシートを新規作成
   If Not (ToF) Then
       With book.Worksheets
         .Add after:=book.Worksheets(.Count)
         book.Worksheets(.Count).Name = sheetname
       End With
   End If
 End Sub

 Sub SheetDel(book  As Workbook, sheetname As String)
 'シートの有無を判定
 ToF = False
 For Each Sht In book.Worksheets
   If Sht.Name = sheetname Then ToF = True
 Next
 
 'シートが指定ブックにある場合は削除する
 If (ToF) Then
    Application.DisplayAlerts = False
    book.Worksheets(sheetname).Delete
    Application.DisplayAlerts = True
 End If 
 End Sub

ワークブックを指定する引数bookはthisworkbookとか.~
他ファイル(ブック)の中のシートをいじりたい場合は,
 Dim WB as Workbook
 set WB = Workbooks("ファイル名")
とかにして,WBを引数とすればOK.~


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes