본문 바로가기
VBA/엑사남_기초방

[기초방] VBA 100제 #36 [ 가로정렬하기 ]

by 일등미노왕국 2023. 3. 5.

더보기
Sub 기초방36()

    Dim rngAll As Range: Set rngAll = [c7:h7]
    Dim Vtemp: Vtemp = Split([c10], ", ")
    Dim bln As Boolean
    Dim C&, str$, cnt&: cnt = 65
    
    Do
        If TypeName(Application.Match(Chr(cnt), IIf(bln = False, rngAll, Vtemp), 0)) <> "Error" Then
        
           If bln = True Then
         
               For C = 1 To Len([c10])                                  '= 기초방 36-1번 문제 해법
             
                 C = InStr(C, [c10], Chr(cnt)): If C = 0 Then Exit For
                 str = IIf(str = "", Chr(cnt), str & "," & Chr(cnt))
                 [l10] = Haja_sort([l10], Chr(cnt))
               Next C
               
            Else
            
                str = IIf(str = "", Chr(cnt), str & "," & Chr(cnt))    '= 기초방 36번 문제 해법
                [l7] = Haja_sort([l7], Chr(cnt))
                
            End If
              
         End If
                
        cnt = cnt + 1
            
        If cnt > 90 And bln = False Then                              '= 알파벳의 Z까지 순환을 하였고 36번문제라면
        
           [l7] = str: bln = True: str = "": cnt = 65                 '= 36-1번문제를 위해 초기화
           
        ElseIf cnt > 90 And bln = True Then                           '= 36-1번 문제까지 모두 순환하였다면 종료해라
        
           [l10] = str: Exit Do
           
        End If
        
    Loop

End Sub

Function Haja_sort(rngX As Range, str$)

    Dim i&
    
    For i = 1 To 500
    
        rngX = str
        rngX.Font.ColorIndex = WorksheetFunction.RandBetween(1, 50)
            
    Next i

        rngX.Font.Color = vbBlack
End Function

기초방36(haja).xlsm
0.03MB

댓글