エクセルのVBAプログラムの急遽作成の続き(なんとか目処がたちそうだ)で掲載したが、先月の処理に関しては辛うじて、今月の1日で何とか処理する事ができた。エクセルのVBAのプログラム作成が何とか間に合ったからだ。一方で、このプログラムでの処理後の修正も力作業で乗り切り、夕方ギリギリの滑り込みセーフとなったが、当社で最も早い処理だったらしい。逆を言うと、他部門はシステムの締めが第4営業日となっており、私と部下の女性が最後は力作業となった(冷や汗をかくぐらい必死だった)が、9月1日の一日で全てが終了した。
さて、私のここ8月からの処理を振り返ってみると、殆ど新(基幹)業務システムで入力処理を私が行なった事で、問題が発生しなかったが、私に取ってはかなりの負担になっていた。しかし、これをこのまま部下の女性に渡すと更に危険が増すと思い、1ヶ月は私が業務の実務をする事で耐えた。その合間をぬって何とかもっと簡略化できないか?と考えていた。
新業務システム(私的意見ながら基幹と言う言葉は、アクセル+VBで構成される事から外す事にした)の課題は多くあり、その認識は担当部長が既に知っている為、私は敢えて文句は言わず、お互い歩み寄る形で相談したいた。つまり、実務上は双方共に問題意識を持っており、それぞれが処理しやすいように考えていた。
と言う事でその後のUWSCの更なる続きと言うか、このUWSCに強力な組み合わせと言うか新しい機能と課題を知る事になった。
つまり、UWSCからCOMオブジェクトが使える事がわかり、エクセルで予め処理したデータを自由に、UWSCに取り込めると言う事がわかった。
つまり、UWSC+COMオブジェクトで処理すると言う方向性が見えて来た。
1)問題はCOMオブジェクトによる処理スピードの速さと後処理のタイミングがかなり難しい。要はSLEEPで何秒待ち時間を撮るかと言う事。
2)UWSCの高度記録(スクリプトでの記述)の殆どは失敗。もちろんアプリによると思うが、今回の新業務システムでは、プルダウンメニューの選択も出来なかった。
と言う事で、問題は、COMオブジェクトの処理後の待ち時間とUWSCの高度記録を使っての処理をどう実現させるかになる。
COMオブジェクトの実行後は、少なくとも数秒待つ事が必要であり、そうでなければ、マウスポイントの位置すら検知できない事が分かったので取り合えず、これで薦めようかと思っている。
高度記録による処理は、結果的にはショートカットをSCKEYで使うか仮想キーで使うかのどちらかであり、ドッチも似たり寄ったりかなと考えており、最大の問題は文字入力つまりSENTSTR関数ですべてが処理できるかが最大の課題となりそうだ。
// ------------------------------ // COMオブジェクトでエクセルファイルから必要な情報をセットする 受注番号 = WBook.ActiveSheet.Cells[1,2].Value // クローズ処理とオブジェクトのクリアー SLEEP(2) ACW(GETID("×××× 基幹業務システム ", _ "ThunderRT6MDIForm"),14,30,1251,964,0) // 受注メニュー(プルダウンメニュー)クリック BTN(LEFT,CLICK,159,60,1000) // 受注入力メニュー選択(表示されたプルダウンメニューからメニューを選択) BTN(LEFT,CLICK,173,79,1000) |
※上記のCOMオブジェクトの処理後のSLEEPの時間が、キーとなる。2~3秒で、ほぼ何とかいけそうだ。
最も、UWSCは、上記の様にCOMオブジェクトを直接記述しなくとも、専用の関数も容易されている様だが、その違いまでは未だ検証していない。上記でもかなり高速にエクセルが起動しSheet1に設定された各値を、瞬時に設定する為、余りにその速さに驚いたが、問題はその後処理である。上記のSLEEPを入れなかった為に、その次の業務システムに引き継ぐ所ではマウスボタンクリックでさえも、正常に動作しなかった。
実は更なる落ちがあって、当分このUWSC+COMオブジェクトの開発は、一時中断しようと考えている。その理由はまた別の機会に掲載したい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます