プロが教えるわが家の防犯対策術!

windows API user32 から SendInput や SendMessage , FindWindow などを使って、VBAでExcelから他のアプリケーションソフト内にある複数のテキストボックスへコピペ作業を行おうと考えています。ただし、
①貼り付け先ウィンドウがアクティブでなくても貼り付けが行われること
②コピペをしなければ他のアプリを操作していても問題ないこと
という条件を付けたいです。
コピペ作業では、テキストボックス間の移動に、
③Tabでの移動
④Ctrl+Tabでのタブ切り替え
⑤Ctrl+Alt+→でのリストボックス内移動
⑥Spaceでのボタン押下やチェックボックス切替、ラジオボタン切替
⑦矢印キーでのコンボボックスの値切替
⑧ボタン押下により出現したウィンドウへの移動、戻り
が必要です。
こんなことできるのでしょうか?ヒントとなるキーワードだけでも教えて頂ければ幸いです。
特に②を満たすのが難しいのと、⑥の方法を探しても空白文字の方法しか見つからない、⑤の3つ同時押しの情報が見つからないなど、困ってます。

質問者からの補足コメント

  • うーん・・・

    正直なところ、WinActorやCELF with RPA などを検討した方が良いことは理解していますが、VBAでも簡単にできる部分はやれるようにしておきたくいと考えています。python、C#、html5、nodejsなどは一通り中級者ではあるのですが、如何せんWindows APIの知識がなくて困っています。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/12/22 04:16

A 回答 (4件)

こんばんは。



No.3さんが述べているUWSCというのは、中身は、Win APIのそのものなのですね。
今後、UWSCがどういうことになるのか、作者さんが不在なまま、現状を維持しているようです。

技術さえあれば、Excelに組み込め使用できるようになっているわけで、それをわざわざ、生のWin APIですることはないと思います。

xlID =GETID(xlName,"XLMAIN")
ifb xlID <0 Then
Msgbox ("Excel not Started")
ExitExit
endif
Excel = GetActiveOLEobj("Excel.Application","")

VBAといっても、Win APIのコード、それほど簡単なものでもありません。Excel VBAでの使用も限定されています。

>Windows APIの知識がなくて困っています
Win APIの知識を求めようとしても、C言語でも勉強しなければ、VB系の資料はほとんどないのではありませんか?

私などは、ずいぶん前からで手を付けたのですが、結局のところですが、モノにはなっておりません。(スタートラインにつくのが遅すぎたということです)
私の手元には、
『Visual Basic tips 1000+ Win32 APIを使いこなそう!』(ソシム)
『Excel VBAによる Win32 API プログラミング入門』は持っていますが、ほとんど役に立ちません。

今年になって、Win APIをExcel VBAで使うときに、知ったこともあります。

フリーツールで、Vector に "miniSpy" というものがあるので、それでずっと間に合わせていたら、出てこないものがあるということです。本家のSPY++ を使わないといけないこともあるのだということを知りました。

他に、ツールとしては、

WinAPI Viewer for MS Excel (by Ron de Bruin)
 https://www.rondebruin.nl/win/dennis/windowsapiv …
 Microsoft のWin API.chm(PDD-著作権の主張がない) は、ネットから探さなくてはなりません。
 ほとんどは、ヘルプの寄せ集めですが、ためにはなります。(英語のみ)
 https://sourceforge.net/projects/win32-help-chm/ たぶん、ここら辺り

API Viewer (ACTIVE VB)
2004年から更新されませんが、VBAとしては必須(Excel COMアドイン)
https://activevb.de/rubriken/apiviewer/index-api …

VB花ちゃんのVB2005で作られた、Win32API.exe
http://hanatyan.sakura.ne.jp/freesoft/win32api.htm
(説明はこれで得られます)

VBA用としての書籍 (基礎的なことだけ)
『大村あつし の Excel VBA Win64/32 APIプログラミング 』
http://amazon.co.jp/dp/4798047341
    • good
    • 0
この回答へのお礼

これいいですね、買ってみます。
http://amazon.co.jp/dp/4798047341

公式リファレンスがC系前提なので、正直辛いです。
C系は組み込み系かNetFrameWorkのデスクトップアプリ開発はしたことあります。しかし、VBAとの連携がイマイチどこから手を付けていいかわかりません。

いろいろ探してみましたが、Appiumというのが便利そうなので、
これをVBAに組み込めないか試してみることにします。
http://appium.io/docs/en/drivers/windows/
Win32、VB6、WPF、UWP など全て行けそうです。

お礼日時:2018/12/27 14:35

スクリプトでWindows操作を記述できる、HSPやUWSCを使った方が絶対に楽そうな予感…。

    • good
    • 0
この回答へのお礼

やはりそんな気がしますよね。
しかしVBAのExcelとの親和性の良さは手放したくないです。
CELF with RPA とか導入したいのですが、予算的に厳しくてVBAしてる感じです。
提案ありがとうございます。

お礼日時:2018/12/24 10:31

>>こんなことできるのでしょうか?ヒントとなるキーワードだけでも教えて頂ければ幸いです。



日本語で考えて、ストーリー化できるなら、時間かければRPAソフトで可能になるのでしょう。
もちろん、試行錯誤を何度も行いながら調整していくことになるのだと思いますよ。

そして、「Excel VBAでやる」「RPAソフト等の市販ソフトは使わない(金出さない!)」「Windows APIの知識は乏しい」となれば、なかなか大変だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/12/24 10:31

市役所などの自治体が行っているパソコン相談で相談したほうが良いと思います。

この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/12/24 10:31

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

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


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