2017-04-20 5 views
0

나는 주사위를 굴리는 VBA 코드를 작성 중입니다. 롤링 기능이 완료되었습니다. ThePoint() 함수는 주사위 합계가 4,5,6,8,9,10과 일치 하는지를보고 싶습니다. 그렇다면 intPoint를 그 수로 설정합니다.VBA 프로 시저 사용을위한 고정 변수 반환

내 문제는 내 프로그램의 다른 곳에서 intPoint 값을 고정 된 숫자로 사용하고 싶습니다. 예를 들어, intPoint = 6 인 경우 해당 값 인 6을 하위 프로 시저에만 반환하고자합니다. 그러나 ThePoint를 호출 할 수 있으며 intPoint의 새 값을 설정합니다. 어떤 도움을 주셔서 감사합니다.

Function ThePoint() As Integer 
    Dim intPoint As Integer 
    Do Until intPoint 
     Select Case RollDice() 
      Case 4 
       intPoint = 4 
      Case 5 
       intPoint = 5 
      Case 6 
       intPoint = 6 
      Case 8 
       intPoint = 8 
      Case 9 
       intPoint = 9 
      Case 10 
       intPoint = 10 
     End Select 
    Loop 
    ThePoint = intPoint 
    Debug.Print ThePoint 
End Function 

Sub test() 
    Dim x As Integer 
    x = ThePoint 
    Debug.Print x 
End Sub 

답변

0

은 1d10 (10 면체)에 대한 귀하의 경우에는

Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 

로 RollDice() 함수를 정의합니다

Function RollDice() 
    RollDice = Int((10 - 1 + 1) * Rnd + 1) 
End Function 

지금 같은 출력을 가져야한다.