Excelの文字列の全通りの組み合わせを出力がしたいのですが、その方法が分かりません。
以前の記事に似た質問になり(https://oshiete.goo.ne.jp/qa/4122783.html)、ベストアンサーを参考にさせて頂いたのですが、こちらは2文字列の場合の回答で、3文字列のデータの全組み合わせを表示させたいのですが、VBAの知識がなく書き直すことができません。どなたか教えて頂けないでしょうか。
次の文字が1行目からあるとして
例えばセルAに
・りんご
・みかん
・いちご
セルBに
・だいこん
・キャベツ
・トマト
セルCに
・卵
・ハム
・ベーコン
これらを次の通り、隣のシートに転記したいです。文字の間には半角スペース
りんご だいこん 卵
りんご だいこん ハム
りんご だいこん ベーコン
りんご キャベツ 卵
りんご キャベツ ハム
りんご キャベツ ベーコン
といった感じです.
よろしくお願いします!
No.1ベストアンサー
- 回答日時:
こんにちは!
元データはSheet1にA~C列の1行目からあるとし、Sheet2のA列に表示するとします。
一例です。
標準モジュールにしてください。
Sub Sample1()
Dim myDic As Object
Dim i As Long, j As Long, k As Long, maxRow As Long
Dim myStr As String, wS As Worksheet
Dim myKey, myR
Set myDic = CreateObject("Scripting.Dictionary")
Set wS = Worksheets("Sheet2")
wS.Range("A:A").ClearContents
With Worksheets("Sheet1")
For j = 1 To 3
maxRow = WorksheetFunction.Max(maxRow, .Cells(Rows.Count, j).End(xlUp).Row)
Next j
myR = Range(.Cells(1, "A"), .Cells(maxRow, "C"))
End With
For i = 1 To maxRow
For j = 1 To maxRow
For k = 1 To maxRow
If myR(i, 1) <> "" And myR(j, 2) <> "" And myR(k, 3) <> "" Then
myStr = myR(i, 1) & " " & myR(j, 2) & " " & myR(k, 3)
If Not myDic.exists(myStr) Then
myDic.Add myStr, ""
End If
End If
Next k
Next j
Next i
myKey = myDic.keys
myR = Range(wS.Cells(1, "A"), wS.Cells(UBound(myKey) + 1, "A"))
For i = 0 To UBound(myKey)
myR(i + 1, 1) = myKey(i)
Next i
Range(wS.Cells(1, "A"), wS.Cells(UBound(myKey) + 1, "A")) = myR
Set myDic = Nothing
wS.Activate
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
tom04様
ありがとうございます!できました(涙)。
図々しくもうひとつ質問させて頂きたいのですが、元データを増やした場合(例えばA列にいちごの次にパイナップルといれる)どうやって、sheet2の情報は更新されるのでしょうか。
無知すぎて申し訳ありませんが、教えて頂けましたら幸いです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 名前と日付が一致する箇所にフラグを立てる関数が知りたいです 4 2022/08/11 02:24
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Visual Basic(VBA) 指定した文字から指定した文字のスペースまでを削除するVBAの構文について 6 2022/07/24 22:20
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダイエーのパートの面接はどの...
-
今カレーを作りましたが、にん...
-
長ねぎの代用として玉ねぎって...
-
ニラの先が、紫色だけど、食べ...
-
豚肉が・・・
-
餃子の具が固くなってしまいます
-
古くて黄色くなったキャベツ
-
よく万能ネギをおかずの飾り・...
-
痛んだ長ネギの見分け方
-
じゃがいもを入れないビーフシ...
-
チンゲン菜、茹でるべきか茹で...
-
焼く前のお好み焼きのタネは…
-
牛丼を作ったのですが。。。。
-
もやしは生で食べられる?
-
「しめじ」の発音
-
煮たキャベツが苦いです。
-
野菜の肉詰めから、肉が外れな...
-
キャベツを剥いても剥いても葉...
-
「○○は食べられない」「嫌い」...
-
今日はシチューを作る予定です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
長ねぎの代用として玉ねぎって...
-
今カレーを作りましたが、にん...
-
温野菜の冷蔵保存 毎日職場で食...
-
餃子の具が固くなってしまいます
-
よく万能ネギをおかずの飾り・...
-
豚肉が・・・
-
古くて黄色くなったキャベツ
-
前日に作って食べるときに温め...
-
チンゲン菜、茹でるべきか茹で...
-
じゃがいもを入れないビーフシ...
-
家で作った人参を切ってみたら...
-
もやしは生で食べられる?
-
ダイエーのパートの面接はどの...
-
焼く前のお好み焼きのタネは…
-
長ネギを鍋に入れるなら茹で時...
-
トマト鍋の甘みを消すには?
-
ブロッコリーって生で食べれる...
-
コーンビーフってどんな味?
-
キャベツを剥いても剥いても葉...
-
キムチがしょっぱくなってしま...
おすすめ情報