エクセルのマクロについて教えて下さい。

A,B,Cという単語を入力すると、

ABC
ACB
BAC
・・・と
全ての組合せ結果を出すものを作成したいのですが、
(AAAや、AAB、など同じ文字が並ぶものは含まず)

その他に、
A B C
A C B
B A C
・・・と
半角スペースを入れたものも上記のものと別に出力したいのです。

さらに、
A BC
AB C
・・・と
このスペースの有り無しの組合せも別に全て出力したく

最後に例外として、
A

としたものを最後に入れて完成、これらの組合せを全ての結果を、ABCと入れると、出力するものを教えて下さい。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/01/08 23:54:28
  • 終了:2013/01/09 16:29:49

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13481ベストアンサー獲得回数11982013/01/09 00:35:23

ポイント300pt
Sub main()
    Dim word(3) As String
    Dim e As Long

    word(1) = "A"
    word(2) = "B"
    word(3) = "C"
    
    
    'シートのA列に結果を出力します。
    e = 1
    For a = 1 To 3
        For b = 1 To 3
            For c = 1 To 3
            
                If Not (a = b Or b = c Or a = c) Then
    
                    Cells(e, 1) = word(a) & word(b) & word(c)
                    e = e + 1
                    Cells(e, 1) = word(a) & " " & word(b) & word(c)
                    e = e + 1
                    Cells(e, 1) = word(a) & word(b) & " " & word(c)
                    e = e + 1
                    Cells(e, 1) = word(a) & " " & word(b) & " " & word(c)
                    e = e + 1
                    
                End If
            Next c
        Next b
    Next a
    
    
    For a = 1 To 3
        Cells(e, 1) = word(a)
        e = e + 1
    Next a
End Sub


wordは 好きな文字に変更してください。
word数を 増やす場合は、ループと 空白の分を 増やしてください。

出力結果

ABC
A BC
AB C
A B C
ACB
A CB
AC B
A C B
BAC
B AC
BA C
B A C
BCA
B CA
BC A
B C A
CAB
C AB
CA B
C A B
CBA
C BA
CB A
C B A
A
B
C

id:taknt

ループを 分ければ それぞれ 別に出せます。

2013/01/09 00:38:02
id:surippa20

完璧でした。早々にありがとうございました。

2013/01/09 16:29:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません