• 締切済み

AccessVBAでExcelシートの削除

AccessVBAで、Excelのシートを削除したいです。 AccessのクエリをExcelの指定したシートにエクスポートする処理をしたいのですが、 同じ名前のシートが存在すると 「テーブル○○○は既に存在しています」 とゆうエラーになってしまいます。 上書きしてくれれば良いのですが、上書きされないのですよね? いろいろ調べたのですが、ExcelVBAでシートを削除する方法しか見つけることが出来ませんでした。 エクスポートはODAを使用せずに、 SELECT * INTO ~文で実行しています。 初心者です。よろしくお願いいたします。

みんなの回答

回答No.3

サンプルが必要なら 補足してください

回答No.2

もしも 逆に Excelで Accessのデータをインポートできるなら その方法でもいいでしょうか 決まったシートにエクスポートするなら そのあとでExcelを開くと思います それなら Accessから出す のではなく Excelにボタンを付けて 毎回 同じ場所に Accessのデータを取り出す という機能をつければ Excelの処理がスムーズにできると思います シートのボタンでスタート 前回データを消去して インポート http://www.happy2-island.com/vbs/cafe02/capter00602.shtml

rufas
質問者

お礼

ありがとうございます。 その逆の発想はすごいですね。思いつきませんでした。 業務のためのものでしたので、 Excelを基準にしていいものかどうかは別問題ですが、 こうゆう考え方もあるんだなと関心しました。 この方法でも試してみたいと思います。 驚きです。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>ExcelVBAでシートを削除する方法しか見つけることが出来ませんでした >初心者です, をエクセルVBあの初心者とすれば、鉄則は「マクロの記録」が使えないか、考えることです。 Sub Macro1() Sheets("Sheet2").Select ActiveWindow.SelectedSheets.Delete End Sub ーー Sub test01() Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets MsgBox sh.Name Next End Sub でSheet2が消えたことは間違いない。 ーー 削除可か警告が出ます。 出さないようにするため Sub test02() Application.DisplayAlerts = False Sheets("Sheet3").Select 'Sheet3に変えた ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True End Sub これで出ません。用意はできなした。 ーー 初心者のうちは、一気にACCESSVBAとの連携は余りお勧めできませんが(エクセルVBAでも上級の課題です。) ACCESSのモジュールに Sub test04() Dim exapp As Object Dim wb As Object Set exapp = CreateObject("Excel.Application") exapp.Visible = True myFLName = "C:\Documents and Settings\xxxx\My Documents\" & "Book1.xls" Set wb = exapp.workbooks.Open(myFLName) exapp.DisplayAlerts = False wb.Sheets("Sheet4").Delete exapp.Save exapp.DisplayAlerts = True Set exapp = Nothing Set wb = Nothing End Sub この辺はむつかしいです。 何か起こるとエクセルVBAを知り抜いていないと途方にくれる。 エクセル側だけで実行できるやり方から始めるべきです。

rufas
質問者

補足

ありがとうございます。 ExcelVBAは多少さわったことがあります。 でも多少です… ExcelVBAからExcelをいじることは調べたら結構出てくるので、 わかりやすかったですが、 AccessからExcelを見るのが本当に難しいです。 業務で使うため、ゆっくり勉強していられなくて、 焦っていました。

関連するQ&A