画像のように,Sheet1にはC列~L列まで商品名があります。
M列以降に名前などのデータが並んでいます。
例えば,名前①の人は商品①だけを購入,名前②の人は①③⑤⑧を購入している。。。。。とします。
次にSheet2は,それぞれの商品の購入者名簿です。
例えば,「商品①」のボタンを押すと,商品①を購入している名前①,名前②,名前⑤の3名のデータを抽出するといった名簿を作成したいのです。
ちなみにSheet1の購入商品は購入商品の個数を表しているのではありません。つまり,ここのセルには「1」が入力されるか,または空白かのどちらかです。
このようなマクロを考えているのですが,知識がないのでさっぱり分かりません。
どうかお願いします。
また,できればデータのない欄は斜線を入れれるようにもしたいです。
例えば,Sheet2の「商品①」の場合は3名しかデータがないので,この表のB7のセルから下の(具体的にはK20まで)部分にはデータがないので,ここには右上がりの斜線が引ければありがたいです。
No.2ベストアンサー
- 回答日時:
こんにちは!
商品数だけコマンドボタンを挿入しているのですね?
画像を拝見すると「姓」・「名」が結合されているように見えるのですが、
それではExcel的にどこまでが「姓」なのか判断できませんので
「姓」はM列・「名」はN列になっているという前提です。
「商品①」のコマンドボタンのオブジェクト名はそのまま「CommandButton1」となっているとします。
とりあえず「商品①」のコードだけ
Private Sub CommandButton1_Click()
Dim i As Long, myEnd As Long, wS As Worksheet
Set wS = Worksheets("Sheet1")
With Range("C4:D20")
.ClearContents
.Borders(xlDiagonalUp).LineStyle = xlNone
End With
For i = 4 To wS.Cells(Rows.Count, "C").End(xlUp).Row
If wS.Cells(i, "C") = 1 Then
'▼ 「姓」「名」の2列しか操作していない//
Cells(Rows.Count, "C").End(xlUp).Offset(1).Resize(, 2).Value = _
wS.Cells(i, "M").Resize(, 2).Value
End If
Next i
myEnd = Range("C3").End(xlDown).Row
If myEnd < 21 Then
Range(Cells(myEnd + 1, "C"), Cells(20, "D")).Borders(xlDiagonalUp).LineStyle = xlContinuous
End If
End Sub
※ 表の詳細が判らないので
コマンドボタンを配置しているSheetのC・D列の操作しかしていません。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- デジタルカメラ 写真撮影可能なバーコードリーダーを探しています 2 2022/05/26 17:15
- Visual Basic(VBA) チームごとにどの商品を何個希望しているか数量を算出したいです。 A列(A2~A265)に各チーム名が 3 2023/07/18 18:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
オートフィルタ後のデータから...
-
エクセルで行の高さ及び列幅の...
-
矩形範囲の複数列を縦1列に並...
-
急ぎ!色のついたセルを非表示...
-
Excelで並び替え後にア行...
-
文字列を比較し、相違するフォ...
-
複数回答のクロス集計の方法
-
エクセル VBA 行間隔を飛ばした...
-
検索条件に合うセルの個数を数...
-
Excelで複数列のデータを1列に...
-
マクロで行の高さを設定したい
-
EXCELで日付を比べ3か月以内の...
-
プルダウンに【なし、平均、デ...
-
エクセルのマクロで別のシート...
-
エクセルの時刻のカウントが出...
-
平均変化率の信頼区間
-
エクセル 複数行ある同一商品...
-
エクセルの集計方法を教えて下さい
-
エクセル関数のSUMPRODUCTにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
平均変化率の信頼区間
-
急ぎ!色のついたセルを非表示...
-
オートフィルタ後のデータから...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
EXCELで日付を比べ3か月以内の...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
エクセル関数について
-
excel / ピポッド 日数を出したい
-
エクセル VBA 行間隔を飛ばした...
-
時間の重複チェック
-
プルダウンに【なし、平均、デ...
-
EXCEL 最終行のデータを他のセ...
-
列と行の名前(重複あり)が交...
おすすめ情報
あっ。
斜線はなくてもいいです。
あまり多くのことは理解できないので、とりあえず名簿の作成だけ急ぐのでお願いします。
名前は重複しません。
複数の行に,同じ名前が出てくることはありません。
一人で複数の商品を購入することはあります。
(画像のSheet1のように,購入商品が最大で①~⑩の全商品を購入する人がいたり,逆にまったく購入しないため,どのセルも空白の場合もあったりします。)
つまり,商品①の購入者は全ての名簿中3名しかいないものの,逆に商品②は購入者が15名いるといったように,名簿の人数は変動します。