0

私は、基本的にスクリーンスクレイピングを行うプロジェクトに取り組んでいます。VBA を使用して、スプレッドシートに保存された入力に基づいて別のシステムを駆動しています。私が直面している問題は、特定のフィールドがフィールド終了文字としてテンキーの + を必要とすることです。

SendKeys 関数を使用して他のフィールドに入力することに問題はありませんが、私の人生では、私が行った調査のいずれにおいても、その + を具体的に渡す方法を理解できません。誰かがこれをしなければなりませんでしたか?私は得られない単純なものがあるように感じます...

4

4 に答える 4

1

2007 については不明ですが、2003 以前の VBA SendKeys はキーパッド固有のキーの送信をサポートしていません。

キーパッドキーを実行するこのユーティリティを見つけましたhttp://cpap.com.br/orlando/SendKeysMore.asp?IdC=New

于 2009-05-18T04:00:46.077 に答える
0

MS Office がオブジェクト モデルで何かを公開していないが、GUI に存在する場合など、キーボードまたはマウス入力が唯一の方法であった一部の MS Office VBA プロジェクトでAutoITを使用できました。

AutoIT スクリプトでは、テンキーの + キーを入力するためにこれが機能するはずです。

Send("{NUMPADADD}")

AutoIT スクリプト (*.au3) テキスト ファイルをコンパイルして、VBA から実行できる EXE を作成できます。

Dim RetVal As Variant
RetVal = Shell("YourAutoITscript.exe")

AutoIT はwww.autoitscript.comで見つけることができます。

于 2009-11-06T14:15:38.043 に答える
0

別の人生に戻って、VB SendKeys コマンドの制限を回避するが、構文互換性があり、他のいくつかの機能 (スリープ、テンキー キーなど) を備えた PushKeys というプログラムを作成しました。それがあった私のウェブサイトはもうありませんが、幸いなことに誰かが私のPushKeys プログラムをここにアーカイブしてくれました。

VB、Delphi、C などのバリアントがあります。VB は、VBA で作業するのがかなり簡単なはずです。

于 2009-05-19T13:38:05.447 に答える
0

中括弧は機能しませんか?

 SendKeys I & "{+}", True
于 2009-05-19T13:29:46.853 に答える