AddItem登録している複数の値をセルに張り付ける方法
エクセルでユーザーフォームのリストボックスに項目登録にAddItemを使った場合に、セルに記載したいと思ったことはありませんか?
セルからリストボックスは一般的ですが、この逆のパターンはちょっと頭を悩ましますが、すぐにできますよ。
記載したいセル番地=ListBox番号 List(番号)
リストボックスの値が1列の場合
VBAコードを使ってセルに記載する方法と同じで、セル番地=リスト番号で簡単にAdditem登録された値や項目をセルに記載することができます。
注意することは、リストボックスの一番最初の行のAddItemは1行目ではなく「0」行目になることぐらいです。
それでは、実際にVBAコードを使ってAdditem登録した値や項目をセルに書き写してみましょう。
1か所のセル・1つのAddItem
リストボックスを使っていてこのような使用例はないと思いますが、基本なので記載します。
この場合、5行目のAddItemを記載するならばList(4)となります。
2か所のセル・2つのAddItem
こちらも実用例としてはあまりないと思いますが、2か所書き写したい時に記載するVBAコードです。
Sheets(“リスト”).Range(“A1”).Value = ListBox1.List(0)の部分を2行にしてもいいのですが、Withステートメントを使う事により、同じ内容(ここではSheets(“リスト”))に対して記載を省略できるので使用しています。
このように2つ以上ある場合に何行も繰り返して記載してもいいのですが、エクセルが重くなる原因となるので、繰り返し処理を使う事をおススメします。
複数のセル・複数のAddItem
リストボックスなので実用的なのが複数のAddItem登録されて値や項目を、セルにまとめて記載することの方が多いと思います。
ここでは繰り返し処理のFor~Nextを使用して一括してAdditemに登録した20個の値をセルA1~A20へそれぞれ記載します。
繰り返し処理を行うと短いVBAコードでセルA1に最初のAddItemを記載して、次にA2に2番目のAddItemと順番に20回繰り返してくれるので、一瞬で書き写すことができます。
一般的に For~Next を使う時にここでは、変数「i」に対して「データ型」(文字や英数字など)指定せずに使っています。
Excel2009から2016までは問題なく動作しています。
ちなみに指定する場合は「Dim i As データ型の種類」をForの前に入れます。
リストボックスが2列の場合
リストボックスの初期設定は1列になっていますが、2列で使う事も可能です。
内容が重複するので2列利用の設定方法は下記をご覧くださいませ。
参考までに、複数のセル・複数のAddItemで2列目の値をセルに記載させるには、行と同じくリストボックスの最初の列が「0」なので、「1」とすれば可能になります。
Sheets(“リスト”).Cells(i, 1).Value = ListBox1.List(i – 1,1)
赤字の部分を付け加えるだけでリストボックスの2列目の値を取得してセルに記載してくれますので、簡単ですよ!