
Win/XP エクセル2002使用です。
VBSからエクセルのマクロを有効にして立ち上げたいのですが、
上手くいきません。
バッチファイル側
cd /D c:\
C:\***.vbs
exit /B
VBS側
'エクセル起動
Set WshShell = CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "C:\***"
WshShell.Run "C:\***\***.xls",3
WScript.Sleep(5000)
WshShell.SendKeys("E") '←マクロを有効にする
WScript.Sleep(5000)
WshShell.SendKeys("U") '←データソースへのリンクを更新
エクセル側(マクロ)
Sub Auto_open()
Application.OnTime TimeValue("13:00:00"), "Action"
End Sub
Sub Action()
・・・(省略)・・・
End Sub
-----------------------------
また、エクセルマクロは、VBSではなく手動で立ち上げますと、
問題なく時間になった時(13時)に作動します。
VBSのRunメソッドが、
エクセルマクロの
Application.OnTime を待たずに走ってしまうことで、
エクセルマクロが無効になってしまっているのではないか?
もしくは、データ更新のための
sendkey("U")によって
マクロが無効になってしまっているのはないか?
と思っています。
恐れ入りますが、
よろしくアドバイスの程お願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
VBS を使うなら、Excel のインスタンスを作り、Workbooks.Open で
ブックを開けばマクロのセキュリティー警告は表示されません。
# Open メソッドの第二引数でリンクの更新も指定できますし
SendKeys を使った方法より確実ですよ。一例です。
REM ■ Sample.bat ------------------------------------------
cd /D c:\
C:\test.vbs
exit /B
' // ■ VBS --- C:\test.vbs --------------------------------
Dim xlApp
Dim xlWbk
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
' // Memo: Workbooks.Open Filename, UpdateLinks ...
' // リンクを更新させて開く
Set xlWbk = xlApp.Workbooks.Open("C:\test.xls", True)
' // ■ Excel --- C:\test.xls -------------------------------
' // ThisWorkbook Module ( Auto_Open 不可では不可)
Private Sub Workbook_Open()
Application.OnTime Now() + TimeValue("00:00:03"), "Action"
End Sub
' // Standard Module
Sub Action()
MsgBox "Hellow!", vbInformation
End Sub
No.2
- 回答日時:
#1 です。
失礼。下記意味不明なことを口走ってますが、、> ' // ThisWorkbook Module ( Auto_Open 不可では不可)
Auto_Open ではなく、ThisWorkbook の Workbook_Open を使って下さい
との意味です。
KenKen_SP 様 早速のご回答ありがとうございます。
むっちゃ速! です(^・^)
ご教授いただいた上に、速い、確実!
最高です。 快調に動きだしました。
今後ともよろしくお願いします。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
バッチファイルでエクセルのマクロを動かしたい
Excel(エクセル)
-
vbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう
その他(プログラミング・Web制作)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
開いてるファイル(エクセル等)をバッチかVBScript自動的に保存す
その他(Microsoft Office)
-
5
バッチファイルでEXCELを起動し、マクロ処理の完了を検出する方法
その他(プログラミング・Web制作)
-
6
バッチファイルでExcelを読み取り専用で開きたい
Excel(エクセル)
-
7
バッチ処理 特定の文字以降をリネーム
Ruby
-
8
VBS Bookを閉じるコード
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセル マクロ名にブック名...
-
エクセル ボタンに設定したマク...
-
Excel マクロの編集がグレーに...
-
エクセルで、「いいね」のよう...
-
エクセルの、記録を終了したマ...
-
エクセルでマクロ(Excel 4.0)...
-
Excelマクロで、稼働中のマクロ...
-
エクセルで明日の日付を表示す...
-
複数のマクロボタンをまとめて...
-
別シートのマクロボタンをマク...
-
テキスト・データをエクセルの...
-
エクセルのマクロを削除したい....
-
Excelで、マクロが含まれ...
-
ルビ削除のマクロの仕様?
-
エクセルで作られた?マクロを...
-
エクセル ボタンを押すと色が変...
-
Excel:マクロを消す方法教えて...
-
エクセルの表を複数枚印刷した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセルでマクロ(Excel 4.0)...
-
エクセル マクロ名にブック名...
-
エクセルの、記録を終了したマ...
-
エクセルの表を複数枚印刷した...
-
Excelマクロで、稼働中のマクロ...
-
(Excel VBA)シートコピー時マ...
-
エクセルマクロで、別のブック...
-
エクセルで明日の日付を表示す...
-
Excelマクロをバックグラウンド...
-
Excelのマクロ名の並び順の法則...
-
LDPlayerのマクロの編集方法を...
-
マクロ実行ボタンを自動削除したい
-
EXCELのマクロが他のパソコンで...
-
他のBOOKにマクロを反映させな...
おすすめ情報