Microsoft Excel VBA で名前を付けて保存

Bilal Shahid 2023年6月21日
  1. VBA の SaveAs 関数とは
  2. 例 1: ワークブックを保存する
  3. 例 2: 新しいワークブックを作成して保存する
  4. 例 3: アクティブなワークブックを保存する
  5. 例 4: すべてのアクティブなワークブックを保存する
  6. 例 5: SaveAs 関数パラメーターを使用する
  7. まとめ
Microsoft Excel VBA で名前を付けて保存

VBA は開発者にさまざまな機能を提供します。 この記事では、VBA の SaveAs メソッドについて学習します。

VBA の SaveAs 関数とは

SaveAs メソッドは、ワークブック オブジェクトを Excel VBA の指定されたパスの保存先に保存します。 ワークブックは、作業中のシートを含む Excel ファイルです。

これらのワークブックには重要なデータが含まれており、SaveAs 機能を使用してコンピュータに保存できます。

注: VBA には、ファイルを保存するための Save 機能もありますが、特定の場所は必要ありません。 さらに、コードを書かずに保存したい場合は、File メニューの Save および Save As オプションを使用するか、Ctrl+ を使用して手動で行うことができます。 >S ショートカット。

構文

VBA での SaveAs 関数の構文は次のとおりです。

expression.SaveAs (FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

関数のパラメーターを見てみましょう。

  1. : 変数の名前はワークブック オブジェクトを表します。 たとえば、ActiveWorkbook 変数を使用して、現在開いているワークブックを指定できます。
  2. FileName: これは保存したいファイル名で、オプションでパスを含みます。 パスが指定されていない場合、ファイルは現在のフォルダーに保存されます。
  3. FileFormat: これは、ファイルを保存する形式を示し、拡張子も決定します。 指定がなく、ファイルを初めて保存する場合、使用される形式は使用中の Excel のバージョンになります。
  4. パスワード: ファイルにパスワードを保持する場合は、ここで 15 文字以下の文字列で指定できます。
  5. WriteResPassword: このパスワードは書き込み予約に使用されます。 誰かがファイルを編集したい場合は、このパスワードを提供する必要があります。そうしないと、読み取り専用モードで開かれます。
  6. ReadOnlyRecommended: True がここに送信されると、ファイルを開くときにメッセージが表示され、このファイルを読み取り専用モードで開くことをお勧めします。
  7. CreateBackup: True がここに送信されると、バックアップ ファイルが作成されます。
  8. AccessMode: ここでは、排他的またはデフォルトなど、保存のアクセス モードを指定できます。
  9. ConflictResolution: このパラメーターは、SaveAs メソッドがファイルの保存中に発生する競合を解決する方法を指定します。 たとえば、1つのオプションは、ユーザーが決定できるようにダイアログ ボックスを提供することです。
  10. AddToMru: このファイルのデフォルト値は False ですが、このファイルを最近使用したリストに追加する場合は True を指定できます。
  11. TextCodepage: このパラメーターは、すべての言語の Excel で無視されます。
  12. TextVisualLayout: このパラメーターは、すべての言語の Excel でも無視されます。
  13. Local: これのデフォルト値は False で、VBA の言語、つまり米国英語でファイルを保存します。 ここでTrueを送信すると、Microsoft Excel の言語でファイルが保存されます。

注: SaveAs 関数のすべてのパラメーターはオプションであり、それらを書き込む必要はありません。

SaveAs メソッドの構文がわかったので、理解を深めるためにいくつかの例を見てみましょう。

例 1: ワークブックを保存する

この例では、名前を指定して SaveAs メソッドを使用してワークブックを特定の場所に保存する方法を示します。 このコードは次のとおりです。

Sub Example1()
Workbooks("Example.xlsm").SaveAs "D:\Example.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

例 2: 新しいワークブックを作成して保存する

新しいワークブックを作成し、ユーザーに名前を尋ねてから保存する例を次に示します。 Workbooks.Add 関数は新しいワークブックを作成し、現在アクティブなワークブックのリストに追加します。

GetSaveAsFileName 関数は、ユーザーからファイル名を取得し、パスの指定にも使用されます。 ファイルごとに異なるパスが必要な場合は、パスを手動で選択すると便利です。

コードを以下に示します。

Sub Example2()

Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
'The loop will provide a check for validating the file name
Loop Until fName <> False
NewBook.SaveAs Filename:=fName

End Sub

例 3: アクティブなワークブックを保存する

この例は、ActiveWorkbook 変数を使用して、現在開いているファイルを保存する方法を示しています。 パスにファイル名を指定する際、以下のコードに示すように、& 演算子と ActiveWorkbook.Name メソッドを使用して連結する必要があります。

Sub Example3()
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
End Sub

例 4: すべてのアクティブなワークブックを保存する

現在作業中のワークブックが複数ある場合でも、ActiveWorkbook 変数を使用して、ループを使用してすべてのワークブックを保存できます。 これは、次のコードを使用して実行できます。

Sub Example4()

Dim Wb As Workbook
For Each Wb In Workbooks
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
Next Wb

End Sub

例 5: SaveAs 関数パラメーターを使用する

この例では、SaveAs 関数のほとんどのパラメーターが、前の例では欠落していたため、どのように指定されているかを確認します。 これは、コードでそれらを記述する方法です。

Sub Example5()

Set WB = Workbooks.Add
WB.SaveAs Filename:="D:Example5.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

End Sub

まとめ

これは、Microsoft Office ユーザーの貴重な時間を節約する便利なプログラミング言語である VBA の SaveAs 関数に関する説明をまとめたものです。 SaveAs メソッドを使用してファイルを特定の場所に保存するさまざまな方法を学習していただければ幸いです。

著者: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub