10代と話して驚いたこと

Excel VBAにて既に起動している別アプリケーション(社内独自の業務用システム)に表示されている文字列を取得したいです。
現在はWindows APIを用いてマウスの座標を指定し、sendkeysでコピーを行い文字列を取得していますが、ウインドウの座標が想定している場所からずれているとうまく取得ができないことがあります。
そこで、ウインドウの座標関係なくアプリケーション上の文字列を取得する方法はあるでしょうか?
ご教授願います。

A 回答 (3件)

    • good
    • 0

textboxならsendkeyで{tab}を送るとほしい居場所にFocusできるかも知れません。


基幹システムの仕様にもよるでしょうが。
    • good
    • 0

もし・・・、



(01)表示されているデータが画像の文字列ではなく、テキストの文字列
(02)そのテキストが表示されているのはテキストボックス
(03)目的のテキストボックスにはTABキーやShit+TAB などで行き来ができる
(04)その他の場所もショートカットキーで行き来ができる

・・・ということでしたら、そのままSendKeysでTAB移動などをして、目的のテキストボックスに明確に移動して、そこでC文字列データをコピーなどしてみてはいかがでしょうか?

あとは、UWSCなどの「マウス操作やキーボード操作を自動化するソフトと連携させる」とか・・・
(100%確実に、質問者様のPC環境で動作する保証はありませんのですみませんが、試す価値はあると思います。)

UWSCでは、決まった場所に決まったウィンドウサイズで開くこともできますので、社内システムの画面を開くときだけUWSCを使い、そのような形でに開いておいて、あとは既存のAPIやいまままでのSendKeysのコードをそのまま使うとか・・・

APIでも、決まった場所に決まったサイズでウィンドウを開くことができるかもしれません。

「api vba ウィンドウ 位置 指定 64bit」などの語句でWeb検索してみてはいかがでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A