windows API user32 から SendInput や SendMessage , FindWindow などを使って、VBAでExcelから他のアプリケーションソフト内にある複数のテキストボックスへコピペ作業を行おうと考えています。ただし、
①貼り付け先ウィンドウがアクティブでなくても貼り付けが行われること
②コピペをしなければ他のアプリを操作していても問題ないこと
という条件を付けたいです。
コピペ作業では、テキストボックス間の移動に、
③Tabでの移動
④Ctrl+Tabでのタブ切り替え
⑤Ctrl+Alt+→でのリストボックス内移動
⑥Spaceでのボタン押下やチェックボックス切替、ラジオボタン切替
⑦矢印キーでのコンボボックスの値切替
⑧ボタン押下により出現したウィンドウへの移動、戻り
が必要です。
こんなことできるのでしょうか?ヒントとなるキーワードだけでも教えて頂ければ幸いです。
特に②を満たすのが難しいのと、⑥の方法を探しても空白文字の方法しか見つからない、⑤の3つ同時押しの情報が見つからないなど、困ってます。
No.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
これいいですね、買ってみます。
http://amazon.co.jp/dp/4798047341
公式リファレンスがC系前提なので、正直辛いです。
C系は組み込み系かNetFrameWorkのデスクトップアプリ開発はしたことあります。しかし、VBAとの連携がイマイチどこから手を付けていいかわかりません。
いろいろ探してみましたが、Appiumというのが便利そうなので、
これをVBAに組み込めないか試してみることにします。
http://appium.io/docs/en/drivers/windows/
Win32、VB6、WPF、UWP など全て行けそうです。
No.3
- 回答日時:
スクリプトでWindows操作を記述できる、HSPやUWSCを使った方が絶対に楽そうな予感…。
やはりそんな気がしますよね。
しかしVBAのExcelとの親和性の良さは手放したくないです。
CELF with RPA とか導入したいのですが、予算的に厳しくてVBAしてる感じです。
提案ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 7 ショートカットキー 応用編 どういうの主に使いますか? 2 2022/12/28 23:46
- デスクトップパソコン ん~…分からん 7 2022/06/10 10:47
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Safari(サファリ) safariで複数のタブを開いています。 ios15を使用 タブを長押しで並び替えするときに つい 1 2022/07/03 15:34
- Android(アンドロイド) Android端末(arrows we FCG01)のタブの切り替え方について 2 2023/01/02 10:59
- マウス・キーボード macからリモートデスクトップでwindowsに接続した際のキーボード配列 3 2023/07/10 08:40
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
VBAでコントロールのハンドルを取得したい
Visual Basic(VBA)
-
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
EnumChildWindowsの使い方(VBA)
Visual Basic(VBA)
-
-
4
他アプリの操作(メニューバー)
Visual Basic(VBA)
-
5
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
6
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
7
vbaから他のアプリを終了
Visual Basic(VBA)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
【sendkeysメソッドが動かずに苦慮しております】
Visual Basic(VBA)
-
10
マウスイベントが動かない
Visual Basic(VBA)
-
11
C言語でwin32apiを使ってnotepadにpostmessageでcontro
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Fancyboxのiframe内に閉じるボタン
-
DataGridViewのチェックボック...
-
グリッドビューでのチェックボ...
-
JavaScriptでconfirmを使いたい...
-
C# ボタンを押すとyahooのサイ...
-
AlertダイアログのOKボタンにつ...
-
メール添付されたPDFファイルが...
-
最新ページを表示する際のF5...
-
Eclipseでクリーンが出来ない
-
SPREADでカーソルの位置を1行目...
-
c# 文字列の最後から1文字削除...
-
CheckBoxをボタン形式にして押...
-
EXCEL2010でセルが編集中かを判...
-
【C#】 : WindowsProgramming ...
-
Excel:「フォーム」のボタンで...
-
JSPでメッセージボックスを表示...
-
Webブラウザの閉じるボタン無効...
-
Page_Load時にボタンクリックイ...
-
MFC ボタンのEnableについて
-
VBAで一時中断したプログラムの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで一時中断したプログラムの...
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
Eclipseでクリーンが出来ない
-
VC++ MFC CListCtrlで、ボタン...
-
メール添付されたPDFファイルが...
-
EXCEL2010でセルが編集中かを判...
-
SPREADでカーソルの位置を1行目...
-
VBのこのコードの意味を教えて...
-
【C#】 : WindowsProgramming ...
-
Page_Load時にボタンクリックイ...
-
初期状態に戻す方法
-
Fancyboxのiframe内に閉じるボタン
-
Ctrlキーを押しながらのダブル...
-
グリッドビューでのチェックボ...
-
CheckBoxをボタン形式にして押...
-
ブラウザの×ボタン(閉じるボタ...
-
Webブラウザの閉じるボタン無効...
-
「alt+←」を無効にする方法は?
-
VB.NETでボタンクリックイベン...
おすすめ情報
正直なところ、WinActorやCELF with RPA などを検討した方が良いことは理解していますが、VBAでも簡単にできる部分はやれるようにしておきたくいと考えています。python、C#、html5、nodejsなどは一通り中級者ではあるのですが、如何せんWindows APIの知識がなくて困っています。