こんな方に読んでいただけたら
Excelシートへの直接入力・コピペ運用に、地味な面倒くささを感じている方
「UserFormって名前は聞いたことあるけど、実際どう組めばいいのかわからない」という方
検索・在庫確認・登録をバラバラの画面でやっていて、地味にストレスが溜まっている方
コピペしてすぐ動かせる、実働レベルのコード一式が欲しい方

あの日、画面を初めて開いたときのこと
私の職場では、3人それぞれが自分のファイルを独自ルールで運用していたせいで、型不一致のエラーに何度もぶつかってきました。
ある人は在庫なしを「-」で表現し、ある人は空欄のまま。同じ列のはずなのに、中身の作法が微妙にズレている。
あの経験から、自分の中で結論が出ていました。
「シートに直接入力させている限り、このズレは永遠になくならない」と。
とはいえ、そこからすぐにUserFormに辿り着いたわけではありません。
正直に言うと、最初は「面倒なことになりそうだな」という気持ちの方が大きかったです。
ボタンやテキストボックスを画面上に配置して、それぞれにコードを書いて…という作業量を想像すると、正直腰が重かったです。
VBAの基本構文はある程度書けるようになっていましたが、UserFormはまた別物という印象を持っていました。
それでも重い腰を上げたのは、受注のたびに起きていたこの動きに、いい加減うんざりしていたからです。
受注シートを開く
商品名を手入力(またはコピペ)
「あれ、この商品って今在庫いくつだっけ」と気になる
商品マスターシートに移動して在庫欄を目で追う
受注シートに戻って本数を入力
次回入荷がいつか気になって、またマスターシートを見に行く
これを1件ずつ、毎回繰り返していました。紙の伝票よりはマシでも、「早い」とは到底言えない状態です。
そして実際に、検索ボックスに商品名を打ち込むだけで候補が絞り込まれ、選んだ瞬間に在庫数と次回入荷予定まで同じ画面にパッと表示される
そのUserFormを初めて自分の手で動かしたとき、素直に「革命が起きた」と思いました。
今まで何度も往復していたあの移動が、丸ごとなくなっている。
大げさでなく、しばらく1人でニヤニヤしながら何度も入力を試していたくらいです。
今回は「見せかけ」じゃなく、動いているコードを丸ごと出します
実際に手を動かしてみたいという声を何度かいただいたこともあり、本記事ではコードを公開します。
社内で実際に稼働している以下の3本を、コメントも含めてほぼ丸ごと公開します。
受注入力フォーム本体(frmJuchu)― 検索・在庫確認・登録・取り消しまでを1画面でこなすメインのコード
在庫データ出力モジュール(Module_JS出力)― フォームで登録した内容を、HTMLダッシュボード用のJSファイルとして共有フォルダへ書き出す裏方のコード
マウスホイール制御モジュール(Module1)― UserForm上でもマウスホイールで検索候補リストをスクロールできるようにする、Windows APIを使ったコード
この3本がセットで動くことで、初めて「入力してから画面に反映されるまで」の一連の流れが完成します。
1本だけ持っていても片手落ちになるので、今回はまとめて全部載せます。
なお、コード内に元々含まれていた社内の共有フォルダパスや担当者名は、購入された方がご自身の環境にそのまま当てはめられるよう、Aさん/Bさんのような汎用的な表記に置き換えてあります。
実際にお使いいただく際は、コード内の★マークの箇所をご自身の環境の値に書き換えるだけで動く状態にしてあります。

