VBA を使用してブックを閉じるには Workbook.Close メソッドを使用し、Excel を終了するには Application.Quit メソッドを使用します。
コード例をいくつか示します。 アクティブなワークブックを閉じ、ワークブックに変更がある場合に保存するかどうかを確認します。
次のようにコードをコピーします。
サブCloseWorkbook()
ActiveWorkbook.Close
エンドサブ
プロンプトを回避したい場合は、ワークブックを直接保存して閉じるなど、「SaveChanges」パラメーターを追加できます。
次のようにコードをコピーします。
サブ ClostAndSaveWorkbook()
ActiveWorkbook.Close Savechanges:=True
エンドサブ
保存せずにブックを直接閉じるには、上記のコードの "True" を "False" に変更します。
開いているすべてのワークブックを閉じて、保存するかどうかを確認するプロンプトを表示します。
次のようにコードをコピーします。
サブCloseAllWorkbooks()
エラー時は次へ再開
ワークブック.閉じる
エンドサブ
Excel を終了すると、変更したワークブックを保存するように求められます。
次のようにコードをコピーします。
SubQuitExcel()
アプリケーション.終了
エンドサブ
アクティブなワークブックを保存し、Excel を終了します。
次のようにコードをコピーします。
サブ SaveActiveWorkAndQuit()
ActiveWorkbook.Save
アプリケーション.終了
エンドサブ
次のコードでは、Excel を終了するときにブックを保存するかどうかを確認するメッセージが表示されません。
開いているすべてのワークブックを保存し、Excel を終了します。
次のようにコードをコピーします。
サブ SaveAllAndQuit()
ワークブック内の各 wbk について
wbk.保存
次
アプリケーション.終了
エンドサブ
変更を保存せずに Excel を終了します。
次のようにコードをコピーします。
SubQutiAndNoAlerts()
Application.DisplayAlerts = False
アプリケーション.終了
エンドサブ
VBA での一般的な操作をいくつか示します。
新しいワークブックを開く
次のようにコードをコピーします。
ワークブック.追加
最初のワークブックの名前を取得します
次のようにコードをコピーします。
ワークブック(1).名前
開いているワークブックの数を取得する
次のようにコードをコピーします。
ワークブック数
2 番目に開いているワークブックをアクティブ化する
次のようにコードをコピーします。
ワークブック(2).アクティブ化
ワークブック Chap02.xls をアクティブ化する
次のようにコードをコピーします。
Workbooks("Chap02.xls").Activate
現在アクティブなワークブックは NewChap.xls として保存されます
次のようにコードをコピーします。
ActiveWorkbook.SaveAs ファイル名:="NewChap.xls"
最初のワークブックを閉じます
次のようにコードをコピーします。
ワークブック(1).閉じる
変更を保存せずに現在アクティブなワークブックを閉じる
次のようにコードをコピーします。
ActiveWorkbook.Close SaveChanges:=False
開いているワークブックをすべて閉じます
次のようにコードをコピーします。
ワークブック.閉じる
最後の例を実行した場合は、すべてのワークブックが閉じられています。
ワークシートで使用する前に、必ず新しいワークブックを開いてください。
単一のワークシートを追加する場合は、ワークブックに新しいワークシートを追加する方法、ワークシートまたはワークシートのグループを選択する方法、ワークシートに名前を付ける、コピー、移動、および削除する方法を知っている必要があります。
VB では、各タスクに特殊なメソッドまたはプロパティが必要です。
新しいワークシートを追加する
次のようにコードをコピーします。
ワークシート.追加
最初のワークシートの名前を取得します
次のようにコードをコピーします。
ワークシート(1).名前
「Sheet3」という名前のワークシートを選択します
次のようにコードをコピーします。
ワークシート(3).選択
1 番目、3 番目、4 番目のワークシートを選択します
次のようにコードをコピーします: Worksheets(Array(1,3,4)).Select
「Sheet1」という名前のワークシートをアクティブ化します。
次のようにコードをコピーします。
Worksheets("Sheet1").Activate
シート「Sheet2」をシート「Sheet1」の前に移動します
次のようにコードをコピーします。
Worksheets("Sheet2").Move Before:=Worksheets("Sheet1")
ワークシートの名前を「Sheet2」から「Expenses」に変更します
次のようにコードをコピーします。
Worksheets("Sheet2").Name = "経費"
現在のワークブック内のワークシートの数を取得します
次のようにコードをコピーします。
ワークシート数
現在のワークブックのワークシート「経費」を削除します。
次のようにコードをコピーします。
ワークシート(「経費」).削除