
お世話になります。いつも助けられてます。エクセルVBAの質問です。個別のコーディングは
できるのですが,表題の件について,アドバイスいただければと思います。
やりたいことは,
1.ThsisWorkBookから他ブックを開く
↓
2.開いたブックをみながら特定の行を選ぶ(← →キーか,マウスを使う)
↓
3.選んだ行をThsisWorkBooに転記する
のようなことです。今までは,2の部分がは,あらかじめ読む行をテキストボックス等から
取得していましたが,視覚的に分かりやすくしたいので,2の部分をいれたいと考えていま
す。
キー入力の方法とうは,分かるのですが,流れとしてどんな手順を踏めばいいのか,また,
どのようなイベントを使用すればいいのか,アドバイスいただければありがたいです。
No.1ベストアンサー
- 回答日時:
こんばんは
>(← →キーか,マウスを使う)
を完全にVBAで対応しようとすると、キー入力やマウス入力を取得して、内容を解析し、それに応じた表示を行うことが必要になります。
基本操作のUIとしてエクセルが有する機能ではありますが、VBAで全部を実装しようとするとそれなりに面倒かも知れません。
マウスやキーの操作を可能にするには、入力待ちループの中で、DoEvents等を実行することで可能にすることはできます。
また、「読む行」(?)を選択なり指定するなりしたら、それが終了したことを示す何らかの入力が必要になると思われます。
(Enterキー入力とか、なんらかのマウス操作などでしょうか。)
キー入力等をVBAで感知するには、WindowsのAPIを利用すれば可能になります。
https://liclog.net/getasynckeystate-function-vba …
https://vbabeginner.net/getasynckeystate/
これで必要な入力を判定し、それに応じた処理を行うという流れになるでしょう。
多少面倒とは思いますが、ルールをうまく決めておけば、実現することは可能と思います。
上記が面倒なら、もっと簡単そうな代案をいくつか・・
(いずれも、キー操作やマウス操作に関しては、エクセルの機能を利用する方法です)
◇開いたブックの固定セルをクリアし、
そこに指定するセル範囲なり行番号等を記入するルールにしておく。
VBAでは、当該セルを監視して、セルの値が空でなくなったら、その値を利用して処理すれば実現できると思います。
◇選択終了用のボタンを設置したUserFormを作成しておき、
ブックを開いたら Modeless でそのフォームを表示しておきます。
(Modeless表示であれば、キー入力やマウス操作が有効になります)
範囲指定が終わったら、ユーザはボタンを押し、VBAで残りの処理を行います。
(ボタンクリックの処理に記述しておく)
思い付きレベルで申し訳ありませんが、こんなところでしょうか。
早速のご回答ありがとうございます。ご教示いただいたHPを参考に,APIを使った方法でいろいろやってみたいと思います。
ThsisWorkBookから開くBookは,メールで,記入を依頼する
ものなので,マクロを置くのは,避けたいと思ってます。
No.3
- 回答日時:
No1です。
>ThsisWorkBookから開くBookは,メールで,記入を依頼する
>ものなので,マクロを置くのは,避けたいと思ってます。
No1の回答は、ThisWorkbook(=転記先ブック)にのみマクロが記述されていることを想定しています。
代案での方法も同様で、マクロは自ブックのみで、転記元のブック(=開かれる他のブック)は .xlsx等 マクロのないブックで可能なはずです。
(個人的には、最後の案が一番よさそうに思いますが・・)
たびたびありがとうございます。
今回は,ご教示いただいた,
https://vbabeginner.net/getasynckeystate/
の例示のものを改変して,何とか思った動作ができるようになりました。
ありがとうございました。
No.2
- 回答日時:
かっこ悪いですが。
キー入力プロセスが入るなら、 キー入力後にどのセルを選んだか決定する処理が入るですよね。
ThisWorkbookをまっさらなエクセルでなく、あらかじめ作ったボタン付きマクロシートを呼び出すことにし、セルを選んでボタンを押すと次のマクロが走る(前のマクロはThisWorkbookを開いて終わる)
など、2段構えのマクロにすれば、出来るのかなと。
最初のマクロ付きエクセルに、ボタン付きシートもテンプレートで用意し、マクロ途中で外にコピーし、それを使うとかで、ファイル自体は1つで済ませれるかもです。
早速のご回答ありがとうございます。また,アイディアもあり
がとうございます。
This Workbookには,大本になるマスターのデータや,処理
本体のVBAを記述しています。
ThsisWorkBookから開くBookは,メールで記入を依頼する
もので,マクロ等を設置するのは,さけたいと思ってます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 転記先VBA 一致しているセルがコピーされない 5 2021/11/15 17:23
- Visual Basic(VBA) VBA シート名が一致した場合の転記内容について 2 2021/11/15 13:07
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) VBA: HTTPでのスクレイピング 2 2021/12/28 21:14
- Visual Basic(VBA) 転記VBA エラーが出ます 2 2021/11/15 16:08
- Visual Basic(VBA) 【Excel VBA】書き込み先ブックが既に開かれてた場合の処理 3 2021/11/04 16:17
- Visual Basic(VBA) 【関数orVBA】カーソルのある行を黄色にし、A列の値を別シートに表示できますか? 4 2021/12/28 00:03
- Visual Basic(VBA) エクセルのマクロを教えてください 4 2022/02/04 08:05
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Excel(エクセル) エクセル作業の効率化マクロを教えて下さい 7 2022/02/06 00:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
VBA 実行時エラー 2147024893
-
元データ(ピボッド)を開かずマ...
-
VBA 別ブックからコピペしたい...
-
[Excel]ADODBでNull変換されて...
-
VBAで複数のブックを開かずに処...
-
マクロについて教えてください
-
エクセル共有化のトラブル
-
VBAで別ブックのシートを指定し...
-
VBA アプリケーション定義また...
-
Excelマクロ 該当する値の行番...
-
【VBA】全シートの計算式を全て...
-
VBA コードを実行すると画面が...
-
vbaでvbaProjectのパスワード解...
-
ワイルドカード「*」を使うとう...
-
2つ目のコンボボックスが動作...
-
ACCESSVBA からExcelの他ブック...
-
Excelのマクロコードについて教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
Excelファイルを開くとき、読み...
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
複数のエクセルファイルとシー...
-
【ExcelVBA】インデックスが有...
おすすめ情報