昼から出社。しかし待機が長い。その間に頼まれていたものを試作する。VBScriptからExcelのVBAを起動して欲しいという。大体作ってあったので暇つぶしにはちょうど良いだろうと思ったのだが梃子摺った。何にかと言うとVBAが2回動作する。
今日までに作ったものはVBAの標準モジュールの Public sub を呼ぶようにしていたのだが、本来頼まれたものはExcel のシートにボタンが設置してあって、手動だと、このボタンを押して動作させるのだが、その代わりに VBScript からボタンを押して欲しいという。これは標準モジュールではなくてシートに付属するもので、private sub なのだな。そのせいかと思ってあれやこれや修正していたのだが、じたばたとしていたら、ひょんなことから解決した。
それは
objExcel.Run "Sheet1.Button_Click()"
と書いていたのだが
objExcel.Run "Sheet1.Button_Click"
とするのが正しかったようだ。最後に「()」があるとコンパイラが2回呼び出しにしてくれてしまうらしい。確かに正規表現だと括弧はアレだな。今回のは理由が不明なのだが、これを心得た上であちらこちらを見返してみると、括弧は無いのが正しいようだ。それが判ればあとは早い。瞬殺で片付けてしまった。
そのあとも延々と待ち。20時ごろに開放されて帰宅。