- 締切済み
エクセルのマクロを作成したいです
エクセルのセル「G9~G1508」に1-78までの数字をランダムに表示させるマクロを作成したいです。 一応自分で作成したのですがなんの事やら分からず… どういう記述をすればよろしいのでしょうか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
No.5です。 たびたびごめんなさい。 前回は15085行までになっていました。 Sub Sample2() With Range("G9:G1508") .Formula = "=RANDBETWEEN(1,78)" .Value = .Value End With End Sub に変更してください。 どうも失礼しました。m(_ _)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていますが、参考程度で・・・ 単純に Sub Sample1() With Range("G9:G15085") .Formula = "=RANDBETWEEN(1,78)" .Value = .Value End With End Sub てな感じではどうでしょうか? ※ データを「値」とせずに数式のままだと、 F9キーを押すたびに再計算されます。m(_ _)m
- kagakusuki
- ベストアンサー率51% (2610/5101)
Sub Macro1() Range("G9:G1508").FormulaR1C1 = "=INT(RAND()*78)+1" Range("G9:G1508").Value = Range("G9:G1508").Value End Sub 或いは Sub Macro2() Dim i As Integer Randomize For i = 9 To 1508 Range("G" & i).Value = Int(Rnd * 78) + 1 Next i End Sub
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
Public Sub Main() Const TARGET_COLUMN As Integer = 7 Const START_ROW As Integer = 9 Const END_ROW As Integer = 1508 Application.ScreenUpdating = False ' 対象範囲のランダム値を決定する Call Randomize Dim values(1 To END_ROW - START_ROW + 1, 1 To 1) Dim i As Integer For i = START_ROW - (START_ROW - 1) To END_ROW - (START_ROW - 1) Dim randomValue As Integer randomValue = CInt(Fix(Rnd() * 78)) + 1 values(i, 1) = randomValue Next ' 対象範囲にランダム値を設定する ActiveSheet.range(Cells(START_ROW, TARGET_COLUMN), Cells(END_ROW, TARGET_COLUMN)).Value = values Application.ScreenUpdating = True End Sub
- CC_T
- ベストアンサー率47% (1038/2202)
No.1 文章自己訂正 ×:1から78が欲しいならRNDに77を… ○:1から78が欲しいならRNDに78を…
- CC_T
- ベストアンサー率47% (1038/2202)
RND関数で、0以上1未満の乱数を得られます。これに必要な幅を掛ければいい。 1から78が欲しいならRNDに77を掛けて 0から77.999999・・までの数を作り、 少数以下を切り捨てて0から77までの数として、1を足して1~78までの数とする。 ~~~~~~~~ Sub test() Dim i As Integer For i = 9 To 1508 Cells(i, 7) = Application.RoundDown( Rnd * 78, 0) + 1 Next i End Sub