前画面へ戻る
以下のマクロは、セルにデータを出力する方法を編集しています。
標準モジュール(Module1)
Option Explicit
'全てのプロシージャ内で有効な変数です。
Public Atai As String
Sub Tate()
'セルの縦方向(上→下)にデータを出力するマクロです。
Dim i As Integer
Dim t As Integer
Dim Ransu As Integer
Dim Moji(20, 20) As String
'-----------シートデータ クリア--------
Cells.Select 'シート全体を選択
Selection.ClearContents 'データのクリア
Range("A1").Select
'-----------0〜25までの乱数を取得--------
Randomize '常に異なる乱数を発生
For t = 1 To 20 '列
For i = 1 To 20 '行
Ransu = Int(100 * Rnd)
'26以上ならやり直し(SubプロシージャでA-Zまでの値に代入
Do While Ransu > 25
Ransu = Int(100 * Rnd)
Loop
'Subプロシージャの呼び出し( )内は引き渡す引数を指定
Call Taihi(Ransu)
'セルに出力
ActiveSheet.Cells(4 + t, 2 + i).Value = Atai
Next i
Next t
MsgBox "おわり(^o^)丿"
End Sub
Sub Yoko()
'セルの横方向(左→右)にデータを出力するマクロです。
Dim i As Integer
Dim t As Integer
Dim Ransu As Integer
Dim Moji(20, 20) As String
'-----------シートデータ クリア--------
Cells.Select 'シート全体を選択
Selection.ClearContents 'データのクリア
Range("A1").Select
'-----------0〜25までの乱数を取得--------
Randomize '常に異なる乱数を発生
For t = 1 To 20 '行
For i = 1 To 20 '列
Ransu = Int(100 * Rnd)
'26以上ならやり直し
Do While Ransu > 25
Ransu = Int(100 * Rnd)
Loop
Call Taihi(Ransu)
ActiveSheet.Cells(4 + i, 2 + t).Value = Atai
Next i
Next t
MsgBox "おわり(^o^)丿"
End Sub
Sub Naname()
'セルの斜め方向(上→下)にデータを出力するマクロです。
Dim i As Integer
Dim t As Integer
Dim Ransu As Integer
Dim Moji(20, 20) As String
'-----------シートデータ クリア--------
Cells.Select 'シート全体を選択
Selection.ClearContents 'データのクリア
Range("A1").Select
'-----------0〜25までの乱数を取得--------
Randomize '常に異なる乱数を発生
For i = 1 To 20 '行,列
Ransu = Int(100 * Rnd)
'26以上ならやり直し
Do While Ransu > 25
Ransu = Int(100 * Rnd)
Loop
Call Taihi(Ransu)
With ActiveSheet
.Cells(4 + i, 2 + i).Value = Atai
.Cells(4 + i, 2 + (21 - i)).Value = Atai
End With
Next i
MsgBox "おわり(^o^)丿"
End Sub
Sub Random()
'ランダムにデータを出力するマクロです。
Dim i As Integer
Dim t As Integer
Dim Ransu As Integer
Dim Moji(20, 20) As String
Dim Gyou As Integer
Dim Retu As Integer
Dim Nokori As Integer
Dim SeruIti
'-----------シートデータ クリア--------
Cells.Select 'シート全体を選択
Selection.ClearContents 'データのクリア
Range("A1").Select
Randomize '常に異なる乱数を発生
'400のセルがあるので、無条件に400回繰り返す
For i = 1 To 400 '最初の繰り返し回数
Ransu = Int(100 * Rnd)
'26以上ならやり直し
Do While Ransu > 25
Ransu = Int(100 * Rnd)
Loop
'Subプロシージャを呼び出し、値を代入
Call Taihi(Ransu)
'任意のセルを乱数により取得
Gyou = Int(100 * Rnd) '行位置の取得
Do While Gyou = 0 Or Gyou > 20
Gyou = Int(100 * Rnd)
Loop
Retu = Int(100 * Rnd) '列位置の取得
Do While Retu = 0 Or Retu > 20
Retu = Int(100 * Rnd)
Loop
'任意のセルに出力
With ActiveSheet
.Cells(4 + Gyou, 2 + Retu).Value = Atai
End With
Next i
Nokori = 0
'空白セルをカウント
For i = 1 To 20
For t = 1 To 20
If ActiveSheet.Cells(4 + i, 2 + t).Value = "" Then
Nokori = Nokori + 1
End If
Next t
Next i
'MsgBox "空白セルは、" & Nokori & "個です"
Do While Nokori <> 0 '空白セルが"0"になったら終わる
Ransu = Int(100 * Rnd)
'26以上ならやり直し
Do While Ransu > 25
Ransu = Int(100 * Rnd)
Loop
Call Taihi(Ransu)
'任意のセルを乱数により取得
Gyou = Int(100 * Rnd) '行位置の取得
Do While Gyou = 0 Or Gyou > 20
Gyou = Int(100 * Rnd)
Loop
Retu = Int(100 * Rnd) '列位置の取得
Do While Retu = 0 Or Retu > 20
Retu = Int(100 * Rnd)
Loop
SeruIti = ActiveSheet.Cells(4 + Gyou, 2 + Retu)
'任意のセルが空白だったらそのセルに出力して、空白セルの個数を1つ減らす
If SeruIti = "" Then
ActiveSheet.Cells(4 + Gyou, 2 + Retu).Value = Atai
Nokori = Nokori - 1
End If
Loop
MsgBox "おわり(^o^)丿"
End Sub
Sub Taihi(Ransu)
'-------発生した乱数に値を代入---------
Select Case Ransu
Case 0
Atai = "A"
Case 1
Atai = "B"
Case 2
Atai = "C"
Case 3
Atai = "D"
Case 4
Atai = "E"
Case 5
Atai = "F"
Case 6
Atai = "G"
Case 7
Atai = "H"
Case 8
Atai = "I"
Case 9
Atai = "J"
Case 10
Atai = "K"
Case 11
Atai = "L"
Case 12
Atai = "M"
Case 13
Atai = "N"
Case 14
Atai = "O"
Case 15
Atai = "P"
Case 16
Atai = "Q"
Case 17
Atai = "R"
Case 18
Atai = "S"
Case 19
Atai = "T"
Case 20
Atai = "U"
Case 21
Atai = "V"
Case 22
Atai = "W"
Case 23
Atai = "X"
Case 24
Atai = "Y"
Case 25
Atai = "Z"
End Select
End Sub
前画面へ戻る