バッチファイルファイル→VBS→エクセル マクロを有効にして起動

解決済みの質問

バッチファイルファイル→VBS→エクセル マクロを有効にして起動

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")によって
マクロが無効になってしまっているのはないか?

と思っています。

恐れ入りますが、
よろしくアドバイスの程お願いします。

投稿日時 - 2008-03-04 12:47:07

QNo.3831843

困ってます

質問者が選んだベストアンサー

こんにちは。

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

投稿日時 - 2008-03-04 14:07:19

ANo.1

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.2

#1 です。失礼。下記意味不明なことを口走ってますが、、

> ' // ThisWorkbook Module ( Auto_Open 不可では不可)

Auto_Open ではなく、ThisWorkbook の Workbook_Open を使って下さい
との意味です。

投稿日時 - 2008-03-04 14:12:26

お礼

KenKen_SP 様 早速のご回答ありがとうございます。

むっちゃ速! です(^・^)

ご教授いただいた上に、速い、確実!
最高です。 快調に動きだしました。

今後ともよろしくお願いします。
本当にありがとうございました。

投稿日時 - 2008-03-04 15:56:38

あわせてチェックしたい
  • 緊急です。Wscriptで・・・ ...
  • VBスクリプトのWshShell.Runについて ...
  • WshShell.Runでサーバにアクセスできません。 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら