質問者の技量(特にVBAのプログラムがが出来るか)による。
VBAを使わないでコントロールを使うには、固定的で、1つといったものしか出来ない(複数ではものすごく複雑になる)と思う。
チェックボックスを使うというのも、かっこよいが、思いつきだと思う。リストボックスの方が扱いやすい。1つのリストボックスの複数アイテムを関連づけるのにセル範囲が指定できる。チェックボックスは1つづつ指定となる。
ただしリストボックスでもMultiSelectになるとVBAを使わないと捉えるのが難しかろう。
選択されたもののシートへの表示は、選択された項目が捉えられれば(決れば)MATCH関数やVLOOKUP関数なんかで割り出せると思う。
チェックボックス選択ーー>選択したものをシートのセルに反映ーー>選択されなければFALSEーー>FALSEなら空白、ないしは拾わない(下記のやり方では)。TRUEのものを拾う(抜き出しする)
ーーー
商品の項目を列方向に並べるのは、エクセルに慣れてないものがやることのように思う。
それで行方向の例にして説明する。
例データ
Sheet1 a1:E4
A列 B列 C列 D列 E列
商品 重量 期限 選択 TRUE個数
豆腐 30 6月20日 TRUE 1
あぶらあげ 100 6月15日 FALSE 1
納豆 100 6月25日 TRUE 2
E列の関数E2に=COUNTIF($D$2:D2,TRUE)
D列はLinkedCell設定で反映される値。
ーーー
Sheet2
CheckBox1
CheckBox2
CheckBox3
を設ける(貼り付ける)
各々のプロパティのLinkedCellにSheet1!D2、D3,D4をそれぞれ指定。
ーー
Sheet3
豆腐 30 2010/6/20
納豆 100 2010/6/25
#N/A #N/A #N/A
A2の式
=INDEX(Sheet1!$A$2:$C$100,MATCH(ROW()-1,Sheet1!$E$2:$E$100,0),COLUMN())
この式をC2まで式複写
A2:C2を下方向に式複写
上記はimogasi方式。Googleででも「imogasi方式」で照会すれば、沢山の抜き出し問題で私の回答した質問が出てくる。もちろん他の回答者の他の方法も載っている。
上記Sheet3の#N/A(該当件数数を超えた行の分)を出さない式も、そちらに書いているので省略する。