実現できても理解が足りなくてモヤモヤ(Access VBA)

最近このブログ更新をサボっていて記事数が少ない。
仕事が忙しい上にブログ更新よりもやりたいことがいろいろあって、
さらに夜やたらと・・・眠い!
書くネタはいろいろあるが、一旦サボりだすとサボり癖がつくのだ。

さて言い訳はこれくらいにしておいて・・・
仕事で使うためのAccess VBAコードを趣味レベルで書いている。
あるクエリの結果を既存Excelファイルの指定シートに、指定のセルを基点として書き出すというものだが、
下記「プロシージャA」のように記述すると目的通りの書き出しができるものの、
Excelのダイアログ「保存しますか?」が出てしまう。
今回は無条件に保存してほしいので「保存しますか?」を出したくないのだ。
そこで他人のQ&Aなどを参考に下記「プロシージャB」のように記述したら「保存しますか?」が出なくなった。
とりあえず目的の機能は実現できるようになったのだが、なぜうまくいくのか理解できていなくてモヤモヤしている。
まだまだ勉強が必要なのだが、取り急ぎ仕事をこなさないといけないので理解が後回しになりそう。

プロシージャA(保存しますか?が出る)
-------
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim objEXE As Object

Set db = CurrentDb
Set rs = db.OpenRecordset("クエリ1")
Set objEXE = Excel.Application

objEXE.Workbooks.Open ("Excelファイル名")
objEXE.Worksheets("シート名").Select
objEXE.Cells(5, 1).CopyFromRecordset rs
objEXE.Quit

Set rs = Nothing
Set db = Nothing
-----

プロシージャB(保存しますか?が出ない)
-----
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim objEXE As Object
Dim objWB As Object

Set db = CurrentDb
Set rs = db.OpenRecordset("クエリ1")
Set objEXE = New Excel.Application
Set objWB = objEXE.Workbooks.Open("Excelファイル名")

objWB.Worksheets("シート名").Select
objEXE.Cells(5, 1).CopyFromRecordset rs
objWB.Save
objWB.Close False
objEXE.Quit

Set rs = Nothing
Set db = Nothing
Set objEXE = Nothing
-----







ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

ガッツ(がんばれ!)

この記事へのコメント

2018年06月30日 07:31
お元気なようでホッとしました。
馴染みのブログが更新されてないと、何かあったのかと不安な気持ちになったりして~
難しい事をされてるんですね~
仕事も趣味も、やりたいことがたくさんあるって、素晴らしいです。
お疲れのでませんように~
2018年07月01日 02:11
たぁくんママ さん>
ほぼ毎日の更新だったので、どうしたのかとおもいますよね。
いろいろやりたいことがあるのはいいのですが、時間の使い方が下手なのが困ります。
マイペースでやっています。

この記事へのトラックバック