前回 の続きからです。
あとは、ついでに(ファイルを開きっぱなしでは何ですので)開いたブックを閉じるというところまでマクロで自動処理させたいと思います。
5)
それでは、再びマクロの記録を行います。
────────────────────────────+
1.まず始めに、タスクバーからブック「Book1」の方を開いてください。
2.ここで、マクロの記録を開始します。
[ツール(T)] → [マクロ(M)] → [●新しいマクロの記録(R)...]
→ マクロの記録画面が出るのでそのまま[OK]をクリック。
3.そうしたら、今度はタスクバーからブック「data167.xls」の方を
開いてください。
4.次に、いま開いたブック「data167.xls」を下記の操作で閉じます。
[ファイル(F)] → [閉じる(C)] →「保存しますか?」→「はい」
※ここでは必ず「はい」(保存する)を選んでください。
5.マクロの記録を終了します。
[ツール(T)] → [マクロ(M)] → [■記録終了(R)]
────────────────────────────+
これで、下記のようなマクロ(Macro2)が記録されたと思いますので、
++++++++++++++++++++++++++++─
Sub Macro2()
'
Windows("data167.xls").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
++++++++++++++++++++++++++++─
あとは、これを先ほどのMacro1の最後で呼んで(Call Macro2 して)あげればよいだけですので、完成マクロは下記のようになります。
なお、Macro2の最初にあった Windows("data167.xls").Activate の行は特に要らない(ファイル名の2重の指定になってしまう)ので削除してあります。
++++++++++++++++++++++++++++─
Sub Macro1()
'
a = ActiveCell.Value
Range("A2").Select
Workbooks.Open Filename:= _
"C:\Documents and Settings\My Computer\My Documents\data167.xls"
Sheets("Sheet2").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = a
Call Macro2
End Sub
Sub Macro2()
'
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
++++++++++++++++++++++++++++─
転記したい元データのセルを選択した状態でこのMacro1を実行してください。
(今回は、保存して閉じるところまで自動でされますので、実行後に転記先のブック「data167.xls」を普通に開いて確認してみてください。)
今回のブック操作でちょっと注意が必要なのは、2つのブックを開いてる時のどちらのブックを開いて置くのか?という点ですが、
マクロの記録を開始する場合は、必ず記録している元ブックの方(プログラムのある方)を開いてから・・という点だけ注意してください。
今回勉強したブック操作をまとめますと、複数ブックを扱う場合のポイントは、
・ファイル操作は必ずExcelのメニューから行うこと。(フォルダから
ファイル名をダブルクリックして開く操作は、Windowsの操作であって
Excelの操作ではないからマクロは記録されません。)
・マクロの記録開始前には必ず記録させる方のブックを前面に表示させる
こと。(自動作成されるマクロは、マクロの記録開始時に開いている
ブック(前面のブック)に記録保存されます。)
という2点です。それだけご注意いただければバッチリです。
今回はこれで終了です。
▼ YouTube再生25万回突破しました!
「エクセルマクロを10分で理解する(動画)」