- ベストアンサー
アクセスからエクセルへのワークシートの上書き方法を教えてください
- アクセスからエクセルへインポートする際に、同じ名前のワークシートに上書きできない問題が発生しています。
- VarAccessという変数を使用してワークシート名を指定していますが、同じ処理をするとワークシートの末尾に数字が追加されてしまいます。
- ワークシート名を上書きするためにどのようなコードを使用するべきか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こちら(WinXp Pro SP2+10月までのパッチ、Office2002 SP3Sp2+10月までのパッチ) で試したところ、シートの追加にはなりませんでした。なんでかな???? ただ、 A B C D 1 x x 2 x 3 X の「シート」に「上書き」される時、「上書き」するシートの方の範囲が狭いと A B C D 1 z z 2 z 3 X のように前の内容が残りました。 とレスしようと思ったのですが、途中から何故かシートが追加されるようになりました。 色々調べてゆくうちに、また追加されなくなってしまいました。 (^_^;) ただ、追加しても、前のデータが残る場合も有ったので 結局、シートがあれば削除で対処しては如何でしょう? もしかしたら、Book の使い回しをしている内に無駄な領域が増えて肥大化するかも? Sub test2() Dim objXl As Object Dim objBk As Object Dim objSt As Object Set objXl = CreateObject("excel.application") Set objBk = objXl.Workbooks.Open("d:\_z.xls") For Each objSt In objBk.Worksheets If objSt.Name = "入力禁止LEJOUR" Then objXl.DisplayAlerts = False objSt.Delete objXl.DisplayAlerts = True End If Next objSt objBk.Save objXl.Quit Set objBk = Nothing: Set objXl = Nothing Docmd.TransferSpreadsheet ・・・ End Sub あるいは、Dir関数でファイルの存在を確認し有ったら、Kill するとか? なお、タスクマネージャにExcel が残ってしまう場合は下記をご覧下さい。 http://www.bcap.co.jp/hanafusa/VBHLP/ExcelErr.htm
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel4, VarAccess, VarExcelpass, True と保存するファイルの種類を、Excel9(Excel2000ワークブック)からExcel4(Excel4.0ワークシート)にすればいいのでは? Excel4.0は1ブック1シートの構成なので上書きしかできません。
補足
ありがとうございます。 しかし、1ブック、2シートにしたいのです。 この場合はどうすればいいのでしょう? Excel9以下にそのような設定のファイルは ありますか?