2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【課題】No.9 新しいブックを開いて名前を付けて保存するマクロの作成【Excel VBA】

Posted at

はじめに

この課題は全10問中9問目の課題です。
着任時に取り組むことができるExcel VBA初学者向けの課題を作成しました。
今回の課題では、新しいブックを開き、そのブックを指定された名前で保存するマクロを作成していただきます。新しいブックを操作し、ファイル保存処理の基本を理解していただければと思います。

目次

目的

新しいブックを操作し、ファイル保存処理の基本を理解することを目的としています。この課題を通じて、Excelブックの新規作成と保存のプロセスを実践的に学びます。

前提

①この記事の内容を理解するためには、以下の参考記事を先に読むことをおすすめします。
VBAの基礎を理解して課題に取り組んでください。

②今回は例として保存先ファイルパスを「C:\sample\newWorkbook.xlsx」とします。

課題内容

新しいブックを開き、そのブックを指定された名前で保存するマクロを作成してください。

実装手順

1. 標準モジュールを追加する

標準モジュールは、複数のシートやブック全体で使用できるマクロを格納するための場所です。VBAエディタで新しい標準モジュールを追加します。

2. マクロのコードを記述する

  1. ExcelのVBAエディタを開いてください (Alt + F11)
  2. 「挿入」→「標準モジュール」を選択し、以下のコードを入力します
    ※課題内容に取り組み、プログラムを開発した後に確認してください
Sub SaveNewWorkbook()

    Dim wb As Workbook
    Dim filePath As String
    
    ' 新しいブックを作成
    Set wb = Workbooks.Add
    
    ' 保存先のファイルパスを指定
    filePath = "C:\sample\newWorkbook.xlsx"
    
    ' ブックを指定された名前で保存
    wb.SaveAs filePath

End Sub

このコードは、新しいブックを開き、そのブックを指定された名前で保存するマクロです。コードを入力した後、F5キーを押すか、VBAエディタの「実行」ボタンをクリックしてマクロを実行します。

保存先のフォルダ(sample)が存在しない場合、エラーメッセージを表示し、処理を中断するように修正します。以下のコードはその対応策の一例です。

Sub SaveNewWorkbook()

    Dim wb As Workbook
    Dim filePath As String
    Dim fso As Object
    
    ' 保存先のファイルパスを指定
    filePath = "C:\sample\newWorkbook.xlsx"
    
    ' FileSystemObjectを使用して保存先フォルダの存在を確認
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    If Not fso.FolderExists(fso.GetParentFolderName(filePath)) Then
    
        ' フォルダが存在しない場合はエラーメッセージを表示して終了
        MsgBox "指定されたフォルダが存在しません。", vbExclamation
        Exit Sub
        
    End If
    
    ' 新しいブックを作成
    Set wb = Workbooks.Add
    
    ' フォルダが存在する場合のみ保存を実行
    wb.SaveAs filePath
    
End Sub

このコードでは、保存先フォルダが存在しない場合に、エラーメッセージを表示し、処理を中断することで安全にブックの保存を行います。

まとめ

今回の課題では、新しいブックを開いて指定された名前で保存するマクロを実装しました。さらに、保存先フォルダが存在しない場合のエラーハンドリングも学びました。今後は、この基本を応用して、より複雑なファイル操作やエラーハンドリングに挑戦してみてください。

参考記事

  1. ブックを閉じる・保存(Close,Save,SaveAs)
  2. VBAでフォルダ存在チェック
  3. DirとFSO.FileExistsの違い
2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?