• 締切済み

VBSでEXCELのXLSTARTにあるマクロを実行するには

SHIMAPEEの回答

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.1

Excelには詳しくないのですが興味があったので試してみました。参考になりましたら。 XLSTARTにあるマクロはPERSONAL.XLSを開けば実行できました。また、XLSTARTのパスはStartupPathプロパティを参照すればよさそうです。 フォルダ、ファイル、マクロをそれなりに作成し、下のOSとExcelの組み合わせで試しました。 Windows98 + Excel2000 WindowsXP + Excel2002 Vista + Excel2007(ただしXLSTARTのファイル名はPERSONAL.XLSBに書替え) ----- Set objExcel = CreateObject("Excel.Application") WScript.Echo objExcel.StartupPath objExcel.Visible = True objExcel.Workbooks.Open objExcel.StartupPath & "\PERSONAL.XLS" objExcel.Workbooks.Open "C:\Test\MacroTest.xls" objExcel.Application.Run "PERSONAL.XLS!CommonMacro1" objExcel.Application.Run "BookMacro1" -----

QWERIO0918
質問者

補足

objExcel.Workbooks.Open "C:\Test\MacroTest.xls"、objExcel.Application.Run "BookMacro1"を何のために追加しているのか良く意味か判りません。 以下で充分だと思います。 Dim objExcel Set objExcel = CreateObject("Excel.Application") WScript.Echo objExcel.Application.StartupPath objExcel.Visible = True objExcel.Workbooks.Open objExcel.StartupPath & "\PERSONAL.XLS" objExcel.Application.Run "PERSONAL.XLS!マクロ" ただ、StartupPathはログインユーザーの起動(XLStart)フォルダですので全ユーザーに共通の起動(XLStart)フォルダを指定していた場合にはファイルが見つからないことになってしまいます。 ツール、オプションの全般タブの「起動時に全てのファイルを開くフォルダ」で指定したパスが取得できるコマンドがWSHにあれば良いのですが?

関連するQ&A

  • VBSでエクセルマクロの実行中

    VBSでエクセルを起動しマクロを実行ここまでは上手くいったのですが マクロはファイルを開いたエクセルにペーストするものですが ファイルを移すときにこのファイルで良いですかと聞いてきます いつもENTで実行しているのですが ENT key を押すか 開く(o)をクリックこれをVBSに組み入れたいのですが 出来るでしょうか?

  • エクセル起動時、自動的にマクロを実行する

    エクセルファイルを開いたとき、自動的にマクロを 組み込む方法で、「XLSTARTフォルダ」にマクロファイル を置くという方法を最近知りました。 任意のエクセルファイルを開いたときのみ XLSTARTフォルダのマクロファイルを実行する 方法はないのでしょうか? 普通にエクセルを使いたいときでも、マクロが組み込まれて しまい、とても困っています。 例えば、指定のフォルダの中にあるエクセルファイルであれば XLSTARTフォルダのマクロファイルを実行する という、操作ができたりすれば、とてもよいのですが。 何か良い方法があれば、教えていただきたいです。

  • 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"

  • AccessからExcelマクロを実行したい

    Accessから既存のExcelファイルを開き、そのファイル内にある マクロを自動実行させたいと思っています。 Set obj = CreateObject("Excel.Application") obj.Visible = True Set Myobj = obj: Workbooks.Open ("エクセルファイル名(フルパス)") Myobj.Run マクロ名 と書いているのですが、Excelファイルを開くところまでしか動いてくれません。 マクロ名の書き方が悪いのかもしれませんが、VBAに不慣れなため どう直せばよいのかわかりません。 どうかよろしくお願いします。 ちなみに環境はWindows2000、Office2000です。

  • vbsからのWordマクロ実行

    やりたいこと  vbsからWordマクロを実行し復帰値をMsgBoxで表示する。 問題点  Test関数を実行し復帰値を取得したいのですがコンパイルエラーとなってしまいます。   正しい書き方を教えてください。 Set oApp = CreateObject("Word.Application") oApp.Documents.Open WScript.Arguments(0) Dim code code = oApp.Run Test ★ MsgBox code

  • VBSからのエクセル操作

    エクセルでテキストファイルを開く作業をVBSで自動化したいのですが、下のスクリプトが上手く動作しません。どうすれば上手いこと動くように出来るでしょう? OpenTextのVBS上での使用法がポイントだと思うんですが。 Dim objXL Set objXL = WScript.CreateObject("Excel.Application") objXL.Workbooks.OpenText "hoge.txt", ,1, xlDelimited, xlDoubleQuote, False, False, False, False, False, True, ":", Array(1, 1) objXL.Visible = True

  • エクセル マクロについて

    エクセルのマクロについて教えてください。 下記のようなマクロを実行した場合 どのような条件でフォルダ内のファイルを オープンしていくのでしょうか。 ファイルの名前や更新時間などでしょうか? また、名前や更新時間順でファイルを開いていくように するにはどうしたらよろしいでしょうか。 ご回答よろしくお願い致します。 以下マクロ 'オブジェクトを設定する Set ファイルシステム = CreateObject("Scripting.FileSystemObject") '読み込むファイルを1個指定する あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") '親フォルダーを取得する Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder '親フォルダー内の全ファイルに以下の操作をする For Each ファイル In 親フォルダー.Files 'ファイルを開く Workbooks.Open ファイル.Path 'ブック名を記憶する ブック名 = ActiveWorkbook.Name '開いたファイルの伝票(NO)のシートを「全データ」シートの後ろにコピーする ActiveWorkbook.Worksheets("伝票(NO)").Copy After:=ThisWorkbook.Worksheets("全データ") '開いたファイルを閉じる Workbooks(ブック名).Close Next                                                 以上

  • エクセルで個人用マクロを移すには

    エクセル2002で使用していた個人用マクロを、他のPCにインストールしたばかりのエクセル2003で使えるようにするには、どういう手順をとればいいのでしょうか。 エクセル2002がある方のPCの、 C:\Documents and Settings\User\Application Data \Microsoft\Excel\XLSTART\PERSONAL.XLS を、 エクセル2003があるPCのXLSTARTフォルダにコピーしてみたのですが、エクセルファイルを開いてVBエディタを起動しても、個人用マクロの標準モジュールが表示されないのですが。

  • すでに開いているブックのマクロを起動させる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にて開いています。(関係ありますか?) おねがいします。

  • asp内に記述したvbsでEXCELを起動したい

    こんにちは。 asp内に記述したvbsで、EXCELを起動したいのですが、どうしてもうまくいきません。 <html> <head> <SCRIPT language='VBScript'> <!-- MsgBox "Hello !" With CreateObject("Excel.Application") .Visible = True .Workbooks.Add.ActiveSheet.Range("A1").Value = "Hello !" End With --> </SCRIPT> </head> <body> てすと </body> </html> vbsの部分だけを、asp内記述ではなくvbsファイルで実行すれば問題なくEXCELが起動できます。 また、asp内に記述したメッセージのHello!は出てくるのでプログラムaspのプrグラム自体は動いています。 このことから、間違いはないと思うのですがどうしても起動できません。 どなたか、原因が分かる方はいらっしゃらないでしょうか?