ここまでは無料で読める部分です。
ここから先は、実際に動いている3本のコードそのものと、
作る過程でハマった箇所、そして自社用にカスタマイズするための具体的な勘所を、包み隠さず載せていきます。
正直に言うと、ここから先は「なんとなく便利そう」という温度感で読む内容ではありません。
実際に自分の環境に組み込んで、動かして、初めて価値が出るタイプの内容です。
今の運用を本気で変えたい、シート移動のたびに感じているあの小さなストレスを本気でなくしたい…そう思っている方だけ、この先に進んでください。
とはいえ、値段は昼マックと同じ500円です。
これで明日からの受注入力のたびに発生していた「シートを行ったり来たりする時間」がゼロになるなら、数回使えば十分に元が取れる計算になるはずです。
コードは全文コピペ可能な形で載せていますので、あとはご自身のシート名・テーブル名・共有フォルダパスに合わせて数カ所書き換えるだけで動かせます。
こんな方に読んでいただけたら
Excelシートへの直接入力・コピペ運用に、地味な面倒くささを感じている方
「UserFormって名前は聞いたことあるけど、実際どう組めばいいのかわからない」という方
検索・在庫確認・登録をバラバラの画面でやっていて、地味にストレスが溜まっている方
コピペしてすぐ動かせる、実働レベルのコード一式が欲しい方
あの日、画面を初めて開いたときのこと
私の職場では、3人それぞれが自分のファイルを独自ルールで運用していたせいで、型不一致のエラーに何度もぶつかってきました。
ある人は在庫なしを「-」で表現し、ある人は空欄のまま。同じ列のはずなのに、中身の作法が微妙にズレている。
あの経験から、自分の中で結論が出ていました。
「シートに直接入力させている限り、このズレは永遠になくならない」と。
とはいえ、そこからすぐにUserFormに辿り着いたわけではありません。
正直に言うと、最初は「面倒なことになりそうだな」という気持ちの方が大きかったです。
ボタンやテキストボックスを画面上に配置して、それぞれにコードを書いて…という作業量を想像すると、正直腰が重かったです。
VBAの基本構文はある程度書けるようになっていましたが、UserFormはまた別物という印象を持っていました。
それでも重い腰を上げたのは、受注のたびに起きていたこの動きに、いい加減うんざりしていたからです。
受注シートを開く
商品名を手入力(またはコピペ)
「あれ、この商品って今在庫いくつだっけ」と気になる
商品マスターシートに移動して在庫欄を目で追う
受注シートに戻って本数を入力
次回入荷がいつか気になって、またマスターシートを見に行く
これを1件ずつ、毎回繰り返していました。紙の伝票よりはマシでも、「早い」とは到底言えない状態です。
そして実際に、検索ボックスに商品名を打ち込むだけで候補が絞り込まれ、選んだ瞬間に在庫数と次回入荷予定まで同じ画面にパッと表示される
そのUserFormを初めて自分の手で動かしたとき、素直に「革命が起きた」と思いました。
今まで何度も往復していたあの移動が、丸ごとなくなっている。
大げさでなく、しばらく1人でニヤニヤしながら何度も入力を試していたくらいです。
今回は「見せかけ」じゃなく、動いているコードを丸ごと出します
実際に手を動かしてみたいという声を何度かいただいたこともあり、本記事ではコードを公開します。
社内で実際に稼働している以下の3本を、コメントも含めてほぼ丸ごと公開します。
受注入力フォーム本体(
frmJuchu)― 検索・在庫確認・登録・取り消しまでを1画面でこなすメインのコード在庫データ出力モジュール(
Module_JS出力)― フォームで登録した内容を、HTMLダッシュボード用のJSファイルとして共有フォルダへ書き出す裏方のコードマウスホイール制御モジュール(
Module1)― UserForm上でもマウスホイールで検索候補リストをスクロールできるようにする、Windows APIを使ったコードこの3本がセットで動くことで、初めて「入力してから画面に反映されるまで」の一連の流れが完成します。
1本だけ持っていても片手落ちになるので、今回はまとめて全部載せます。
なお、コード内に元々含まれていた社内の共有フォルダパスや担当者名は、購入された方がご自身の環境にそのまま当てはめられるよう、Aさん/Bさんのような汎用的な表記に置き換えてあります。
実際にお使いいただく際は、コード内の★マークの箇所をご自身の環境の値に書き換えるだけで動く状態にしてあります。
ここまでは無料で読める部分です。
ここから先は、実際に動いている3本のコードそのものと、
作る過程でハマった箇所、そして自社用にカスタマイズするための具体的な勘所を、包み隠さず載せていきます。
正直に言うと、ここから先は「なんとなく便利そう」という温度感で読む内容ではありません。
実際に自分の環境に組み込んで、動かして、初めて価値が出るタイプの内容です。
今の運用を本気で変えたい、シート移動のたびに感じているあの小さなストレスを本気でなくしたい…そう思っている方だけ、この先に進んでください。
とはいえ、値段は昼マックと同じ500円です。
これで明日からの受注入力のたびに発生していた「シートを行ったり来たりする時間」がゼロになるなら、数回使えば十分に元が取れる計算になるはずです。
コードは全文コピペ可能な形で載せていますので、あとはご自身のシート名・テーブル名・共有フォルダパスに合わせて数カ所書き換えるだけで動かせます。