
エクセルで記載した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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA+VBSによる別インスタンスBookOpen時のVBSエラーに関して
Excel(エクセル)
-
“.vbs”のファイルが実行できない
Windows Me・NT・2000
-
すでに開いているブックのマクロを起動させるvbsを教えてください
Visual Basic(VBA)
-
-
4
ファイルを開かずにマクロを実行
Excel(エクセル)
-
5
VBscriptでEXCELを起動
その他(プログラミング・Web制作)
-
6
バッチファイルからVBA実行でエラー
Excel(エクセル)
-
7
VBSが起動しない
その他(プログラミング・Web制作)
-
8
vbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう
その他(プログラミング・Web制作)
-
9
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
TERA TERMを隠す方法
-
エクセルに張り付けた写真のフ...
-
ファイルが見つからない時、ス...
-
ExcelのVBA。public変数の値が...
-
ダブルクリックで貼り付けた画...
-
【Excel】複数のマクロをまとめ...
-
IF関数を使ってマクロを実行さ...
-
Excel_マクロ_現在開いているシ...
-
エクセルで別のセルにあるふり...
-
特定文字のある行の前に空白行...
-
エクセルで縦に並んだデータを...
-
マクロ実行時エラー
-
【EXCEL VBA】オートシェイプを...
-
Excelのセル値に基づいて図形の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
マクロの連続印刷が突然不可能...
-
ExcelのVBA。public変数の値が...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
エクセルに張り付けた写真のフ...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
-
マクロ実行時エラー
-
ExcelVBAでPDFを閉じるソース
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
エクセルで縦に並んだデータを...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
おすすめ情報