• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスからエクセルへインポートの際に)

アクセスからエクセルへのワークシートの上書き方法を教えてください

このQ&Aのポイント
  • アクセスからエクセルへインポートする際に、同じ名前のワークシートに上書きできない問題が発生しています。
  • VarAccessという変数を使用してワークシート名を指定していますが、同じ処理をするとワークシートの末尾に数字が追加されてしまいます。
  • ワークシート名を上書きするためにどのようなコードを使用するべきか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.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)
回答No.1

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel4, VarAccess, VarExcelpass, True と保存するファイルの種類を、Excel9(Excel2000ワークブック)からExcel4(Excel4.0ワークシート)にすればいいのでは? Excel4.0は1ブック1シートの構成なので上書きしかできません。

junichihirobe
質問者

補足

ありがとうございます。 しかし、1ブック、2シートにしたいのです。 この場合はどうすればいいのでしょう? Excel9以下にそのような設定のファイルは ありますか?

関連するQ&A