無料で使える RPA の taskt の使い方を紹介しています

Excel マクロに引数を渡して呼び出したときに 2 回実行してしまうのを防げるか

ここの内容は、taskt 以外に Excel VBA の知識も必要になってきます。

taskt の Run Macro 命令を下のように書くことによって、Excel マクロ (プロシージャー) に引数を指定することができます。

しかし、このように Run Macro 命令を指定すると、Excel マクロが 2 回実行されるという不具合 (実は仕様?) があります (バージョン 3.5.0.0 時点)。

Excel マクロの呼び出しのときに、引数を渡しつつ、1 回だけ実行される方法はあるのでしょうか。

管理人が調べたところ、現時点では 2 回実行されるのを防ぐ方法はありません。

そもそも、Excel マクロを実行するとき、引数なしの Excel マクロ (プロシージャー) に対して、下のように「test ( )」と書いても 2 回実行されてしまいます。

どうやら、Excel マクロ名 (プロシージャー名) を指定する Please Enter the macro name に カッコ ( ) を付けてしまうと、2 回実行されるようです。

そのため、引数を渡せば確実に 2 回実行されてしまいます。

暫定的な対処法

バージョン 3.5.0.0 の時点では引数を渡すと Excel マクロが 2 回実行されるのは避けられません。

そのため、下のようなやり方で疑似的に引数を渡すしかないと思います。

  1. Set Cell 命令であらかじめ決めたセルに引数の値を書き込む
  2. Run Macro 命令で Excel マクロを呼び出す
  3. Excel マクロ (プロシージャー) の処理の先頭で、セルの値を

参考

らんの眼