0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excel VBAでシートを一度に作成する方法

Last updated at Posted at 2024-09-04

Excel VBAでNo1〜No50までのシートを一度に作成する方法

Excelで多数のシートを一度に作成する必要がある場合、手動で作成するのは非常に手間がかかります。そこで、Excel VBAを使用してNo1からNo50までのシートを一度に作成する方法をご紹介します。

手順概要

VBA (Visual Basic for Applications) は、Excelでの自動化を実現する強力なツールです。今回の目的は、VBAを使用して、No1からNo50までのシートを自動で生成するコードを作成し、効率的に複数のシートを作成することです。

コードの紹介

以下は、No1からNo50までのシートを自動的に作成するためのVBAコードです。このコードをExcelのVBAエディタにコピーして実行することで、指定されたシートが簡単に作成されます。

VBAコード

Sub CreateSheets()
    Dim i As Integer
    Dim sheetName As String
    
    Application.ScreenUpdating = False
    
    For i = 1 To 50
        sheetName = "No" & i
        If Not SheetExists(sheetName) Then
            Sheets.Add(After:=Sheets(Sheets.Count)).Name = sheetName
        End If
    Next i
    
    Application.ScreenUpdating = True
End Sub

Function SheetExists(sheetName As String) As Boolean
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets(sheetName)
    On Error GoTo 0
    SheetExists = Not ws Is Nothing
End Function

コードの説明

  1. CreateSheets プロシージャ:

    • このサブプロシージャは、シート名「No1」から「No50」までをループで作成します。
    • Application.ScreenUpdatingFalse に設定することで、シートを作成している間の画面更新を無効にし、処理速度を向上させます。
    • sheetName 変数には、「No1」から「No50」までのシート名が順次割り当てられます。
    • SheetExists 関数を使用して、同じ名前のシートが既に存在するかどうかを確認し、存在しない場合にのみ新しいシートを追加します。
  2. SheetExists 関数:

    • この関数は、指定したシート名が現在のブックに存在するかをチェックします。存在する場合は True を、存在しない場合は False を返します。

使用方法

  1. VBAエディタを開く:

    • Excelを開き、Alt + F11を押してVBAエディタを開きます。
  2. 新しいモジュールを追加:

    • Insert > Module を選択して、新しいモジュールを追加します。
  3. コードを貼り付ける:

    • 上記のVBAコードをコピーして、追加したモジュールに貼り付けます。
  4. コードを実行:

    • F5キーを押すか、VBAエディタの「Run」ボタンをクリックしてコードを実行します。

これで、Excelのワークブックに「No1」から「No50」までのシートが自動的に作成されます。同じ名前のシートが既に存在する場合は、新たに作成されることはありません。

まとめ

VBAを活用することで、Excelでの作業を効率化できます。特に、複数のシートを一度に作成するタスクは手動で行うと時間がかかりますが、このVBAコードを使えば簡単に実行できます。ぜひご自身の業務に活用してみてください。

追記

No.1のシートをコピーして、No.2〜No50のシートを作成するコードについては、以下になります。

Sub CopySheets()
    Dim i As Integer
    Dim sheetName As String
    
    ' "No1"シートが存在するか確認
    If Not SheetExists("No1") Then
        MsgBox "シート 'No1' が存在しません。"
        Exit Sub
    End If
    
    Application.ScreenUpdating = False
    
    ' No2からNo50までのシートを作成
    For i = 2 To 50
        sheetName = "No" & i
        If Not SheetExists(sheetName) Then
            ' "No1"シートをコピーして新しいシートを作成
            Sheets("No1").Copy After:=Sheets(Sheets.Count)
            ActiveSheet.Name = sheetName
        End If
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "シートのコピーが完了しました。"
End Sub

Function SheetExists(sheetName As String) As Boolean
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets(sheetName)
    On Error GoTo 0
    SheetExists = Not ws Is Nothing
End Function
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?