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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

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

解決済

VBScriptによる更新

jabe
jabe

総合スコア36

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

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

1回答

0評価

0クリップ

323閲覧

投稿2022/06/07 09:26

編集2022/06/09 08:25

実現したいこと

●VBSファイルからexcelファイルのVBAを実行したいです。
内容:VBAファイルのAシートを、所定場所のファイルに上書きするコードになっています。
以下参考サイトを再現しようとしたら、cmdで実行するとエラーになってしまいました。
※エラーはVBA処理は実行できているが、エラーメッセージが出る結果となっています。
対処方法を教えていただけないでしょうか?
参考サイト:https://plus-info-tech.com/macro-auto-run
イメージ説明

●VBAファイルとvbs保管場所
イメージ説明
・VBAファイル中身
イメージ説明
●VBA実行後上書きされるファイル保管場所
※朱字はパス名になります。
イメージ説明
●cmd
イメージ説明

発生している問題・エラーメッセージ

VBSエラー内容
イメージ説明

該当のソースコード

VBS

Dim excelApp,macro file = WScript.Arguments(0) macro = WScript.Arguments(1) Set excelApp = CreateObject("Excel.Application") excelApp.Visible = False 'Excelを非表示にする excelApp.DisplayAlerts = False 'ポップアップメッセージを非表示にする excelApp.AutomationSecurity = 1 'マクロを有効にする 'Excelファイルを読み取り専用で開く excelApp.Workbooks.Open file,3,False 'WScript.Echo "---マクロを実行します---" 'マクロを実行する excelApp.Run macro 'WScript.Echo "---マクロの実行が完了しました---" 'Excelを終了する excelApp.Quit Set excelApp = Nothing

VBA

Sub 転記() Path = "\\vvv\www\xxx\yyy" ’vvv,www,xxx,yyyはパス名になります。 Workbooks.Add 'ファイル作成 ThisWorkbook.Sheets("A").Copy After:=ActiveWorkbook.Sheets(Sheets.Count) '新規ファイルの最終シートへコピー Application.DisplayAlerts = False 'メッセージ非表示※上書き保存 For Each ws In Sheets If ws.Name <> "A" Then ws.Delete 'ワークシート名が"溶接機一覧"以外は削除 Next ws ActiveWorkbook.SaveAs Filename:=Path & "\" & "一覧" '保存 ActiveWorkbook.Close '新規ファイル閉じる Application.DisplayAlerts = True 'メッセージ表示※上書き保存 Application.Quit Application.DisplayAlerts = False 'メッセージを非表示に設定 ThisWorkbook.Close False Application.DisplayAlerts = True 'メッセージを非表示に設定 End Sub

試したこと

VBSファイルでは以下トライもしましたが、同じエラーが出てしまいました。
Dim excelApp,macro → Dim excelApp,file,macro
excelApp.Quit → 'excelApp.Quit

補足情報(FW/ツールのバージョンなど)

①VBSファイルがタスクスケジューラ上で実行できないエラー
●以下参考URLに沿って設定したのですが、実行できませんでした。
イメージ説明
●設定内容
イメージ説明
●エラー内容
イメージ説明

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

otn

2022/06/07 10:14

vbsからVBAの起動はやったこと無いのですが、 少なくとも、VBAの Application.Quit の後にも文があるのが変ですね。 Application.Quit はExcelを終了させます。
YT0014

2022/06/07 10:48

Excelでは、マクロはSub(プロシージャ)とはことなるものなのですが、マクロの実行で正しいのでしょうか? 正しいのなら、マクロの定義をご提示ください。 また、プロシージャを直接呼ばれるのなら、モジュール名.プロシージャ名が必要だという情報もありましたので、モジュール名を追加しての実行を試されてはいかがでしょう。 https://excel-vba.work/2021/04/16/%E3%80%90vba%E3%80%91vbscript%E3%81%8B%E3%82%89vba%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/
jabe

2022/06/08 00:17

otnさん回答ありがとうございます。 jinojiさんのコメントにあります通り、vbsとvbar両コードにexcelApp.Quitがある為、重複してしまっているという事ですよね?
jabe

2022/06/08 00:26

YT0014さん回答ありがとうございます。 マクロとSub(プロシージャ)を同じで定義していました。 リンク先コードでもトライしてみました。 15行目objExcel.Run "Module1.転記"でエラーが出てしまいました。 Option Explicit Dim objExcel 'Excelオブジェクトを取得 Set objExcel = CreateObject("Excel.Application") 'ExcelファイルをOPEN objExcel.Workbooks.Open("C:\テスト\一覧.xlsm") 'Excelファイルを非表示 objExcel.Visible = False '「testModule」のSubプロシージャ「sample」を実行 objExcel.Run "Module1.転記" 'Excelを終了 objExcel.Quit '後片付け Set objExcel = Nothing

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

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