
エクセルで記載したVBAマクロをVBSから起動しようとしてもうまく動作しません。
VBA単体で動かすときちんと動作しますが、VBSから起動するとどうもうまくいきません。
月初めにタスクで複数シートのある範囲のセルの値を消したいだけなのですが、ご教授いただけると助かります。
ExcelVBA(C:\hoge\hoge.xlsm)
sub 処理()
Dim i As Integer
For i =1 To 31
worksheets(i).select
range ("A1:B9").ClearContents
next i
End sub
VBS
Dim ExcelApp
Dim ExcelBook
Dim FilePath
FilePath = "C:\hoge\hoge.xlsm"
Set ExcelApp=CreateObject("Excel.Application")
Set ExcelBook= ExcelApp.Workbooks.Open(FilePath)
ExcelApp.ActiveWorkbook.Worksheets("1").select
ExcelApp.visible = false
ExcelApp.Run "処理()"
ExcelBook.Close True
ExcelApp.quit
Set ExcelApp=Nothing
Set ExcelBook=Nothing
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No,1の方と同じですが、マクロが
For i =1 To 31
worksheets(i).select
・・・
next i
なので
ExcelApp.ActiveWorkbook.Worksheets("1").select は 不要?
Set ExcelApp=CreateObject("Excel.Application")
ExcelApp.Workbooks.Open(FilePath)
ExcelApp.visible = True
ExcelApp.Run "処理()"
で一度、試してみれば
原因がわかれば
ExcelApp.visible = False に
No.1
- 回答日時:
こんにちは。
Excel側のマクロについては、そのままにしておきますが、
VBS側は、2点気になる部分があります。
>ExcelApp.ActiveWorkbook.Worksheets("1").select
("1") というのは正しいですか。 Worksheets(1) ではありませんか?
Excel側のマクロが、i をインデックスとして使っているのなら、VBS側も同じ扱いのほうがよいです。(本来は不要のはずです)
そして、オブジェクトを作ったのですから、
それは、ExcelBook.Worksheets(1).Select
と同等の意味のはずです。
>ExcelApp.Run "処理()"
処理()というマクロが、標準モジュールにおいてあることが条件と、
動かない場合は、
ExcelApp.Run "'"&ExcelBook.Name& "'!処理()"
と、ブックから、まとめて呼び出したほうがよいです。
同名のプロシージャー・マクロがある時は、Module 名も付けます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) バックグラウンドのプロセスのエクセルを閉じる方法 4 2022/05/12 15:39
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA+VBSによる別インスタンスBookOpen時のVBSエラーに関して
Excel(エクセル)
-
“.vbs”のファイルが実行できない
Windows Me・NT・2000
-
すでに開いているブックのマクロを起動させるvbsを教えてください
Visual Basic(VBA)
-
-
4
ファイルを開かずにマクロを実行
Excel(エクセル)
-
5
開いてるファイル(エクセル等)をバッチかVBScript自動的に保存す
その他(Microsoft Office)
-
6
VBSが起動しない
その他(プログラミング・Web制作)
-
7
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
8
VBS Bookを閉じるコード
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel_マクロ_現在開いているシ...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
エクセルで別のセルにあるふり...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
ExcelのVBA。public変数の値が...
-
Excelのセル値に基づいて図形の...
-
エクセルに張り付けた写真のフ...
-
オートフィルターとExcelマクロ...
-
2つのマクロでチェックボックス...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
エクセルマクロでワードの一ペ...
-
TERA TERMを隠す方法
-
マクロの名前変更ってできるん...
-
マクロで空白セルを詰めて別シ...
-
マクロ実行時、自動で背景色を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
Excelのセル値に基づいて図形の...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
おすすめ情報