|
初めまして。
Excelに投稿すべきかAccessに投稿すべきか迷ったのですが、こちらに書かせていただきました。よろしくお願いいたします。
Accessのプロシージャに、
Dim xl As Object
Set xl = CreateObject("Excel.sheet")
・・・処理を記述・・・
xl.SaveAs "C:\Documents and Settings\" & d & "\デスクトップ\(ファイル名).xls"
Set xl = Nothing
のように記述をして、DAOでAccessのテーブルの内容から必要なものをExcelに描き出してデスクトップ上にファイルを作成するという処理を作っています。
このプロシージャの最後にCallで別プロシージャを呼び出し、
そこには以下のような記載をしています。
Dim tExcel As Object
Dim tObj As Object
Set tExcel = CreateObject("Excel.Application")
Set tObj = tExcel.Application.Workbooks.Open("C:\Documents and Settings\" & d & "\デスクトップ\(ファイル名).xls")
tExcel.Visible = False
・・・処理を記述・・・ ☆ 問題の部分
tObj.Close SaveChanges:=True
Set tObj = Nothing
tExcel = Nothing
このプロシージャでは最初に書いたプロシージャで作成したデスクトップ上の
Excelファイルに接続し、書式の変更などをします。
イメージとしては、1つめのプロシージャでExcelファイルを作って保存し、
2つめのプロシージャでそのファイルを再度開いて各種書式変更・・・
というような感じです。
2つめの処理は別のものでも使う可能性があったのでPublicプロシージャと
しています。
さて、Accessのコマンドボタンを押すとこれらのプロシージャが正常に作動して
デスクトップ上にExcelファイルが作成され、2つめのプロシージャの書式設定が
うまく適用されて保存されます。
ところが・・・正常にできたExcelファイルを削除したり名前を変更した後で
もう一度このコマンドボタンをクリックすると、
1つめのプロシージャは正常に動きますが、2つめで必ず実行時エラー91が
発生します。
具体的に発生する場所は、☆の部分に記載した以下のプロシージャの2行目です。
tObj.Worksheets(1).Range("A1").Select
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
End With
以下続く・・・
1回目が正常に動いているだけに、余計に意味がわからず困っています。
このエラー番号の書き込みは様々なサイトで見たのですが、それでもわからず・・・。
必要な情報がすべて記載できていないかもしれませんので、ご指摘いただければ
追記させていただきます。
こちらで質問してよかったのかわかりませんが、ぜひ教えていただければと思います。
よろしくお願いいたします。
|
|