< | >

(備忘録) 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)をする手順に書き換えてみると動作するようになった。

なんか原始的ではあるが、今日のところはこれで満足。






<< COM経由でインスタンス生成という話< | >HDDをDtoD領域も含めて丸ごとコピーするEaseUS >>
search
layout
admin

[▲page top]