アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスからエクセルへクエリの結果をインポートしています。
そこでワークシートができるのですが、その後、そのワークシート
が残るので同じ処理をした際に、同じ名前のワークシートに上書き
すると思っていたのですが、新たにワークシートを作成して
しまい困っています。

VarAccess = "入力禁止LEJOUR"
の部分がワークシート名になりますが
同じ処理をすると入力禁止LEJOUR1というワークシートが横に
できてしまいます。
これを入力禁止LEJOURのシートに上書きさせるには
どんなコードを使用したらいいでしょうか?

教えてください。
よろしくお願い致します。


Private Sub コマンド15_Click()
On Error GoTo エラー

Dim VarAccess As Variant

Dim VarExcelpass As Variant

Dim strmsg As String

VarAccess = "入力禁止LEJOUR"

VarExcelpass = "\\Shiob030\共有\生産戦略事業部\03.生産L.C.海\B.指図進捗表(月単位)\07\SS\07SS-LE JOUR.xls"

strmsg = VarAccess & "を、Excelファイルへ出力します。" & _
Chr(13) & "出力先は" & VarExcelpass & "、 シート名は" _
& VarAccess & "です。" & Chr(13) & "よろしければ、OKをクリックして下さい。"

If MsgBox(strmsg, vbOKCancel) = vbOK Then

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, VarAccess, VarExcelpass, True

MsgBox "データ出力は、正常に完了しました。"

End If

Exit Sub

エラー:
If Err.Number = 3044 Then
MsgBox "Excelファイルのパス指定が間違っています。", vbCritical

Else

MsgBox "予期せぬエラーが発生しました。", vbCritical

End If
End Sub

A 回答 (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
    • good
    • 0

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel4, VarAccess, VarExcelpass, True



と保存するファイルの種類を、Excel9(Excel2000ワークブック)からExcel4(Excel4.0ワークシート)にすればいいのでは?

Excel4.0は1ブック1シートの構成なので上書きしかできません。

この回答への補足

ありがとうございます。

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

補足日時:2006/12/01 11:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!