回答受付が終了しました

Excel VBAで下記のことができるようにしたいです。 どのようにするとよいでしょうか? Dim myData As Variant Dim i As Long myData = Range(Range("A3"), Range("A11"))

補足

1~9の数字はランダムでかつ重複しないようにしたいです。

Visual Basic | Excel64閲覧

回答(4件)

0

>'myData(1,i)に1~9の数字を重複することなく入れたい とおしゃっているのに、なぜ、 myData = Range(Range("A3"), Range("A11")) とセルからデータを読み込んでいるのですか? とりあえず、 1~9の数字を、重複なくランダムに、A3:A11セルに入力するのであれば、↓ Sub sample() Dim xDic As Variant, WSF Set WSF = WorksheetFunction Set xDic = CreateObject("Scripting.Dictionary") With Range("A3:A11") Do While xDic.Count < .Count On Error Resume Next xDic.Add WSF.RandBetween(1, .Count), "" Loop On Error GoTo 0 .Value = WSF.Transpose(xDic.keys) End With End Sub

1

Dim tmp As Long Dim fChk(9) As Boolean Randomize For i = 1 To 9     tmp = Int(9 * Rnd + 1) If fChk(tmp) = False Then myData(1,i) = tmp fChk(tmp) = True Else i = i - 1 End If Next i

1人がナイス!しています