【他のレンジ/シート/ブックを更新する】
4 セルで指定したシートを更新
5 複数シートを連続更新
6 Subプロシージャの定義と呼び出し
7 あるブックから別ブックを更新
8 他のブックをオープン・クローズ
9 テンプレートから出力ブックを作成し更新
10 ブック保存時の確認メッセージの非表示
ブック保存時の確認メッセージの非表示
今回は、Excel VBA/マクロによって、既に存在するブックと同じファイル名で
ブックを保存しようとしたときに自動的に表示される確認メッセージを非表示にします。
それから、しばらく経ってから、『10_あるブックから別ブックを更新3.xlsm』の
『更新』ボタンをクリックして、マクロ『他のブックから他のブックへ更新3』を実行してみました。
すると、
『この場所に、’ C:\Excelマクロ\漢字学習帳\漢字問題集V10.xlsx’
という名前のファイルが既にあります。置き換えますか?』
と書いてあるメッセージが表示されました。
これは、保存しようとしているファイルが既に存在するときに、
自動的に表示される確認メッセージです。
『E11』の『バージョン』が『V10』のままで、
今回作成されるファイルの名前が『漢字問題集V10.xlsx』となり、
前回マクロを実行したときに作成されたファイル名と全く同じ名前になったから、
この確認メッセージが表示されました。
Excelの確認メッセージを表示する必要が全くないときは、
その確認メッセージを表示しないようにすることができます。
Excelの確認メッセージを表示しないようにするには、
『Application.DisplayAlerts』に『False (確認メッセージを表示しない)』を指定します。
『漢字学習帳テンプレート』ブックから『漢字問題集』ブックを新規作成するときに、
Excelの確認メッセージを表示しないようにするには、
『漢字学習帳テンプレート』ブックから『漢字問題集』ブックを新規作成する
コードの直前に、Excelの確認メッセージを表示しないためのコード
『Application.DisplayAlerts = False』を記述します。
Application.DisplayAlerts = False
Workbooks(TBook).SaveAs (WPath)
Excelの確認メッセージを表示しないようにするのは、
『漢字学習帳テンプレート』ブックから『漢字問題集』ブックを新規作成する
コードを実行するときだけで良いので、
『漢字学習帳テンプレート』ブックから『漢字問題集』ブックを新規作成する
コードの直後に、Excelの確認メッセージを表示するためのコード
『Application.DisplayAlerts = True』を記述します。
Application.DisplayAlerts = True
『漢字学習帳テンプレート』ブックから『漢字解答集』ブックを新規作成するときに、
Excelの確認メッセージを表示しないようにするために、
Application.DisplayAlerts = False
Workbooks(TBook).SaveAs (WPath)
再び、Excelの確認メッセージを表示するために、
Application.DisplayAlerts = True
とします。
【サブプロシージャ『他のブックから他のブックへ更新3ADF』】
サブプロシージャ『他のブックから他のブックへ更新3』をコピーして、
『他のブックから他のブックへ更新3ADF』に名称を変更した後、先ほどの改修をします。
Sub 他のブックから他のブックへ更新3ADF()
ThisBook = ActiveWorkbook.Name
Cst = ActiveSheet.Name
EFolder = Workbooks(ThisBook).Worksheets(Cst).Range(入力帳フォルダセル_Cst).Value
EBook = Workbooks(ThisBook).Worksheets(Cst).Range(入力帳ファイルセル_Cst).Value
EPath = EFolder & "\" & EBook
Workbooks.Open (EPath)
TFolder = Workbooks(ThisBook).Worksheets(Cst).Range(テンプレートフォルダセル_Cst).Value
TBook = Workbooks(ThisBook).Worksheets(Cst).Range(テンプレートフォルダセル_Cst).Value
TPath = TFolder & "\" & TBook
Vsn = Workbooks(ThisBook).Worksheets(Cst).Range(バージョンセル_Cst).Value
Workbooks.Open (TPath)
WFolderMD = Workbooks(ThisBook).Worksheets(Cst).Range(問題集フォルダセル_Cst).Value
WBookMD = Workbooks(ThisBook).Worksheets(Cst).Range(問題集ファイルセル_Cst).Value _
& Vsn & ".xlsx"
WPath = WFolderMD & "\" & WBookMD
Application.DisplayAlerts = False
Workbooks(TBook).SaveAs (WPath)
Application.DisplayAlerts = True
Workbooks(WBookMD).Worksheets(1).Name = WSheetMD
Workbooks.Open (TPath)
WFolderKT = Workbooks(ThisBook).Worksheets(Cst).Range(解答集フォルダセル_Cst).Value
WBookKT = Workbooks(ThisBook).Worksheets(Cst).Range(解答集ファイルセル_Cst).Value _
& Vsn & ".xlsx"
WPath = WFolderKT & "\" & WBookKT
Application.DisplayAlerts = False
Workbooks(TBook).SaveAs (WPath)
Application.DisplayAlerts = True
Workbooks(WBookMD).Worksheets(1).Name = WSheetKT
'◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 漢字問題集 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆
WBook = WBookMD
Wst = WSheetMD
Call = ワークシート更新
'◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 漢字解答集 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆
WBook = WBookKT
Wst = WSheetKT
Call = ワークシート更新
Workbooks(WBookMD).Close SaveChanges:=True
Workbooks(WBookKT).Close SaveChanges:=True
Workbooks(EBook).Close SaveChanges:=False
End Sub
これで、サブプロシージャ『他のブックから他のブックへ更新3ADF』の改修が完了しました。
そこで、『更新』ボタンに、マクロ『他のブックから他のブックへ更新3ADF』をセットします。
それでは、『10_あるブックから別ブックを更新3.xlsm』以外の全てのExcelファイルを閉じた状態で、
『更新』ボタンをクリックしてマクロ『他のブックから他のブックへ更新3 ADF』を実行してみましょう。
Excelの確認メッセージが表示されずに、『漢字問題集』・『漢字解答集』ブックが上書きされました。