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