質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

1回答

28981閲覧

コマンドプロンプトからVBScript経由でエクセルマクロを実行できない

hibiyami

総合スコア8

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2015/04/07 02:04

いつもお世話になっております。

今回タスクスケジューラからバッチを呼び出し、
特定のフォルダにあるCSVファイルを編集する目的で、
下記の流れでプログラムを組んでいます。

1.バッチファイル:VBS呼び出し

2.VBScript:エクセルマクロ呼び出し

3.エクセルマクロ:CSVファイルを編集

この2.VBScriptで3.エクセルマクロを呼び出す際に、
「マクロ'test'を実行できません。このブックでマクロが使用できないか、
または全てのマクロが無効になっている可能性があります。」
というメッセージが表示されてしまいます。

エクセルのセキュリティの設定などに問題があるのでしょうか?
もしくは、コード上に問題があるのでしょうか?
ご教授いただければと思います。

各処理の内容を下記に示します。
1.バッチファイル

lang

1cd (test.vbsのあるディレクトリ) 2cscript test.vbs C:\temp\test.xls test

2.VBScript

lang

1Dim excelApp : Set excelApp = CreateObject("Excel.Application") 2WScript.echo "VBS呼び出し成功" 3' Excelを非表示にする 4'excelApp.Visible = False 5excelApp.Visible = true 6Dim targetFile : targetFile = WScript.Arguments(0) 7Dim targetMacro : targetMacro = WScript.Arguments(1) 8' Excelファイルを開く 9excelApp.Workbooks.Open targetFile 10WScript.echo "Excelファイルオープン" 11' マクロの実行 12excelApp.Run targetMacro 13' Excelの終了 14excelApp.Quit

3.エクセルマクロ(実行できるかのテストのため、セルに値を入力する処理にしています)

lang

1Sub test() 2 Range("A2").Value = 123 3 Exit Sub 4End Sub

開発環境
OS:Windows7 64bit
Office2013
マクロのセキュリティ:全てのマクロを有効にする

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Vista 以後で導入されたUACでの、
UAC問題でない場合は、以下の様ではどうですか?
検索ワード:vba automation security

lang

1コード 2Set objExcel = CreateObject("Excel.Application") 'Version 指定は不可 3 objExcel.Visible = True 4 objExcel.DisplayAlerts = True 5 'MsgBox objExcel.Application.Version,VBOKONLY,"" 6 IF objExcel.Application.Version > "9.0" Then 7 objExcel.AutomationSecurity = 1 8 END IF 9 objExcel.Workbooks.Open BookPath,3,True 10Set objExcel = Nothing 11

投稿2015/04/07 04:13

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hibiyami

2015/04/07 07:30

コメントありがとうございます。 こちらのコードをVBScriptに追加するということでしょうか?
daive

2015/04/07 08:43

あれれ?? 質問者さんは、質問者さん自身で掲示したコード意味が、解っていませんか? ならば、私が掲示したコードの意味が解らなくても不思議ではありませんが。 まずは、検索ワードを示してあるので、検索してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問