Excel

【Excel】VBAマクロでファイル作成(xlsxやcsv、テキストファイル:txt:ダイヤログで名前指定:新規ファイル:新しいブック:Workbooks.Add、SaveAs、Application.GetSaveAsFilename、Close、CreateFolder、CreateTextFileなど)する方法

当サイトでは記事内に広告を含みます

この記事ではVBAマクロでファイル作成(xlsxやcsv、txt:ダイヤログで名前指定:新規ファイル:新しいブック)する方法について解説していきます。

ポイントとしてはWorkbooks.Add、SaveAs、Application.GetSaveAsFilename、Close、CreateFolder、CreateTextFileを使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

 

VBAマクロで新規のファイル作成(excelでrenshu.xlsx)する方法【Workbooks.Add、SaveAs】

それではまず、VBAマクロで新規のファイル作成(excelでrenshu.xlsx)する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub sinkiexcelsakusei()
    ' 変数を定義します
    Dim sinkirenshuexcelwb As Workbook
    
    ' 新しいワークブックを作成します
    Set sinkirenshuexcelwb = Workbooks.Add
    
    ' 新しいワークブックを"renshu.xlsx"という名前で保存します
    sinkirenshuexcelwb.SaveAs Filename:="renshu.xlsx"
    
    ' 保存が完了したら、新しく作成したワークブックをアクティブにします
    sinkirenshuexcelwb.Activate
    
    MsgBox "新規のExcelファイル(renshu.xlsx)を作成しました。", vbInformation
End Sub

コードのAlt+F8を押し、マクロ選択画面でsinkiexcelsakusei関数を実行します。

このコードでは、以下のステップで新規Excelファイルを作成しています。

1. sinkirenshuexcelwb変数を定義し、新しいワークブックを作成して変数に格納します。
2. SaveAsメソッドを使用して、新しいワークブックを”renshu.xlsx”という名前で保存します。
3. Activateメソッドを使用して、新しく作成したワークブックをアクティブにします。
4. 最後にMsgBoxを使用して、新規ファイルの作成が完了したことをユーザーに通知します。

 

VBAマクロで新規のファイル作成(.txt)する方法、C直下のrenshuフォルダ内にダイヤログで名前指定【Application.GetSaveAsFilename、Close、CreateFolder、CreateTextFile】

続いては、VBAマクロで新規のファイル作成(.txt)する方法、C直下のrenshuフォルダ内にダイヤログで名前指定について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub sinkitxtsakusei()
    ' 変数を定義します
    Dim txtsakuseifolder As String
    Dim txtsakuseiname As Variant
    Dim sinkitxtstream As TextStream
    Dim sinkitxtfile As String
    
    ' C直下に"renshu"フォルダが存在しない場合は作成します
    txtsakuseifolder = "C:\renshu"
    If Dir(txtsakuseifolder, vbDirectory) = "" Then
        MkDir txtsakuseifolder
    End If
    
    ' ダイアログを表示して、新規作成するテキストファイルの名前を取得します
    txtsakuseiname = Application.GetSaveAsFilename(InitialFileName:="新規テキストファイル.txt", FileFilter:="テキストファイル(*.txt),*.txt", Title:="新規テキストファイルの保存")
    
    ' キャンセルボタンが押された場合は、処理を終了します
    If txtsakuseiname = False Then
        Exit Sub
    End If
    
    ' 新しいテキストファイルを作成し、テキストストリームを開きます
    sinkitxtfile = txtsakuseifolder & "\" & Dir(txtsakuseiname)
    Set sinkitxtstream = CreateObject("Scripting.FileSystemObject").CreateTextFile(sinkitxtfile)
    
    ' テキストファイルに書き込みます
    sinkitxtstream.WriteLine "これは新しく作成されたテキストファイルです。"
    
    ' テキストストリームを閉じ、オブジェクトを解放します
    sinkitxtstream.Close
    Set sinkitxtstream = Nothing
    
    MsgBox "新規のテキストファイルを作成しました。", vbInformation
End Sub

コードのAlt+F8を押し、マクロ選択画面でsinkitxtsakusei関数を実行します。

このコードでは、以下のステップで新規テキストファイルを作成しています。

1. txtsakuseifolder変数にC直下の”renshu”フォルダのパスを格納し、そのフォルダが存在しない場合はMkDirを使用して作成します。
2. Application.GetSaveAsFilenameを使用して、ダイアログを表示し、新規作成するテキストファイルの名前をユーザーに指定してもらいます。
3. ユーザーがキャンセルボタンを押した場合は、処理を終了します。
4. CreateTextFileメソッドを使用して、新しいテキストファイルを作成し、テキストストリームを開きます。
5. WriteLineメソッドを使用して、テキストファイルに文字列を書き込みます。
6. Closeメソッドを使用してテキストストリームを閉じ、オブジェクトを解放します。
7. 最後にMsgBoxを使用して、新規ファイルの作成が完了したことをユーザーに通知します。

 

 

まとめ VBAマクロでファイル作成(ダイヤログで名前指定:新規ファイル:テキスト形式:txt:新しいブック:Workbooks.Add、SaveAs、Application.GetSaveAsFilename、Close、CreateFolder、CreateTextFileなど)する方法

ここではVBAマクロでファイル作成(excelのxlsx、txt:ダイヤログで名前指定:新規ファイル:新しいブック:Workbooks.Add、SaveAs、Application.GetSaveAsFilename、Close、CreateFolder、CreateTextFileなど)する方法について解説しました。

マクロの扱いになれ、さらに快適な生活を送っていきましょう。