【VBA】Excelファイルを新規作成する

VBAで
 ・Excelファイルを新規作成
できます!

PR

VBAコード

ここでは例として、
 ・ブックの新規作成
 ・シート名を「sample」へ変更
 ・セル「B2」に書き込み
 ・デスクトップ配下にファイル「aiueo.xlsx」として保存
をします。
※新規作成する前に、既に同名ファイルが存在するかどうかの確認もします。

Option Explicit

Sub sample()

    Dim excelFilePath As String
    Dim sheetName As String
    Dim fso As Object
    Dim wb As Workbook
    Dim ws As Worksheet
    
    '画面更新を無効化
    Application.ScreenUpdating = False
    
    '作成するExcelファイルパス
    excelFilePath = "C:\Users\user\Desktop\aiueo.xlsx"
    'シート名
    sheetName = "sample"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイルの存在確認
    If Not fso.FileExists(excelFilePath) Then
        'ブックを新規作成
        Set wb = Workbooks.Add
        'シート名を変更
        Set ws = wb.Sheets(1)
        ws.Name = sheetName
        'ブックのセル「B2」に書き込み
        ws.Range("B2") = "VBAから書き込みました。"
        'ブックを保存
        wb.SaveAs excelFilePath
        'ブックを閉じる
        wb.Close
        
        MsgBox "Excelファイルを新規作成しました。"
    Else
        MsgBox "同名ファイルが存在するため、作成を中止しました。"
    End If

    '画面更新を有効化
    Application.ScreenUpdating = True
    
End Sub

「新規作成するExcelファイルのパス」を指定します(15行目)。
「シート名」を指定します(17行目)。

「Workbooks」オブジェクトの「Add」メソッドにより、「Workbook」オブジェクトを取得します(24行目)。

「Workbook」オブジェクトの「Sheets」プロパティ(=Sheetsコレクション)により、「Worksheet」オブジェクトを取得します(26行目)。

「Worksheet」オブジェクトの「Name」プロパティに、「シート名」を設定します(27行目)。

「Worksheet」オブジェクトの「Range」プロパティに、「書き込み内容」を設定します(29行目)。

「Workbook」オブジェクトの「SaveAs」メソッドにより、ブックを保存します(31行目)。

「Workbook」オブジェクトの「Close」メソッドにより、ブックを閉じます(33行目)。

PR

実行結果

Excelファイルを新規作成できました。
※デスクトップ配下にファイル「aiueo.xlsx」を作成できました。

実行結果①
実行結果①
実行結果②
実行結果②
実行結果③
実行結果③
PR

参考①

テキストファイルの新規作成もできます。

詳細は以下の記事をご確認ください。

PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Workbooks」オブジェクトの「Add」メソッド


●「Workbook」オブジェクトの「Sheets」プロパティ(=Sheetsコレクション)


●「Worksheet」オブジェクトの「Name」プロパティ


●「Worksheet」オブジェクトの「Range」プロパティ


●「Workbook」オブジェクトの「SaveAs」メソッド


●「Workbook」オブジェクトの「Close」メソッド