Excelマクロを実行する方法は、BizRobo!ナレッジベースに開示されていますが、実際にDS・DAにてExcelマクロを起動するロボットの作成方法を紹介します。
※このページの内容はBizRobo! Design Studio 10.4.0.1で確認しています。
作成するロボット
Excelマクロ「Message有」実行により、「マクロが実行されました。」メッセージボツクスが表示されるロボットを作成します。
・DSロボット:メッセージボックスが表示されたら手動でメッセージをOKを選択してください。
⇒コマンドライン実行ステップにて正常処理判定をの判定を行います。
・DAロボット:メッセージが表示されたらロボットがOKボタンを選択後Excelを終了します。
⇒メッセージが表示されない場合エラー判定を行います。
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_49.png?resize=1024%2C294&ssl=1)
ロボットの全体像
作成するロボットの概要
同じ変数を利用し、ロボットの上のフローはDSロボット 下のフローはDAロボットにてExcelマクロを実行します。
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_4.png?resize=563%2C315&ssl=1)
typeの作成
下図の様に「マクロ実行.type」の作成を行ます。
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_50.png?resize=703%2C246&ssl=1)
DSにてExcelマクロを実行するロボット
![](https://i2.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_6.png?resize=860%2C149&ssl=1)
変数の設定
アクションステップを追加し「変数の変換」ステップにて、下記変数をテキストにて追加します。
「Excel_Name」:マクロを設定したExcelファイル名 「Macro_Name」:Excelマクロ名 「Excel_Path」:マクロを設定したExcelファイルパス名 「VBS_FilePath」:ロボットにて作成するVBSファイルパス名(拡張子「.vbs」にて設定)
※「VBS_File」はロボットにて作成を行い正常処理時に削除します。
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_51.png?resize=983%2C458&ssl=1)
マクロ実行
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_21.png?resize=457%2C113&ssl=1)
「変数の割当」ステップを追加しエクスプレッションに下記テキストを貼り付けします。
![](https://i2.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_10.png?resize=1007%2C506&ssl=1)
>>Dim excelApp : Set excelApp = CreateObject("Excel.Application")<<+"\n"+
>>excelApp.Visible = False<<+"\n"+"\n"+
>>Dim targetFile : targetFile = WScript.Arguments(0)<<+"\n"+
>>Dim targetMacro : targetMacro = WScript.Arguments(1)<<+"\n"+
>>excelApp.Workbooks.Open targetFile<<+"\n"+
>>excelApp.Run targetMacro<<+"\n"+
>>excelApp.Quit<<
「ファイル出力」ステップを追加しファイル名・ファイルコンテンツに変数を設定後、「コマンドライン実行」ステップを追加をエクスプレッションにて下記テキストを貼り付けします。
※変数「Excel_Path」をVBSファイルのWScript_Arguments(o) 、 変数「Macro_Name」をVBSファイルのWScript_Arguments(1)に引数として渡します。
下記式をコピーし貼り付けします。※半角空白の場所に注意して設定しましょう。
>>cscript//nologo <<+マクロ実行.VBS_FilePath+>> "<<+マクロ実行.Excel_Path+>>" <<+>>"<<+マクロ実行.Macro_Name+>>"<<
正常処理フロー
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_14.png?resize=528%2C109&ssl=1)
「トライステップ」を追加し「値判定」ステップの条件に「マクロ実行.Macro_ExitCode == “0”」及び、エラー処理に「次の代替手段を試行」を設定します。
次に、「ファイル削除」ステップ及び、「値返却」ステップを設定します。
エラー処理フロー
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_20.png?resize=475%2C116&ssl=1)
「変数の割当」ステップを追加しエクスプレッションにて式「マクロ実行エラー(マクロ名:<< + マクロ実行.Macro_Name + >>)<<」を設定。
次に、「ログ出力」ステップ及び、「エラー生成」ステップを追加を行い変数を設定します。
DAにてExcelマクロを実行するロボット
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_25.png?resize=673%2C208&ssl=1)
全体フロー
![](https://i2.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_52.png?resize=1024%2C96&ssl=1)
前方フロー
![](https://i2.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_53.png?resize=1024%2C168&ssl=1)
アクションステップ「Desktop Automation」ステップを追加し入出力値に変数を設定を行い、DAフローの変数を設定します。
次に、順に「Openステップ」・「Guarded Choiceステップ」・「Press Keyステップ」・「Guarded Choiceステップ」を追加し、最後に下図の通りにマクロ画像の入力欄を選択を行い「フィールドにテキストを入力」⇒「Macro_1:マクロ実行」⇒「Macro_Name:Text」を選択し「Input textステップ」を追加します。
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_41.png?resize=734%2C484&ssl=1)
追加した「Input textステップ」を開き「Click Left」「Input Text」ステップの間に下図の様に「Press Key」ステップにてBackSpaceキーを押す操作及び、「Guarded Choiceステップ」を追加します。
![](https://i2.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_62.png?resize=1024%2C344&ssl=1)
※式の説明
OpenステップURLの式
「=replaceAll(Macro_1. Excel_Path,”\\”,”/”) 」:ファイルパスの「\」を「/」に置換え
Press KeyステップApplicationの式
「=EXCEL.EXE[title^=\””+Macro_1. Excel_Name+”\”]”」:ファィル名の前方一致にて操作するExcelを特定
後方フロー
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_54.png?resize=1024%2C139&ssl=1)
順に「Guarded Choiceステップ」・下図のとおりにマクロ画像の「実行(R)」にカーソルを置き「クリック」⇒「Left」を選択し「Left Clickステップ」を追加後に「Guarded Choiceステップ」を設定します。
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_42.png?resize=755%2C414&ssl=1)
次に「Try-Catchステップ」を追加し下図の順に設定します。※マクロのメッセージボックスが表示されない場合にエラーを発生する様に設定
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_57.png?resize=1024%2C357&ssl=1)
①「Try_Catchステップ」にステップ イントゥー後メッセージにカーソルを置き「ガート」⇒「ロケーションが見つかった場合」を選択し「Guarded Choice」ステップ」を追加します。
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_43.png?resize=663%2C592&ssl=1)
②前記①にて設定した「Guarded Choice」ステップ」に再度「Guarded Choice」ステップ」を追加を行い「Location Not Found」に変更を行いComponentをコピーし追加した「Guarded Choice」ステップ」に貼り付けします。
![](https://i2.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_44.png?resize=1024%2C250&ssl=1)
③④前記②「Guarded Choice」ステップ」の横に「Throwステップ」を追加し「Result」を入力後、ステップを追加を行い同じく「Result」を入力します。
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_45.png?resize=1024%2C335&ssl=1)
⑤Finallyの前にカーソルを置き、メッセージのOKにカーソルをクリックし「クリック」⇒「Left」の選択を行い「Left Click」ステップを設定します。
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_46.png?resize=861%2C589&ssl=1)
⑥⑦⑧「Guarded Choice」ステップ」「Press Keyステツプ」「Assignステップ」を下図のとおり設定します。
※「Press Keyステツプ」のApplication設定「=EXCEL.EXE[title^=\””+Macro_1. Excel_Name+”\”]”」:ファィル名の前方一致にて操作するExcelを特定
![](https://i0.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_47.png?resize=1024%2C411&ssl=1)
⑨⑩⑪「Guarded Choice」ステップ」「Press Keyステツプ」「Assignステップ」を下図のとおり設定します。
「Press Keyステツプ」は前記⑦の「Press Keyステツプ」をコピーします。
![](https://i1.wp.com/tech.seagp.com/wp-content/uploads/2021/04/図_48.png?resize=959%2C396&ssl=1)
最後に「Returnステップ」のValuesを設定します。
以上にて、ロボットが完成します
動作確認
デパックにて実行を行いマクロが正常に起動されているか確認を行います。
また、マクロ名を「Message無」に設定を行い、DAロボットにてエラー発生するか確認しましょう。