回答受付中の質問
チェックボックスについて
シート1
A B・・・・・
1 商品名1 商品名2
2 重量1 重量2
3 賞味期限1 賞味期限2
などが入っている商品紹介書があります。商品数50以上
これを元にチェックボックスのシート(シート2)を作成して、選択した商品だけを
さらに別シート(シート3)にA4で4つぐらい並べて表示したいと考えています。
シート2
A
1 商品1 □←チェックボックス
2 商品2 □
3 商品3 □
4
5
シート3
A B
1 商品名1 商品名2
2 重量1 重量2
3 賞味期限1 賞味期限2
4
5 商品名3 商品名4
6 重量3 重量4
7 賞味期限3 賞味期限4
この時に、2つしか選択しなければ、左上から右に2つといったように
つめるような形式にしたいです。
5つ選んだら2枚目に1つだけ移るかたちです。
なんか良い方法があればご教授お願い致します。
投稿日時 - 2010-06-11 01:15:30
11人が「このQ&Aが役に立った」と投票しています
回答(2件中 1~2件目)
質問者の技量(特にVBAのプログラムがが出来るか)による。
VBAを使わないでコントロールを使うには、固定的で、1つといったものしか出来ない(複数ではものすごく複雑になる)と思う。
チェックボックスを使うというのも、かっこよいが、思いつきだと思う。リストボックスの方が扱いやすい。1つのリストボックスの複数アイテムを関連づけるのにセル範囲が指定できる。チェックボックスは1つづつ指定となる。
ただしリストボックスでもMultiSelectになるとVBAを使わないと捉えるのが難しかろう。
選択されたもののシートへの表示は、選択された項目が捉えられれば(決れば)MATCH関数やVLOOKUP関数なんかで割り出せると思う。
チェックボックス選択ーー>選択したものをシートのセルに反映ーー>選択されなければFALSEーー>FALSEなら空白、ないしは拾わない(下記のやり方では)。TRUEのものを拾う(抜き出しする)
ーーー
商品の項目を列方向に並べるのは、エクセルに慣れてないものがやることのように思う。
それで行方向の例にして説明する。
例データ
Sheet1 a1:E4
A列 B列 C列 D列 E列
商品重量期限選択 TRUE個数
豆腐306月20日TRUE1
あぶらあげ1006月15日FALSE1
納豆1006月25日TRUE2
E列の関数E2に=COUNTIF($D$2:D2,TRUE)
D列はLinkedCell設定で反映される値。
ーーー
Sheet2
CheckBox1
CheckBox2
CheckBox3
を設ける(貼り付ける)
各々のプロパティのLinkedCellにSheet1!D2、D3,D4をそれぞれ指定。
ーー
Sheet3
豆腐302010/6/20
納豆1002010/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(該当件数数を超えた行の分)を出さない式も、そちらに書いているので省略する。
投稿日時 - 2010-06-11 09:56:15