お世話になります。いつも助けられてます。エクセル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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
フォントについて教えてください!
みなさんの一番好きなフォントは何ですか? よく使うフォントやこのフォント好きだなあというものをぜひ教えてください!
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
自分の通っていた小学校のあるある
進学したり大人になってから、「あれって自分の小学校だけだったのかな」と思うことありますよね。 逆に「他の小学校ってそんなことするの!?」と思ったり。 そんな「自分の通っていた小学校」のあるあるを教えてください!
-
店員も客も斜め上を行くデパートの福袋
シュールを通り越して店員も客も斜め上を行くデパートの福袋に入ってそうなものを教えて下さい。 よかったらレビューもしてください。
-
VBA 別シート、別ブックへ条件一致で転記
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
vbaでvbaProjectのパスワード解...
-
VBAで複数のブックを開かずに処...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
ワイルドカード「*」を使うとう...
-
Excelマクロ 該当する値の行番...
-
【Excel VBA】書き込み先ブック...
-
エクセルVBAで書式と値の貼付け...
-
VBA 二つのブックをうまく扱え...
-
VBA 実行時エラー 2147024893
-
マクロのBeforeCloseイベントに...
-
教えて下さい!VBAで複数Excel...
-
VBAで別ブックのシートを指定し...
-
[Excel]ADODBでNull変換されて...
-
Excelブックがアクティブになっ...
-
エクセルVBAでテキストボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】インデックスが有...
-
VBAで別ブックのシートを指定し...
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
VBA シート名が一致した場合の...
-
VBA 実行時エラー 2147024893
-
VBSでExcelのオープン確認
-
ACCESSVBA からExcelの他ブック...
-
Excel2007VBAファイルの表示に...
-
フォルダ内の全てのファイルに...
おすすめ情報