【他のレンジ/シート/ブックを更新する】
1 他のレンジを更新
2 他のシートを更新
3 逆Z式並びで更新
4 複数シートを更新
5 他のブックを更新
6 他のブックをオープン・クローズ
7 新規ブックを作成し更新
今回は、Excel VBA/マクロによって、
入力ブック及び出力ブックをオープンして、入力ブックからデータを読みとり、
出力ブックへデータを書きこみ、入力ブックをセーブせずクローズ、
出力ブックをセーブしてクローズするマクロをつくってみます。
入力ブックと出力ブックの間でデータを読み書きすることになるため、
今回も、そのマクロの実行用ブックを作成してみます。
入力ブック・出力ブック・マクロ実行用ブックの関連図は次のようになります。
【『他のブックから他のブックへ更新マクロ2』実行前】
【『他のブックから他のブックへ更新マクロ2』実行後】
最初に、10問の漢字文字列を用意した『漢字入力帳.xlsx』を作成しますが、
今回はそのブックをマクロでオープンすることになるので、予めブックの保存先を決めておきます。
パソコンのCドライブの直下にExcelマクロというフォルダを作成し、更にその中に漢字入力帳という
フォルダを作成しておきます。
その漢字入力帳というフォルダの中に『漢字入力帳.xlsx』を保存しておきます。
続けて、白紙の『漢字問題集.xlsx』・『漢字解答集.xlsx』を作成しますが、
今回はそれらのブックをマクロでオープンすることになるので、予めブックの保存先を決めておきます。
パソコンのCドライブの直下のExcelマクロというフォルダの中に、漢字学習帳というフォルダを
作成しておきます。
その漢字学習帳というフォルダの中に白紙の『漢字問題集.xlsx』・『漢字解答集.xlsx』を保存しておきます。
『漢字入力帳』・『漢字問題集』・『漢字解答集』ブックをオープンして、
『漢字入力帳』ブックからデータを読みとり、
『漢字問題集』・『漢字解答集』ブックへデータを書きこみ、
『漢字入力帳』ブックをセーブせずクローズ、
『漢字問題集』・『漢字解答集』ブックをセーブしてクローズする
マクロを実行するためのワークブックを作成します。
前回使用したExcelマクロ有効ブックをコピーして、
次の画像のようなExcelマクロ有効ブック『10_他のブックを更新2.xlsm』を作成します。
今回は、『漢字入力帳』・『漢字問題集』・『漢字解答集』ブックを、マクロでオープン・クローズする
ことになるため、それらの保存先のパス、もしくは、フルパスを指定することになります。
『漢字入力帳』ブックの保存先フォルダとして『C5』に『C:\Excelマクロ\漢字入力帳』を、
保存先ファイルとして『D5』に『漢字入力帳.xlsx』を記入します。
『漢字問題集』ブックの保存先フォルダとして『C8』に『C:\Excelマクロ\漢字学習帳』を、
保存先ファイルとして『D8』に『漢字問題集.xlsx』を記入します。
『漢字解答集』ブックの保存先フォルダとして『C9』に『C:\Excelマクロ\漢字学習帳』を、
保存先ファイルとして『D9』に『漢字解答集.xlsx』を記入します。
パスはファイルやフォルダの置いてある場所のことです。
今回のケースでは、『C:\Excelマクロ\漢字入力帳』や『C:\Excelマクロ\漢字学習帳』のことをいいます。
フルパスはファイルやフォルダの置いてある場所にファイル名を付け足したものです。
今回のケースでは、
『C:\Excelマクロ\漢字入力帳\漢字入力帳.xlsx』、
『C:\Excelマクロ\漢字学習帳\漢字問題集.xlsx』、
『C:\Excelマクロ\漢字学習帳\漢字解答集.xlsx』となります。
それでは、『漢字入力帳』・『漢字問題集』・『漢字解答集』ブックをオープンして、
『漢字入力帳』ブックからデータを読みとり、
『漢字問題集』・『漢字解答集』ブックへデータを書きこみ、
『漢字入力帳』ブックをセーブせずクローズ、
『漢字問題集』・『漢字解答集』ブックをセーブしてクローズするプログラムを作成しましょう。
宣言部を改修します。
フォルダ名列_変換実行シート『FolderNmCm_Cnv』に『3』を設定して定数宣言
Public Const FolderNmCm_Cnv = 3
ブック名列_変換実行シート『BookNmCm_Cnv』に『4』を設定して定数宣言
Public Const BookNmCm_Cnv = 4
読取フォルダ『EFolder』を文字列型として変数宣言
Public EFolder As String
読取ファイルフルパス『EPath』を文字列型として変数宣言
Public EPath As String
書込フォルダ『WFolder』を文字列型として変数宣言
Public WFolder As String
問題集ファイル_書込ワークブック『WBookMD』を文字列型として変数宣言
Public WBookMD As String
解答集ファイル_書込ワークブック『WBookKT』を文字列型として変数宣言
Public WBookKT As String
書込ファイルフルパス『WPath』を文字列型として変数宣言
Public WPath As String とします。
【『10_他のブックを更新2.xlsm』_ 宣言部】
処理部を改修します。
『10_他のブックを更新2.xlsm』のマクロでは、
『漢字入力帳』・『漢字問題集』・『漢字解答集』ブックをオープンして、
『漢字入力帳』ブックからデータを読みとり、
『漢字問題集』・『漢字解答集』ブックへデータを書きこみ、
『漢字入力帳』ブックをセーブせずクローズ、
『漢字問題集』・『漢字解答集』ブックをセーブしてクローズします。
ワークブックをオープンするときは、『Workbooks.Open』メソッドを使用します。
『漢字入力帳』ブックをオープンするときは、『Workbooks.Open』メソッドをつかい、
FileNameに『C:\Excelマクロ\漢字入力帳\漢字入力帳.xlsx』を指定して、
Workbooks.Open (“C:\Excelマクロ\漢字入力帳\漢字入力帳.xlsx”)
『漢字問題集』ブックをオープンするときは、『Workbooks.Open』メソッドをつかい、
FileNameに『C:\Excelマクロ\漢字学習帳\漢字問題集.xlsx』を指定して、
Workbooks.Open (“C:\Excelマクロ\漢字学習帳\漢字問題集.xlsx”)
『漢字解答集』ブックをオープンするときは、『Workbooks.Open』メソッドをつかい、
FileNameに『C:\Excelマクロ\漢字学習帳\漢字解答集.xlsx』を指定して、
Workbooks.Open (“C:\Excelマクロ\漢字学習帳\漢字解答集.xlsx”) とします。
ワークブックをクローズするときは、『Workbooks( ).Close』メソッドを使用します。
ワークブックをクローズするときに、それをセーブつまり保存するかどうかは、
引数『SaveChanges』に指定する定数によって決まります。
『漢字問題集』ブックをセーブしてクローズするときは、『Workbooks( ).Close』メソッドをつかい、
ブック名に『漢字問題集.xlsx』、SaveChangesに『True:保存する』を指定して、
Workbooks(“漢字問題集.xlsx”).Close SaveChanges:=True
『漢字解答集』ブックをセーブしてクローズするときは、『Workbooks( ).Close』メソッドをつかい、
ブック名に『漢字解答集.xlsx』、SaveChangesに『True:保存する』を指定して、
Workbooks(“漢字解答集.xlsx”).Close SaveChanges:=True
『漢字入力帳』ブックをセーブせずクローズするときは、『Workbooks( ).Close』メソッドをつかい、
ブック名に『漢字入力帳.xlsx』、SaveChangesに『False:保存しない』を指定して、
Workbooks(“漢字入力帳.xlsx”).Close SaveChanges:=False とします。
処理部を改修します。
漢字入力帳フォルダ名・ワークブック名・フルパス名の取得
EFolder = Workbooks(ThisBook).Worksheets(ConvertSheet) _
.Cells(ENTFil読取行_Cnv, FolderNmCm_Cnv).Value
EBook = Workbooks(ThisBook).Worksheets(ConvertSheet) _
.Cells(ENTFil読取行_Cnv, BookNmCm_Cnv).Value
EPath = EFolder & "\" & EBook
フルパスを指定して漢字入力帳ブックを開く
Workbooks.Open (EPath)
漢字問題集フォルダ名・ワークブック名・フルパス名の取得
WFolder = Workbooks(ThisBook).Worksheets(ConvertSheet) _
.Cells(MDFil読取行_Cnv, FolderNmCm_Cnv).Value
WBookMD = Workbooks(ThisBook).Worksheets(ConvertSheet) _
.Cells(MDFil読取行_Cnv, BookNmCm_Cnv).Value
WPathMD = WFolder & "\" & WBookMD
フルパスを指定して漢字問題集ブックを開く
Workbooks.Open (WPathMD)
漢字解答集フォルダ名・ワークブック名・フルパス名の取得
WFolder = Workbooks(ThisBook).Worksheets(ConvertSheet) _
.Cells(KTFil読取行_Cnv, FolderNmCm_Cnv).Value
WBookKT = Workbooks(ThisBook).Worksheets(ConvertSheet) _
.Cells(KTFil読取行_Cnv, BookNmCm_Cnv).Value
WPathKT = WFolder & "\" & WBookKT
フルパスを指定して漢字解答集ブックを開く
Workbooks.Open (WPathKT)
漢字入力帳ブックを保存せずに閉じる
Workbooks(EBook).Close SaveChanges:=False
漢字問題集ブックを保存して閉じる
Workbooks(WBookMD).Close SaveChanges:=True
漢字解答集ブックを保存して閉じる
Workbooks(WBookKT).Close SaveChanges:=True
【サブプロシージャ『他のブックから他のブックへ更新2』】
サブプロシージャ『他のブックから他のブックへ更新』は、『他のブックから他のブックへ更新2』に
名称を変更しておきます。
【サブプロシージャ『ワークシート更新』】
これで、Excelマクロ有効ブック『10_他のブックを更新2.xlsm』のプログラムが完了しました。
そこで、『更新』ボタンに、マクロ『他のブックから他のブックへ更新2』をセットします。
それでは、『漢字入力帳.xlsx』・『漢字問題集.xlsx』・『漢字解答集.xlsx』を閉じた状態で、
『更新』ボタンをクリックしてマクロ『他のブックから他のブックへ更新2』を実行してみましょう。
『漢字入力帳』・『漢字問題集』・『漢字解答集』ブックをオープンして、『漢字入力帳』ブックからデータを読みとり、
『漢字問題集』・『漢字解答集』ブックへデータを書きこみ、『漢字入力帳』ブックをセーブせずクローズ、
『漢字問題集』・『漢字解答集』ブックをセーブしてクローズしました。
2023-03-19
2021-12-20
2021-12-12