[Excel VBA]2 次元でキー割れしないといけなくなった
2 次元でキー割れという表現が正しいかどうかはチョット判らないが、列ごとにデータを追加していって、キー割れが行われるとその行の次の行がスタートとなってまた列にデータを追加していくという処理が必要になったので、自宅で先に素振りしたメモ。
仕様
- 1 ~ 10 の乱数を作成し、それを A 列~ J 列とする
- 乱数に沿ったセルを着色する
- 既に着色済みの時は、その次の行のセルを着色する
- A 列~ J 列のいずれかが 5 で割り切れる行に到達したら、その次の行をスタートラインとして全列スタートする
- 上記の処理を繰り返す
結果
コード
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub RamdomStack()
Dim ViewSheet As Worksheet
Set ViewSheet = ThisWorkbook.Worksheets("Sheet1")
' Adjst
With ViewSheet.Cells.Columns
.Clear
.ColumnWidth = 3
.Font.Size = 8
.HorizontalAlignment = xlCenter
End With
Dim Row As Long
Dim Column As Integer
Dim BreakPoint As Integer: BreakPoint = 1
Const BreakCount As Integer = 5
For i = 0 To 120
Column = Int(Rnd * 10) + 1
Row = BreakPoint
If ViewSheet.Cells(Row, Column).Value <> "" Then
Row = ViewSheet.Cells(Rows.Count, Column).End(xlUp).Row
If ViewSheet.Cells(Row, Column).Value <> "" Then
Row = Row + 1
End If
End If
' Decoration
With ViewSheet.Cells(Row, Column)
.Value = " "
.Interior.Color = RGB(255, 200, 0)
End With
If (Row Mod BreakCount) = 0 And (Row + 1) >= BreakPoint Then
BreakPoint = BreakPoint + BreakCount
End If
Call Sleep(300)
Next
Set ViewSheet = Nothing
End Sub
ディスカッション
コメント一覧
まだ、コメントがありません