画像のようにパターン1〜パターン4まで、種類の違う情報が入っているとして、
画像右のように、全部のパターン内の情報をを1行ずつ出力する方法・関数等あれば教えていただけませんでしょうか?
VBA を使います。
以下のコードを標準モジュールに貼り付けて、write_perm サブルーチンを実行してください。
Const SOURCE_ROW = 3 ' 参照元(行) Const SOURCE_COL = 2 ' 参照元(列) - B列 Const dest_row = 3 ' 書込先(行) Const DEST_COL = 8 ' 書込先(列) - H列 Sub write_perm() Dim ref_rows() ReDim ref_rows(SOURCE_COL To Cells(SOURCE_ROW, SOURCE_COL).End(xlToRight).Column) row = dest_row Call write_perm_work(ref_rows, SOURCE_COL, row) End Sub Private Sub write_perm_work(ref_rows, ref_col, dest_row) For r = SOURCE_ROW To Cells(Rows.Count, ref_col).End(xlUp).row ref_rows(ref_col) = r If ref_col >= UBound(ref_rows) Then For c = LBound(ref_rows) To UBound(ref_rows) Cells(dest_row, DEST_COL + c - LBound(ref_rows)).Value = Cells(ref_rows(c), c) Next dest_row = dest_row + 1 Else Call write_perm_work(ref_rows, ref_col + 1, dest_row) End If DoEvents Next End Sub
このコードでは、組合せの元になるデータがあるシートと同じシートに、組み合わせのパターンを書き出すようにしてます。
先頭に書いてある定数で、元になるデータと書き込み先を指定します。
組合せの元になるデータの左上が B3 、組み合わせのパターンを書き出す先頭の位置が H3 としています。
Mac で Excel の VBA を試す環境がないのですが、特別なことをやっているわけではないので、多分、動くと思います。
パターンの数が 4 じゃなくても、動くようにしたつもりです。
VBA を使います。
以下のコードを標準モジュールに貼り付けて、write_perm サブルーチンを実行してください。
Const SOURCE_ROW = 3 ' 参照元(行) Const SOURCE_COL = 2 ' 参照元(列) - B列 Const dest_row = 3 ' 書込先(行) Const DEST_COL = 8 ' 書込先(列) - H列 Sub write_perm() Dim ref_rows() ReDim ref_rows(SOURCE_COL To Cells(SOURCE_ROW, SOURCE_COL).End(xlToRight).Column) row = dest_row Call write_perm_work(ref_rows, SOURCE_COL, row) End Sub Private Sub write_perm_work(ref_rows, ref_col, dest_row) For r = SOURCE_ROW To Cells(Rows.Count, ref_col).End(xlUp).row ref_rows(ref_col) = r If ref_col >= UBound(ref_rows) Then For c = LBound(ref_rows) To UBound(ref_rows) Cells(dest_row, DEST_COL + c - LBound(ref_rows)).Value = Cells(ref_rows(c), c) Next dest_row = dest_row + 1 Else Call write_perm_work(ref_rows, ref_col + 1, dest_row) End If DoEvents Next End Sub
このコードでは、組合せの元になるデータがあるシートと同じシートに、組み合わせのパターンを書き出すようにしてます。
先頭に書いてある定数で、元になるデータと書き込み先を指定します。
組合せの元になるデータの左上が B3 、組み合わせのパターンを書き出す先頭の位置が H3 としています。
Mac で Excel の VBA を試す環境がないのですが、特別なことをやっているわけではないので、多分、動くと思います。
パターンの数が 4 じゃなくても、動くようにしたつもりです。
田舎のIT職人様
2016/04/27 00:18:33早々にどうもありがとうございます。こんなすてきなものがあるんですね!ただ、当方環境 Office for Mac 2011のため、インストールでつまづきました> OS Yosemite Ver.10.10.5です。 最初にお伝えしておくべきでしたね。すみません。Macでも使えるこういうものあったりしますでしょうか?