- 締切済み
すでに開いているブックのマクロを起動させるvbsを教えてください
お願いします。 00時から23時54分まで 常時開いていて、温度の数値をロギングしているexcelブックがあります。 1分おきにロギングし、10分おきに表に記録し、グラフ化しています。 エクセルを開き、閉じてOSを再起動、またエクセルを開く、を365日繰り返すものです。 基本的に常時無人です。 印刷、保存など、計7個の作業を Application.OnTime にて Workbook Open時にタイマーとしてマクロをかけてたのですが、 実行の信頼度が高くない(実行しない日がある)ので、 タスクスケジューラにて行おうとしました。 マクロを実行させるvbs Option Explicit Dim objxlsm Set objxlsm=CreateObject("Excel.Application") objxlsm.Workbooks.Open ("ブックパス) objxlsm.Run "Module11.DB保存" objxlsm.DisplayAlerts=False objxlsm.quit Set objxlsm = Nothing 以上を行うと、 今開いているブックではなく、保存されたブックを別で開き、そこのマクロを処理してしまいます。 現在開いているブックに処理をかける場合はどうしたらよいのでしょうか? このブックはリアルタイム(表内に1分おきに数値を更新します)に動いている表グラフなので、 なんとか、開いている(表示している)ブックで外部からマクロを実行したいのですが。。 ご教授ください。 ちなみに、このブックは、タスクスケジューラでvbsにて開いています。(関係ありますか?) おねがいします。
- chintarou
- お礼率39% (19/48)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- watabe007
- ベストアンサー率62% (476/760)
参考に On Error Resume Next Set objExcel=GetObject(,"Excel.Application") '既に起動しているExcelへの参照 On Error Goto 0 If objExcel Is Nothing Then MsgBox "Excelは起動していません" Wscript.Quit End If objExcel.Run "Book1.xls!DB保存" Set objExcel = Nothing
関連するQ&A
- 夜間だとvbsからエクセルマクロが起動しない。
夜間だとvbsからエクセルマクロが起動しない。 wiodowsのタスクスケジューラでbatを起動し、batからvbsを起動し、vbsからエクセルマクロを起動する夜間バッチを作ったのですが、エクセルマクロが起動するタイミングでvbsが処理終了?します。 タスクスケジューラから手動起動したり、昼間に時間を指定した場合は問題なく動くのですが、夜間(早朝5:30)だと動きません。 たまたまエクセルマクロが異様に時間がかかっている可能性も考えましたが、朝9時時点でタスクマネージャのプロセスにEXCEL.EXEはいませんでした。 夜間バッチで特に気をつけるべきことはあるでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させた
vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させたい。 こんにちは。 お世話になっております。 さて、最初はバッチでどうにかならないかと思っていましたが、下記vbsソースを見つけ、 早速チャレンジしたのですが、ファイルが開くところまではうまく行きますが、「マクロ Macro1がありません」というメッセージが出てしまい、マクロが実行されません。 手動でマクロを実行しようとするときに出てくるマクロ一覧には、PERSONAL.XLS:Macro1と、表示されております。 マクロの保存先をまちがえているのでしょうか? また、あるフォルダのcsvファイル全てに対して1つのvbsキックで処理が行なわれるようにするには、どの様にすればいいでしょうか? よろしくお願いします。 ----------------------------------------------------------------------- Dim obj Set obj = WScript.CreateObject("Excel.Application") obj.Visible = True obj.Workbooks.Open "C:\Documents and Settings\Administrator\My Documents\001.xls" obj.Application.Run "Macro1"
- ベストアンサー
- その他MS Office製品
- タスクスケジューラに登録するとvbsからエクセルマ
タスクスケジューラに登録するとvbsからエクセルマクロが起動しない。 wiodowsのタスクスケジューラでbatを起動し、batからvbsを起動し、vbsからエクセルマクロを起動するバッチを作ったのですが、エクセルマクロが起動しません。 batをダブルクリックした場合は問題なく動くのですが、タスクスケジューラから手動起動したり、時間を指定した場合は動きません。 このときタスクマネージャのプロセスにはwscript.exeはいましたがEXCEL.EXEはいませんでした。 タスクスケジューラで起動するときに特に気をつけることはあるでしょうか?
- 締切済み
- その他(プログラミング・開発)
- VBSでエクセルマクロの実行中
VBSでエクセルを起動しマクロを実行ここまでは上手くいったのですが マクロはファイルを開いたエクセルにペーストするものですが ファイルを移すときにこのファイルで良いですかと聞いてきます いつもENTで実行しているのですが ENT key を押すか 開く(o)をクリックこれを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")によって マクロが無効になってしまっているのはないか? と思っています。 恐れ入りますが、 よろしくアドバイスの程お願いします。
- ベストアンサー
- オフィス系ソフト
- VBSからのエクセル起動について
マクロを含んだBook(自作したもの)の起動時、起動直後の「セキュリティの警告画面」を、マクロセキュリティ中の状態で、表示させないで起動するためにVBSからの起動起動を考えています。いくつかウィンドウを開いた状態で、下記のコードにてBookを開くと、最前面に表示表示してくれません。対処方を教えてください。 Option Explicit Dim objExcelApp, strPath Const BookName = "Book1.xls" Set objExcelApp = CreateObject("Excel.Application") With WScript strPath = Replace(.ScriptFullName, .ScriptName, "") End With objExcelApp.Workbooks.Open strPath & BookName, False, False Set objExcelApp = Nothing *VBSはまだ勉強不足で、なんとなくこのコードの意味も解る程度です。VBAに関しては、一通り基本的なことはできます。よければ、このコードの詳しい意味も教えてください。また、他の対処法があれば教えてください。よろしくお願いします。
- 締切済み
- Visual Basic
- ExcelVBA内のVBSで別ブックを開いたとき
ブック1で、誰のPCからでもセキュリティの警告を出さないようにブック2を開くVBSを実行し、ブック1で使用した変数xの値をブック2に渡すということをやりたいのですが、上手くいきません...。 ブック2を開く所まではできたのですが、ブック2のセルに変数xの値を入れようとすると、エラー「インデックスが有効範囲にありません。」が発生し、そもそもブック2をアクティブにできません。 ファイル名・パス等は絶対に間違えていないと思います。 原因とどう修正すれば良いか、教えて頂けないでしょうか。 下記が簡略化したプログラムになります。 Book1のプログラム Sub Book1() Dim x As String x = "aaa" CreateObject ("Shell.Application") CreateObject("Shell.Application").ShellExecute "○○.vbs" Workbooks("Book2.xlsx").Sheets("Sheet1").Range("A1") = x End Sub ---------------------------------------------------------------------------------------------------------- VBSのプログラム Dim strExcFileName Dim objExcApp strExcFileName ="○○¥Book2.xlsx" Set objExcApp = WScript.CreateObject("Excel.Application") objExcApp.Visible = True Call objExcApp.Workbooks.Open(strExcFileName,,True) objExcApp.DisplayAlerts = False WScript.Quit 以上、宜しくお願い致します。
- 締切済み
- その他(プログラミング・開発)
- 画面から別ブック起動についてです。
いつもお世話になっております。 VBAで作成した画面(エクセルシートに貼り付いています)で別ブックを開いてマクロ処理を実行させたいのですが、うまくいきません。 (状態) ・画面から呼び出した別ブックは開きますが、マクロ処理が走ってくれません。 ・別ブックを直接開くとマクロ処理は走ってくれます。 (画面のソース) Dim objAppXL As Excel.Application Set objAppXL = CreateObject("Excel.Application") objAppXL.Caption = ToukeiDay objAppXL.Visible = True objAppXL.Workbooks.Open Filename:="別ブックパス" というような状況です。よろしくお願いします。
- ベストアンサー
- Visual Basic
- エクセル タスクスケジューラでマクロ自動実行
お世話になります。 win7/エクセル2010使用です。 エクセルのThisWorkbook_openでマクロを実行するファイルAを作っています。 ※Auto_Openは記述していません。 ファイルAをタスクスケジューラに設定いたしました。 問題なくマクロが自動実行されて、目的は果たしています。 ただ、不思議な点があります。 このファイルAをダブルクリックして開いても マクロは自動実行されていきます。 このファイルAをコピーして、ファイルBを作り それをダブルクリックで開くと、 ファイルBは、ブックが開いた後に、「セキュリティーの警告」がされて マクロの自動実行ができません。 通常は、「セキュリティーの警告」を出さないために Auto_Openなどでコードを記述すると思うのですが、 なぜ、Auto_Openを記述していないファイルAが自動実行されるのかがわかりません。 タスクスケジューラの設定に何か関係はあるのでしょうか? よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
補足
こんにちは。 回答ありがとうございます。 早速やってみたところ、 マクロ~を実行できません。このブックでマクロが使用できないか、 または、すべてのマクロが無効になっている可能性があります。 コード 800A03EC となります。 もちろんこのブックでマクロは使用しています。 一分ごとにロギングしている箇所にマクロが入っているので、 一分ごとにマクロを実行しているのですが。。。 どこが悪いのでしょうか?