ファイルを閉じる
本を読み終わったら、本を閉じて、元にあった場所へ戻す作業があります。Excelも同じで、closeメソッドでブックを閉じます。
(1) 確認メッセージの表示/非表示
何かの編集を行い、その変更をまだ保存していない状態でブックを閉じようとしたとき「保存しないで閉じてもいいですか」の確認メッセージが表示されます。今回は読み取り専用で開いているので確認メッセージは表示されません。
【参考】
この確認メッセージを表示したくないときは、ブックを閉じる前に次のコマンドを記述します。
「Applicationオブジェクト」の「DisplayAlertsプロパティ」は、Excelの確認メッセージを表示するかどうかを制御します。「False」を指定すると、確認メッセージが表示されなくなります。このとき、ブックに行った編集は保存されません。
- Application.DisplayAlerts = False
しかし、このままでは通常の処理でもすべて確認メッセージが表示されませんので、Close処理が終わったら「True」に変更しておきましょう。
- Application.DisplayAlerts = True
(2) 上書き保存
もしも「変更は保存する」のメッセージを表示しないのでしたら、次のようにCloseメソッドの前に上書き保存しておきます。
- Workbooks(ブック名).Save
(3) Closeメソッドの使い方
【書式】
Workbooks(ブック名).Close
【練習問題3】
サンプルデータbooks-list.xlsx「図書目録」を開いて「MsgBox関数」を使って、ワークシート「図書」のセルA1の内容を表示して閉じてみましょう。
【解答例】
- Sub 練習問題3() 'ブックを閉じる
- Dim str As String
- Workbooks.Open (ThisWorkbook.Path & "\books-list.xlsx"), ReadOnly:=True
- str = Workbooks("books-list.xlsx").Worksheets("図書").Range("A1").Text
- MsgBox str
- Workbooks("books-list.xlsx").Close
- End Sub
【確認作業】
メッセージボックスが表示されているときに、Alt + Tab キーを押すと、プロパティが画面の中央に表示されます。もう1度Tab キーを押すと、選択するプログラムが右に移動します。音声でアプリケーション名を読み上げますのでブック「books-list.xlsx」が開いていることを確認してください。
Enter キーを押してメッセージボックスを閉じます。
MsgBox関数の使い方
MsgBox関数は、ユーザーにプログラム実行途中で必要に応じて何らかのメッセージを表示することができます。メッセージと共に表示する7種類のボタンの組み合わせにより、ユーザーに処理を選択させることもできます。
それぞれのボタンには、クリックされた時の戻り値が決められていて、その戻り値により、行うべき処理を選択できるからです。
【書式】
MsgBox 表示文字列,[ボタンの種類],[タイトル],
今回は[OK]ボタン」を表示するだけなのでボタンの種類は指定しません。