VBA ファイルの保存 – 20の簡単な例
In this Article
このVBAチュートリアルでは、VBAのSaveとSave Asコマンドを使用してファイルを保存する方法について説明します。
ワークブックの保存 – VBA
VBAの保存コマンドは、保存アイコンをクリックしたり、保存のショートカット(CTRL + S)を使用するのと同じように、Excelファイルを保存することができます。
指定したワークブックを保存する
ワークブックを保存するには、ワークブックオブジェクトを参照し、Saveコマンドを使用します。
Workbooks("savefile.xlsm").Save
アクティブなワークブックを保存する
注:これはVBAコード内の現在アクティブなワークブックであり、実行中のコードを含むThisWorkbookとは異なるものです。
ActiveWorkbook.Save
VBAコーディングが簡単に
VBAのコードをネットで探すのはもうやめて、AutoMacroについてもっと学びましょう。初心者でも最小限のコーディング知識でゼロから手順をコーディングでき、すべてのユーザーの時間を節約する多くの機能を備えたVBAコードビルダーです! もっと詳しく
コードが格納されているワークブックを保存する
ThisWorkbook.Save
開いているすべてのワークブックを保存する
これは、開いているすべてのワークブックをループして、それらを全て保存します。
Dim wb As Workbook
For Each wb In Application.Workbooks
wb.Save
Next wb
開いている読み取り専用ではないワークブックを保存する
注意:読み取り専用でワークブックを開くと、ファイルが保存されません。ファイルを保存するには、名前を付けて保存を使用し、別の名前でファイルを保存する必要があります。
Dim wb As Workbook
For Each wb In Application.Workbooks
If Not wb.ReadOnly Then
wb.Save
End if
Next wb
変数で定義されたワークブックを保存する
ワークブックオブジェクト変数に代入されたワークブックを保存します。
Dim wb as Workbook
set wb = Workbooks("savefile.xlsm")
wb.save
文字列変数で定義されたワークブックを保存する
これは、文字列変数で名前を指定したワークブックを保存します。
Dim wbstring As String
wbstring = "savefile.xlsm"
Workbooks(wbstring).Save
ワークブックを開いた順番で指定して保存する
注:最初に開かれたワークブックは1、2番目なら2、といった具合です。
Workbooks(1).Save
セルの値に基づいてワークブックを保存する
これは、セルの値にある名前のワークブックを保存するものです。
Dim wbstring As String
wbstring = ActiveWorkbook.Sheets("Sheet1").Range("wb_save").Value
Workbooks(wbstring).Save
名前を付けて保存 – VBA
VBAのSaveAsコマンドは、[名前を付けて保存]アイコンをクリックしたり、[名前を付けて保存]ショートカット(Alt > F > A)を使用するのと同様に、Excelファイルを新規ファイルとして保存します。これらの方法は、「名前を付けて保存」を使用する際に、ワークブックを特定するために使用することができます。
SaveAsは、通常の保存と同じように動作しますが、新しいファイルの名前も指定する必要があります。 実際、[名前を付けて保存]には、多くの定義可能な変数があります。
SaveAsの構文
workbookobject .SaveAs(FileName, FileFormat, Password, WriteResPassword, _
ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _
AddToMru, TextCodepage, TextVisualLayout, Local)
SaveAsのすべての引数の完全な説明は以下に含まれています。今のところ、最も一般的な例に焦点を当てます。 注:これらの引数は、括弧で囲んで、または定義された変数として入力することもできます。
Save As の構文の例:
ワークブックに名前を付けて保存 – 同じフォルダ
ActiveWorkbook.SaveAs Filename:= "new"
または
ActiveWorkbook.SaveAs "new"
または
Dim wbstring As String
wbstring = "new"
ActiveWorkbook.SaveAs Filename:= wbstring
ワークブックの名前を付けて保存 – フォルダを指定
ActiveWorkbook.SaveAs Filename:= "C:\new"
または
Dim wbstring As String
wbstring = "C:\new"
ActiveWorkbook.SaveAs Filename:= wbstring
ワークブックの名前を付けて保存 – フォルダとファイル拡張子を指定
ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx"
または
Dim wbstring As String
wbstring = "C:\new.xlsx"
ActiveWorkbook.SaveAs Filename:= wbstring
ワークブックの名前を付けて保存 – フォルダとファイル拡張子を指定する別の方法
ファイル形式をそれ自体の引数で指定することも可能です。
.xlsx = 51 '(Macでは52)
.xlsm = 52 '(Macでは53)
.xlsb = 50 '(Macでは51)
.xls = 56 '(Macでは57)
ActiveWorkbook.SaveAs Filename:= "C:\new", FileFormat:= 51
ワークブックの名前を付けて保存 – ファイルを開くためのパスワードを追加
ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", Password:= "password"
ワークブックの名前を付けて保存 – 書き込み権限のあるパスワードの追加
正しいパスワードが与えられない場合、ワークブックは読み取り専用として開かれます。
ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", WriteRes:= "password"
ワークブックの名前を付けて保存 – 読み取り専用を推奨
Trueを指定すると、ファイルを読み取り専用で開くことを推奨するメッセージボックスが表示されます。
ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", ReadOnlyRecommended:= TRUE
その他の名前を付けて保存する例
名前を付けて保存ダイアログボックスの作成
Save As ダイアログボックスを生成し、ユーザーにファイルを保存するよう指示します。 このシンプルなコードは、すべてのケースで適切であるとは限らないことに留意してください。
Application.GetSaveAsFilename
デフォルトのファイル名で名前を付けて保存ダイアログボックスを作成する
Application.GetSaveAsFilename InitialFilename:="test.xlsx"
新しいワークブックを作成し保存する
このコードは、新しいワークブックを作成し、すぐに保存します。
Dim wb As Workbook
Set wb = Workbooks.Add
Application.DisplayAlerts = False
wb.SaveAs Filename:="c:\Test1.xlsx"
Application.DisplayAlerts = True
保存するときの警告を無効にする
VBAで保存の作業をしていると、様々な警告やプロンプトに出くわすことがあります。警告を無効にするには、次のコードを追加してください。
Application.DisplayAlerts=False
警告を再び有効にするには以下のようにします。
Application.DisplayAlerts=True