VBA ファイルの保存 – 20の簡単な例

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 8, 2023

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コードビルダーです! vba save as もっと詳しく

コードが格納されているワークブックを保存する

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

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples