1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

[레벨:30]아별

2011.12.02 11:30

음..

a = Int((8 * Rnd) + 1) Or Chr(Int(25 * Rnd + 65))

or연산자는 논리값을 리턴합니다.

A or B는 A또는 B가 True일경우 True를 리턴합니다. 둘다 False이면 False를 리턴하구요..

 

이럴땐.. IF를 사용해야합니다.

If "조건" Then "true일경우" Else "false일경우"

"true일경우"나 "false일경우"의 실행코드가 1주일경우는 IIF를 사용합니다.

IIF("조건","True일경우","False일경우")

 

저는 조건을 Rnd * 10 Mod 2로 사용했습니다.

0~10사이의 값을 2로 나눈 나머지로 0또는 1을 결과값으로 갖습니다.

Rnd함수를 사용했으니까.. 실행할때마다 랜덤으로 0또는 1이 나오겠죠..

조건문에서 0은 False이고, 0이 아닌 숫자는 True로 인식합니다. 즉 1은 True죠..

 

변수들 형식을 String으로 변경하고.. 숫자를 문자로 바꾸는 CStr함수를 활용했습니다.

기존의 Rnd의 배수 설정이 틀려서.. 수정했습니다.

Int((상한값 - 하한값 + 1) * Rnd + 하한값)

 

 

Sub 울트라()
    Dim i As Long
    Dim a As String, b As String, c As String, d As String
    Dim e As String, f As String, g As String, h As String
    Randomize (1)
    For i = 1 To 100
        a = IIf(Rnd * 10 Mod 2, CStr(Int((9 * Rnd) + 1)), Chr(Int(26 * Rnd + 65)))
        b = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        c = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        d = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        e = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        f = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        g = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        h = IIf(Rnd * 10 Mod 2, CStr(Int((10 * Rnd) + 0)), Chr(Int(26 * Rnd + 65)))
        Cells(i, 2) = (a & b & c & d & e & f & g & h)
        Next i
End Sub

 

 

 

 

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)