コピー2018.07.12みなさまこんにちは、ノグチです。以前の記事で、エクセルのChangeイベントを使って、指定セルに入力した値でマスタを検索して、検索にヒットした値をプルダウンリストに表示する方法をご紹介しました。【エクセルVBA】Changeイベントと組み合わせてもっと便利に!検索にヒットした値をドロップダウンリストに表示する方法エクセルのChangeイベントと、Validationオブジェクトを用いたドロップダウンリストを作成する方法を組み合わせて、セルに入力した値をマスタシートから検索し、検索にヒットした値を入力したセルのドロップダウンリストに表示させる方法をご紹介しています。この方法を使えば、入力作業が楽になるかもしれません。tonari-it.com2018.06.20自分で書いておいてなんですが、実はプルダウンリストを作成した後のステップに、ちょっとしたひっかかりを覚えておりました。それは、「VBAで作ったプルダウンリスト、手動で開くのは面倒臭いな...」ということ。VBAでプルダウンメニューを作ったら、シート上ですぐに開いてくれた方が嬉しいですよね。+↓を押せばよいので、これらのキーを押したということをVBAに投げてやればよいはず...!ということで今回は、VBAにキーボードを入力させたことにできる、SendKeysステートメントをご紹介します!目次SendKeysステートメントとはSendKeysステートメントで指定できるキープルダウンメニューをSendKeysステートメントで開くコードにSendKeysステートメントを組み込むVBAを実行してプルダウンメニューを開いてみる最後に連載目次:エクセルVBAのイベントを使ってもっと便利なツールにしよう!SendKeysステートメントとはSendKesyステートメントは、今アクティブになっている画面上で、人間がでキーボード入力をしたときの動作を、VBAにさせることができるステートメントです。簡単に言えば、人間がキーボードのEnterキーを押したときのように、VBAに対して「今開いている画面でEnterキーを押しなさい」と命令できるようなもの。記述方法も非常に単純です。Falseキーストロークは、キーボードのキーを指定する引数です。キーストロークは文字列として指定する必要があるので、コードではこんな感じで指定することになります。Falseは、以降の処理を、キーを押したことによって実行される処理が終わってから継続するのか(True)、キーが押されたという情報が送られたら即継続するのか(False)、によって使い分けることができます。この引数は省略可能で、その場合はTrueをがデフォルトになります。SendKeysステートメントで指定できるキーこのステートメントで指定できるキーは、例えば以下のようなものがあります。↓を指定したいので、「%{DOWN}」をVBAに記述すればよさそうです。プルダウンメニューをSendKeysステートメントで開くコードにSendKeysステートメントを組み込むでは、実際にSendKeysステートメントをコードに記述してみましょう。今回使用するコードはこちら。Sub以前の記事でご紹介した、シートのB5セルに入力した値をマスタシートから検索して、検索にヒットした値を全て入力セルのプルダウンメニューに表示させるというものです。↓を示す%{Down}を指定することによって、作成したプルダウンメニューを開くという動作にしています。VBAを実行してプルダウンメニューを開いてみる実際に上のコードを実行してみましょう。入力セルに「株」を入力して、実行してみると...この通り、VBAで検索した値が全てプルダウンメニューに表示され、且つ、シート上でプルダウンメニューが自動的に開かれていますね。↓が入力されたことと同じ状態になっています。これで、面倒臭い手動でプルダウンメニューを開く作業ともオサラバです!最後に今回は、今アクティブになっている画面上でVBAでキーボード入力をさせられる、SendKeysステートメントをご紹介しました。今回のプルダウンメニューを開くように、1回1回の手作業は大した作業量ではないとしても、それがエクセルツールを使うたび、それも頻繁に使うとなると塵も積もればなんとやら、無視できない手間になってきます。今回のSendKeysステートメントを使えば、そんなちょっとした手作業を軽減できるかもしれませんね。それでは、最後までお読みいただきありがとうございました!連載目次:エクセルVBAのイベントを使ってもっと便利なツールにしよう!エクセルVBAでリストの重複を排除する方法として、Dictionaryオブジェクトを使った重複排除の方法をご紹介しています。投稿者プロフィールノグチフリーランスPG・SE元製造子会社SE。業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルVBA入門】開いたブック名から文字列を抽出して人為的なミスを回避する方法エクセルVBAを使ってバラバラの経費精算書データを集約するシリーズです。人が入力する場合は必ず人為的なミスが入り込みます。それ回避する方法として開いたブックからファイル名を取得して利用する方法をお伝えします。今回からは表に罫線を引く方法などについて、いくつかご紹介していきたいと思います。罫線を引く方法も複数あり、状況によって使い分ける必要があります。今回は、『表の範囲全体に格子状の罫線を引く最も簡単な方法』についてです。2017.10.30Excel・VBA活用術エクセルで計算結果にエラーを表示しないIFERROR関数の使い方Excelでよく見かけるエラー表示...IFERRORという関数を使うことで綺麗に回避することができます。それとともに、関数の効率の良い便利な入力の仕方にも触れていますので合わせてマスターしましょう。自分で作成したExcelやメールで送られてきたExcelを立ち上げた時、「このブックには更新出来ないリンクが1つ以上含まれてます」というアラートが表示されたことありませんか?別のブックなんか参照してないのになんで!?と、なった時に更新できない原因の探し方と解除の方法ご紹介いたします。VBAで、受信ボックスの未読メール件数を取得してメッセージ表示させる方法をご紹介しています。Explorerを操作する初心者向けのシリーズ。今回はエクセルVBAでIEを操作してフォームにユーザー名とパスワードを入力してログインをする方法についてお伝えします。PMExcelのSendKeysステートメントでは、Numlockが外れるというバグが発生し、テンキーで数値を入力する場合は非常に困ることになります。PMsadoさまこんにちは!コメントありがとうございます。SendKeysの不具合は、Shellを使ったりする方法があるようですね。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Apps2PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Apps2PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。開発者プログラムとは、またどうして期限切れになったのか2020.02.222020.02.22ノンプロ研の福岡で初イベント「ノンプロ研無料体験@福岡」を開催しました!2020.02.14GASのV8ランタイムとRhinoランタイムのログと実行のUIの違いについて比較&解説2020.02.092020.02.09新構文をさっそく試そう!GASのプロジェクトをV8ランタイムに切り替える方法2020.02.082020.02.12Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。