横線を公平に引くように考えてみよう。
やり方はいろいろあるが、3本の縦罫に対して、2つの間隔。乱数で左右に振り分けてみる。
しかし、左右のどちらかに必ずある、というのもおかしい。更に乱数を使って「線を引くかどうか」を判定しよう。
なんだかスカスカである。そう、左右に分けたはいいが、その後も半分の確率でしか線を引いていないからだ。ちょっと増やしてみよう。
何度か実行すると分かるが、スカスカのときと詰まっているときの差が結構ある。次回はこれを調整してみよう。
やり方はいろいろあるが、3本の縦罫に対して、2つの間隔。乱数で左右に振り分けてみる。
Sub Macro1()
Dim lRow As Long
With Range(Cells(3, 2), Cells(16, 3))
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
End With
Randomize
For lRow = 3 To 15
If Rnd < 0.5 Then '0.5未満なら左
Cells(lRow, 2).Borders(xlEdgeBottom).Weight = xlThin
Else 'さもなくば右
Cells(lRow, 3).Borders(xlEdgeBottom).Weight = xlThin
End If
Next lRow
End Sub
しかし、左右のどちらかに必ずある、というのもおかしい。更に乱数を使って「線を引くかどうか」を判定しよう。
Sub Macro1()
Dim lRow As Long
With Range(Cells(3, 2), Cells(16, 3))
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
End With
Randomize
For lRow = 3 To 15
If Rnd < 0.5 Then '0.5未満なら左
If Rnd < 0.5 Then '0.5未満なら線を引く
Cells(lRow, 2).Borders(xlEdgeBottom).Weight = xlThin
End If
Else 'さもなくば右
If Rnd < 0.5 Then '0.5未満なら線を引く
Cells(lRow, 3).Borders(xlEdgeBottom).Weight = xlThin
End If
End If
Next lRow
End Sub
なんだかスカスカである。そう、左右に分けたはいいが、その後も半分の確率でしか線を引いていないからだ。ちょっと増やしてみよう。
Sub Macro1()
Dim lRow As Long
With Range(Cells(3, 2), Cells(16, 3))
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
End With
Randomize
For lRow = 3 To 15
If Rnd < 0.5 Then '0.5未満なら左
If Rnd < 0.8 Then
Cells(lRow, 2).Borders(xlEdgeBottom).Weight = xlThin
End If
Else 'さもなくば右
If Rnd < 0.8 Then
Cells(lRow, 3).Borders(xlEdgeBottom).Weight = xlThin
End If
End If
Next lRow
End Sub
何度か実行すると分かるが、スカスカのときと詰まっているときの差が結構ある。次回はこれを調整してみよう。