リストボックスに入力済みセルの値だけ読み取って表示する方法

Excel-VBA

オリジナル入力画面を作ることができるユーザーフォーム。

波乗りアヒル
波乗りアヒル

カレンダーや住所録を作った時にリストボックスの値が、自動的に入力済みのセルだけ探して表示されたら便利だと思いませんか?

この技を習得するまでは、リストボックスのプロパティに範囲をあらかじめ指定しておいていましたが、予備も含めて余分な範囲まであるので無駄になっていました。

波乗りアヒル
波乗りアヒル

🔰のおじさんには、リストボックスに表示するセルの範囲を入力済みセルを自動的に探して表示させるなんて技。

レベル高すぎてなかなかうまくVBAコードにたどり着くことができなかったのですが、ようやく成功しました。

スポンサーリンク


目次

ユーザーフォーム表示直前の動作設定

ユーザーフォームが表示される直前に作業させることができる、InitializeというVBAコードがあります。

このInitializeをユーザーフォーム自体に組み込むことによって、指定した作業を行ってからユーザーフォームが表示されてくれるので、やっと最近使えるようになりました。

そして、リストボックスに表示させるセルの範囲を入力済みセルのみ自動的に探して表示することも可能になりました。

実際にユーザーフォーム自体にこのようなVBAコードを書いてあります。

セルN列にリストボックスに表示したいリストがN1から順番にN2,N3…と記載しています。

Private Sub UserForm_Initialize()
Range(“N1”).Select
Dim i As Integer
Do While ActiveCell.Value <> “”
i = i + 1
ActiveCell.Offset(1, 0).Select
ListBox1.AddItem (Cells(i, 14))
Loop
End Sub
  1. ユーザーフォームを表示する直前に実行する
  2. セルN1を選択する
  3. 整数型の変数「i」を宣言する
  4. 繰り返し処理をして選択されたセルが空欄セルを探す
  5. 変数「i」は「i」+1をする
  6. 選択したセルの1行下0行右を選ぶ(同一列という事)
  7. リストボックスに記載するのはセル「i」行目の14列目(N列)
  8. 見つかるまで探し見つかったら終了
  9. マクロ終了
波乗りアヒル
波乗りアヒル

空欄セルを表す<>””というのを知ったので使えるようになりました。

Initializeを書く場所に関しては、下記ページに書いてあるのでここでは省略します。

あわせて読みたい
ユーザーフォームが表示されると自動的にセルの値がテキストボックスに表示される方法 オリジナル入力画面を作ることができるユーザーフォーム。 波乗りアヒル カレンダーや住所録を作った時に今日の日付が、自動的にユーザーフォームに表示されたら便利だ...
波乗りアヒル
波乗りアヒル

ご覧いただきありがとうございます。

ブログランキングに登録しています。

少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。


Microsoft Officeランキング

ユーザーフォームを使えばこんなに便利に早く作業が終わりますよ
あわせて読みたい
エクセルVBAで住所録入力フォームを作る方法 数百人規模の中規模の住所録や顧客データをエクセルで管理している事業所って意外と多いですが、データを検索して修正するのってすごく面倒じゃないですか? 面倒だなあ...
あわせて読みたい
ユーザーフォームでオリジナル入力画面を作る エクセルのデータ入力・検索・修正作業ってとても面倒で時間と手間がかかりませんか? この作業を簡単に素早く終わらせたくないですか? エクセル使うなら今話題の時短...
とりっぷぼうる
エクセル関数とVBAで和暦西暦対応カレンダー作成 | とりっぷぼうる エクセル関数を基本として作成し、ユーザーフォームで日付選択ができるようにすることで複雑なマクロが分からなくても、自由にカスタマイズして自分のエクセルに組み込んで...
あわせて読みたい
Excel-VBAもくじ~エクセルの作業時間を半減させる方法 【コピペOK】このExcel-VBAページに掲載している内容・VBAコードが、少しでもお役に立てるのであればコピーして使っていただいて構いません。 たった1秒で完了!驚異の...
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

目次