【VBA】シートに対する処理

Excel,VBA

VBAでシートに対する処理です。

記載内容 ①シートの追加と削除
②シートの別名保存
③シートの存在チェック

①シートの追加と削除

追加

シートを新規に追加する処理です。

Sub AddSheet()

    Set WS = Sheets.Add(after:=Sheets(Sheets.Count))

End Sub

削除

シートを削除する処理です。

Sub DelSheet()

    Worksheets("シート名").Delete

End Sub

シート名を指定して追加

シート名を指定して追加します。
シート名の重複エラーを回避するために "_時分秒" を付与しています。

Sub AddNamedSheet()

    Set WS = Sheets.Add(after:=Sheets(Sheets.Count))
    WS.Name = "シート名" & "_" & Format(Now, "HNS")

End Sub

②シートの別名保存

アクティブなシートを別ファイルに保存します。
保存場所は実行フォルダで、シート名をファイル名にします。

Sub SheetSave()

    Dim sheetName As String
    sheetName = ActiveSheet.Name

    ActiveSheet.Copy
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & sheetName & ".xlsx"
    ActiveWorkbook.Close

End Sub

③シートの存在チェック

シート名(Sheet1)が存在するかチェックして、結果をメッセージボックスで表示します。

Sub SheetNameCheck()

    Dim WS As Worksheet
    Dim chkFlg As Boolean

    For Each WS In Worksheets
        If WS.Name = "Sheet1" Then
            chkFlg = True
        End If
    Next WS

    If chkFlg = True Then
        MsgBox ("存在します")
    Else
        MsgBox ("存在しません")
    End If

End Sub

Excel,VBA

Posted by junichi