はじめに
この課題は全10問中9問目の課題です。
着任時に取り組むことができるExcel VBA初学者向けの課題を作成しました。
今回の課題では、新しいブックを開き、そのブックを指定された名前で保存するマクロを作成していただきます。新しいブックを操作し、ファイル保存処理の基本を理解していただければと思います。
目次
目的
新しいブックを操作し、ファイル保存処理の基本を理解することを目的としています。この課題を通じて、Excelブックの新規作成と保存のプロセスを実践的に学びます。
前提
①この記事の内容を理解するためには、以下の参考記事を先に読むことをおすすめします。
VBAの基礎を理解して課題に取り組んでください。
②今回は例として保存先ファイルパスを「C:\sample\newWorkbook.xlsx」とします。
課題内容
新しいブックを開き、そのブックを指定された名前で保存するマクロを作成してください。
実装手順
1. 標準モジュールを追加する
標準モジュールは、複数のシートやブック全体で使用できるマクロを格納するための場所です。VBAエディタで新しい標準モジュールを追加します。
2. マクロのコードを記述する
- ExcelのVBAエディタを開いてください (
Alt + F11
) - 「挿入」→「標準モジュール」を選択し、以下のコードを入力します
※課題内容に取り組み、プログラムを開発した後に確認してください
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
このコードでは、保存先フォルダが存在しない場合に、エラーメッセージを表示し、処理を中断することで安全にブックの保存を行います。
まとめ
今回の課題では、新しいブックを開いて指定された名前で保存するマクロを実装しました。さらに、保存先フォルダが存在しない場合のエラーハンドリングも学びました。今後は、この基本を応用して、より複雑なファイル操作やエラーハンドリングに挑戦してみてください。