質問: excelでデータ全通り組み合わせ出力方法 excelでデータ全通り組み合わせ出力方法について教えて頂けますと助かります。 セルa~eに、数がまちまちのアイテム名が入っています。 (セルa~eというのは例で、変則的に全てのアイテム数は増減します。) 全ての組合せをセルg~kに各々書き出してくれる方法はあるでしょうか? (イメージ添付あり) できればセルに入力すれば自動的に組合せが追加されていくのが理想です。 excel2010を使用しており、vbaは初心者です。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。
回答: #1、2、cjです。#1、2、補足欄へのレスです。 取り急ぎ、コードのみ修正しました。 #2を元に書き換えています。 option explicit private sub worksheet_change(byval target as range) dim rsrc as range application.enableevents = false set rsrc = range("b2").currentregion application.enableevents = true if intersect(target, rsrc) is nothing then exit sub application.enableevents = false call printcombi(rsrc) application.enableevents = true end sub sub printcombi(byval rsrc as range) dim tnfld as long dim nrc as long dim nconti as long dim nrow as long dim i as long dim j as long tnfld = rsrc.columns.count nconti = 1 with rsrc(1, rsrc.columns.count + 3) .currentregion.clear cells(1).resize(, tnfld).copy .cells(1) for i = tnfld to 1 step -1 nrc = cells(rows.count, i).end(xlup).row nrow = 2 for j = 2 to nrc cells(j, i).copy destination:=.cells(nrow, i).resize(nconti) nrow = nrow + nconti next j nconti = nconti * (nrc - 1) next i with .cells(2, 1).resize(nconti) for i = 2 to tnfld range(.cells(1, i), .cells(.cells.count + 1, i).end(xlup)).copy destination:=.columns(i) next i end with end with end sub