環境 OS:XP
OFFICE:2003
Accessで、同一フォルダにあるエクセルのマクロを起動したいのですが、どのようにコーディングすればよろしいでしょうか?
フォルダ:C:\test
Access:テストAccess.mdb
Excel:テストExcel.xls
起動したいマクロ
Sub all_delete()
Sheets("シートA").Select
Cells.Select
Selection.Delete Shift:=xlUp
End Sub
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは。
ふと見ていて思ったことですが、Excel のRun all_delete で、マクロを走らせる理由がないと思います。Access から、全部行ってしまえばよいのではないでしょうか?
もしも、シート名やファイル名が変わったりしても、元から変更できます。
それから、Delete Shift:=xlUp ということは、セル幅などを調整すると意味かしら?
そうでなければ、Clear でよいと思います。
---------------------------------------------------------
Sub XlSheetDelMacro()
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim AcPath As String
Const XLFNAME As String = "Excel.xls" 'Excelファイル名
Const SHNAME As String = "シートA"
AcPath = CurrentProject.Path & "\"
On Error GoTo ErrHandler
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(AcPath & XLFNAME)
xlApp.Visible = True '目で確認
Set xlSheet = xlBook.Worksheets(SHNAME)
xlSheet.Cells.Clear
xlBook.Close True '閉じる+保存
ErrHandler:
If Err.Number > 0 Then
MsgBox Err.Number & ": " & Err.Description, 16
End If
Set xlSheet = Nothing '当面は不要
Set xlBook = Nothing '当面は不要
Set xlApp = Nothing '絶対必要
End Sub
(プロセスでExcelが残らなければ成功)
この回答への補足
いつもお世話になっています。
なるほど、言われてみればAccessでコーディングする方が後々楽ですね。
一つ追加で質問なんですが、
>xlSheet.Cells.Clear
↑シートのクリアでなく、シートごと削除したいと思っています。
その場合、エクセルで手作業及びマクロで行うと警告(確認)メッセージが表示されますよね?
このメッセージを表示させず、シートを削除するにはどうしたらよろしいでしょうか?
すみませんが、よろしくお願いします。
No.3
- 回答日時:
こんにちは。
#2の回答者です。
>シートのクリアでなく、シートごと削除したいと思っています。
>マクロで行うと警告(確認)メッセージが表示されます
こんな風に、DisplayAlerts を使います。
Set xlSheet = xlBook.Worksheets(SHNAME)
Application.DisplayAlerts = False
If xlBook.Worksheets.Count > 1 Then
xlSheet.Delete
End If
Application.DisplayAlerts = True
No.1
- 回答日時:
Dim xlApp As Object
Dim xlBook As Object
Dim stPath As String
stPath = CurrentProject.Path & "\テストExcel.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(stPath)
xlBook.Application.Run "all_delete"
xlBook.Close
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
というところでしょうか。
この回答への補足
bonaronさん、早々にご回答いただきありがとうございました。
質問直後に帰宅してしまったため、お礼が今になってしまい申し訳ありませんでした。
で、Wendy02さんへの補足にも書いたのですが、
エクセルのシートごと削除をするにはどのように記述すればよろしいですか?またその際に警告(確認)メッセージも表示されないようにしたいです。
(つまり全く手を触れないフルオートで処理を行いたい)
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) Excelマクロ Application.Run 5 2023/06/17 15:16
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
EXCELでワークシートを開いたら...
-
エクセルを開いたとき常に同じ...
-
Excelのマクロの呼び出し元を知...
-
【 Excel】シートの見出しに自...
-
VBA ワークシートオブジェクト...
-
A2からA16までの足し算マクロ
-
マクロを特定の複数シートで実...
-
シートを保護した時でも並べ替...
-
マクロ 各シートの決められた位...
-
EXCELでマクロを使わずに図形の...
-
エクセルでシートの並び替えで...
-
VBA シート名を先月の名前に...
-
エクセル 行の表示非表示のマ...
-
エクセルVBAでcmbBoxのプロパテ...
-
エクセル ヘッダー(フッター)...
-
VBAマクロが動きません
-
EXCELのエラー
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
エクセルを開いたとき常に同じ...
-
【 Excel】シートの見出しに自...
-
エクセルでシートの並び替えで...
-
VBAで条件によってシート見出し...
-
EXCELでワークシートを開いたら...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルの複数のワークシート...
-
EXCELのエラー
-
複数シートの保護・解除
-
VBA シート名を先月の名前に...
-
エクセル2013でマクロのボタン...
-
VBAで作るexcel検索窓
-
EXCELの起動時に常に同じ...
-
Excelで,特定のシートを開いた...
-
シートを保護した時でも並べ替...
-
Excelのマクロの呼び出し元を知...
-
メッセージボックスでシート名...
おすすめ情報