mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Saturday, October 07, 2006

엑셀/Excel] VBA의 Rnd 함수로, 1에서 100까지의 랜덤 숫자 만들기


VBA를 비롯한 베이직 계열의 언어에서는 Rnd 함수로 랜덤 숫자 즉 난수를 발생시킵니다. 엑셀 함수인 RAND() 와는 전혀 다른 별개의 함수입니다.

엑셀의 RAND() 함수와는 달리, 비베의 Rnd 함수는 반드시 Randomize 라는 구문을 사용해야 합니다. 그렇지 않으면 무작위의 숫자가 나오지 않고 항상 같은 수(0.705547512 또는 0.705547511577606)가 나옵니다. Randomize 는 Rnd 앞에서 딱 1번만 사용해야 하고 루프 속에 넣으면 안됩니다.

문서를 열 때마다 값이 달라지는 엑셀의 RAND()와는 달리, VBA의 Rnd 함수는 결과값이 셀에 고정되어 있습니다. 왜냐하면 셀에 랜덤 함수가 직접 들어가는 것이 아니라, 값만 들어가기 때문입니다. 물론 VBA 를 다시 실행하면 값이 갱신됩니다.


비베의 Rnd 함수로, 랜덤 숫자 만들기 예제


Sub 랜덤숫자만들기()

Randomize

Dim R, C

  For R = 1 To 30
    For C = 1 To 10

      Cells(R, C).Value = Int(Rnd * 100) + 1

    Next C
  Next R

End Sub


실행시키면 A1 ~ J30 범위의 셀들이, 1에서 100까지의 무작위의 정수로 채워집니다.

Rnd 함수는, 0~1까지의 실수를 반환하기에, 1에서 100까지의 결과를 얻으려면

Int(Rnd * 100) + 1

이렇게 해야 합니다.



▶▶ 엑셀VBA] 지정한 범위의 셀, 한꺼번에 자동으로 채우기: Excel Range
위의 게시물에는, Rnd 함수가 아닌, 엑셀의 RAND() 함수를 수식으로서 셀에 넣어 랜덤 정수를 만드는 VBA예제가 있습니다. 거의 같은 결과입니다.



참고: ▶▶ 엑셀] VBA에서 RAND() 함수 에러: Sub 또는 Function이 정의되지 않았습니다

▶▶ 엑셀/Excel] 랜덤 함수 RAND() 사용법, 정수 난수 출력 - Random Integer

▶▶ 엑셀VBA매크로.예제: 셀 테두리에 색상 지정, 행운의 시트 만들기, Excel Sheet of Fortune




tag: office
엑셀 Excel | 워드 Word | VBA 매크로 | 오피스

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top