|
TAKA さん:
>コード内容がちょっと難しいです (T▽T)アハハ!
簡単にフローチャートのみ説明します。
1.マス目のエリアを取得
2.マス目サイズを取得
3.エリアに対して、指定したマス目サイズが入るかどうか判断
4.マス目を1ヶずつ描写
>ひかるサンのみたいに範囲指定ができません
>どうすればいいでしょう??
スンマセン。もうあまり時間がありません。対応が難しいです。
変数名等を変更し、少しだけ分かりやすくしたつもりです。
Sub TEST()
Dim マス目エリア As Range
Dim マス目サイズ As Range
Dim スタート位置縦 As Long
Dim スタート位置横 As Integer
Dim エリア行数 As Integer
Dim エリア列数 As Integer
Dim マス目行数 As Integer
Dim マス目列数 As Integer
Dim I As Integer
Dim J As Integer
'外枠(マス目の外エリア)、内枠(1ヶのマスサイズ)を取得
Set マス目エリア = Application.InputBox(Prompt:="マス目エリアを指定して下さい。", _
Title:="【 マス目作成 】", Top:=-80, Type:=8)
Set マス目サイズ = Application.InputBox(Prompt:="マス目サイズを指定して下さい。", _
Title:="【 マス目作成 】", Top:=-80, Type:=8)
スタート位置縦 = マス目エリア.Row
スタート位置横 = マス目エリア.Column
エリア行数 = マス目エリア.Rows.Count
エリア列数 = マス目エリア.Columns.Count
マス目行数 = マス目サイズ.Rows.Count
マス目列数 = マス目サイズ.Columns.Count
If エリア行数 >= マス目行数 And エリア列数 >= マス目列数 And _
エリア行数 Mod マス目行数 = 0 And エリア列数 Mod マス目列数 = 0 Then
For I = スタート位置縦 To _
スタート位置縦 + マス目行数 * (エリア行数 / マス目行数 - 1) Step マス目行数
For J = スタート位置横 To _
スタート位置横 + マス目列数 * (エリア列数 / マス目列数 - 1) Step マス目列数
With Range(Cells(I, J), Cells(I + マス目行数 - 1, J + マス目列数 - 1))
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
End With
Next
Next
Else
MsgBox "この選択じゃぁ、出来ないよ!"
End If
End Sub
|
|