[VBA] 正方形状に 1 ~ n の数字を並べます

[VB-08] 正方形状に 1 ~ n の数字を並べます

 ユーザーが任意の数字 n を入力すると、ワークシートに 1 ~ n2 の数字が正方形状に並ぶようなマクロをつくってください。最初の数字 (1) はセル A1 に入るものとします。たとえば、n = 5 の場合は次のように数字が並びます。

 Excel VBA 正方形状に並べるプロシージャ(マクロ)

VB-08 のヒント

・ユーザーが n を入力できるようにします。

・ループでセルを処理するときは Cellsプロパティを使います。

・Cells(y, x) は y 行 x 列のセルを意味します。

・2 つの変数を使って二重ループさせます。
 

VB-08 の解答

 Cells(k, j) は k 行 j 列のセルを取得します。下図のように、n = 5 のとき、A 列には初項 1, 公差 5 の等差数列が並ぶので、Cells(k, 1) に入る数字は

1 + 5 (k - 1) = 5 k - 4

と表せます。k 行には初項 5 k - 4, 公差 1 の数列が並ぶので、Cells(k, j) には、

5 k - 4 + j

という数字が入ることになります。

 Excel VBA 正方形状に数字を並べるプロシージャ

 一般の n について考えると、A 列には初項 1, 公差 n の等差数列が並ぶので、Cells(k, 1) は

1 + n (k - 1)

と表せます。k 行には初項 n (k - 1) + 1, 公差 1 の数列が並ぶので、Cells(k, j) は、

n (k - 1) + 1 + j - 1 = n (k - 1) + j

と表せます。
 
VB-08 の解答コード

'数字を正方形状に並べるマクロ

Sub FillSquare()

Dim k As Long, j As Long, n As Long

'ユーザーが n を入力
n = InputBox("nを入力")

For k = 1 To n

 For j = 1 To n

  Cells(k, j) = n * (k - 1) + j

 Next j

Next k

End Sub

 n = 10 で実行すると下図のように 100 個の数字が並びます。

 Excel VBA 正方形状に100個の数字を並べるプロシージャ

スポンサーリンク
スポンサーリンク
末尾広告
末尾広告

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください