(備忘録) Excel & Access vba
- (2012-04-27 06:46:23)
ポップアップが出ているとVBAもUWSCも動作しない?
(2012/04/27)
置換パネルがでているとSendkeysが効かない
Excelで置換を行うsendkeysを発行しても、動作しない。エラーにもならず無言状態。
下記はAmazonの注文データに含まれている「変なハイフン」をAsciiハイフンに置換する操作。
手作業だと
置換(Ctrl+H) → 置換パネルポップアップ → 置換対象に移動(Alt+N) → 置換対象のペイスト(Ctrl+V)・・・
といった感じなので、それをそのままSendKeysステートメントに入れたもの。
Sendkeys "^H"
Sendkeys "%N"
Sendkeys "^V"
Sendkeys "{TAB}"
Sendkeys "-"
Sendkeys "%A"
なんら問題なさそうに見えたが、動作しなかった。
マクロパネルが出ているとUWSCのキー操作も効かない
Excelが自分自身の操作でどこかでぶつかっていると推測して、マクロパネルボタンから外部のUWCSを起動してキーエミュレーションを試みる。
※UWCSのキーエミュレーションコードは実際の操作をレコードしたものをそのまま記述。ただし、すでに開いているExcelシートを捕捉するために下記コードを追加
Excel = getactiveoleobj("Excel.Application") //起動中Excelオブジェクト取得
Excel.activesheet.range("B5").copy
UWSCは起動するにはするが、ビープ音が一発出るだけで、何も起こらない。
ポップアップ画面でプログラムが阻止される?
全然意味がわからなかったが、偶然マクロパネルからUWSCを起動直後にマクロパネルの「CLOSE」ボタンを間違って押したら想定通りの動作となる。
このことから、マクロパネルや別の操作パネルがポップアップしていると、プログラムがExcel画面を捕捉できないことが予想される。
置換パネルは置換作業が終了するまで消せないので、マクロパネルでUWSCで置換プログラムを呼び出したら、自身はすぐにCLOSE(Unload me)をする手順に書き換えてみると動作するようになった。
なんか原始的ではあるが、今日のところはこれで満足。