お世話になります。
今回、VB6とACCESS2000とEXCEL2000を使用してACCESSでクエリを実行してその結果をEXCELに出力し、更にEXCEL上で編集してそれを保存するといった一連の動作をVB6フォームで作成したコマンドボタンを押すと実行されるというものを作りたいのです。とりあえずACCESSからEXCELに出力するのはできたのですが出力されたEXCEL(起動中)の編集が出来なくて悩んでます。とりあえず、ネット上で調べながらこんな感じでソースを書いてみたのですがどこがおかしいかのかさっぱり解らないのです。
どなたかご教授していただけませんでしょうか?
よろしくお願い致します。
Dim objApp As Object
Dim objbook As Object
Dim objsheet As Object
Set objApp = GetObject(, "Excel.Application")
Set objbook = objApp.ActiveWorkbook
Set objsheet = objbook.Worksheets("AA") '←シート名
objApp.DisplayAlerts = False
--省略--
objsheet.SaveAs "C:\Documents and Settings\hopewin\MyDocuments\AAA.xls"
objApp.Quit
Set objsheet = Nothing
Set objook = Nothing
Set objApp = Nothing
以上です。よろしくお願い致します。
ぱっと見、
GetObjectでブック名(ファイル名)を明示的に指定するとか、
ActiveWorkbookに頼らないで、ブック名を明示的に指定するとか、
objApp.Workbooks("ブック名").Activate で目的のブックを
ActiveWorkbookにするようにするとか。
ActiveWorkbookって、危険ですよね。
>ActiveWorkbookにするようにするとか。
ActiveWorkbookにしても、別のシートをユーザが選んだら
たちまち動かなくなる。
Set MyBook = objApp.Workbooks("ブック名")
とかで、ActiveとかSelectionとかに依存しない書き方にすべきでは?
もげさん、ななさん、お返事ありがとうございます。
お返事遅くなりまして申し訳ございません。
早速、試してみたいと思います。
また、結果を報告したいと思います。
結局、下記のソースにてやりたいことができました。
みなさまありがとうございました。
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = GetObject(, "Excel.Application")
Set xlBook = xlApp.Workbooks("AAA.xls")
Set xlSheet = xlBook.Worksheets("AAA")
xlApp.DisplayAlerts = False
xlApp.Visible = True
xlApp.ActiveWindow.Zoom = 75
--省略--
xlsheet.SaveAs "C:\Documents and Settings\hopewin\MyDocuments\AAA.xls"
xlApp.Quit
Set objsheet = Nothing
Set objook = Nothing
Set objApp = Nothing
ツイート | ![]() |