VBAでエクセル九九表を一瞬で作成する方法!書式設定も同時に!

VBAでエクセル九九表を一瞬で作成する方法!書式設定も同時に!

VBAでエクセル九九表(掛け算表)を作成したいときはないでしょうか。

けど、そんな中で悩むことは、

・VBAでエクセル九九表を作成したいが方法がよくわからない
・VBAで書式設定をしたエクセル九九表を作成したいが方法がよくわからない

ですよね。

今回はそんなお悩みを解決する

・VBAで九九表を一瞬で作成し、さらにセルの書式設定も同時に行う方法
・VBAを使って2桁以上の掛け算表を作る方法

についてまとめます!

VBAで九九表作成とセルの書式設定を行う方法

VBAを使って九九表(掛け算表)を一瞬で作成し、さらにセルの書式設定も同時に行う方法について説明します。

VBAで九九表を作成するイメージ

VBAで九九表を作成するイメージについて説明します。

まずは空のエクセルを用意します。

VBAを実装し、マクロを実行すると、

書式設定つきの九九表の完成です。

さらに簡単な設定で2桁以上の掛け算表も作ることができます。

かんたんですね。

それでは早速実装してみましょう。

空のエクセルを用意

まずは空のエクセルを用意します。

先にマクロが有効なxlsm形式で保存しておきます。

サンプルVBAコード

次に、九九表を作成するためのVBAコードを用意します。

Sub 九九表を作成し書式設定する()
    Dim i As Integer
    Dim j As Integer

    ' 行列項目の値を設定します。
    For i = 1 To 9
        Cells(1, i + 1).Value = i
        Cells(i + 1, 1).Value = i
    Next i

    ' 九九表の値を設定します。
    For i = 1 To 9
        For j = 1 To 9
            Cells(i + 1, j + 1).Value = i * j
        Next j
    Next i
    
    
    ' 表の罫線を設定します。
    With Range("A1:J10")
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
       .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    
    ' 列項目の背景色を設定します。
    With Range("A1:J1")
        .Interior.Color = RGB(173, 216, 230)
    End With
    
    ' 行項目の背景色を設定します。
    With Range("A1:A10")
        .Interior.Color = RGB(173, 216, 230)
    End With
    
End Sub

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

マクロを実行する

VBAが実装できたらマクロを実行してみましょう。

「九九表を作成し書式設定する」を見つけ実行します。

はい、九九表が一瞬で作成されましたね!

そして書式設定や文字の位置も中央添えになっていますね!

VBAの説明

Dim i As Integer
Dim j As Integer

2つの整数型変数 i と j を宣言しています。これらの変数は、後続のループで使用されます。

For i = 1 To 9
    Cells(1, i + 1).Value = i
    Cells(i + 1, 1).Value = i
Next i

この部分では、1行目と1列目に1から9までの値を設定します。Cells(1, i + 1)は1行目の各列、Cells(i + 1, 1)は1列目の各行を指します。

For i = 1 To 9
    For j = 1 To 9
        Cells(i + 1, j + 1).Value = i * j
    Next j
Next i

ここでは、九九表の各セルに掛け算の結果を設定します。外側のループは行を、内側のループは列を回ります。Cells(i + 1, j + 1)は、掛け算の結果を設定するセルを指します。

With Range("A1:J10")
    .Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Borders(xlEdgeTop).LineStyle = xlContinuous
    .Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Borders(xlEdgeRight).LineStyle = xlContinuous
    .Borders(xlInsideVertical).LineStyle = xlContinuous
    .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With

この部分では、範囲A1:J10のセルに罫線を引きます。xlEdgeLeft、xlEdgeTop、xlEdgeBottom、xlEdgeRightは外枠の罫線を、xlInsideVertical、xlInsideHorizontalは内部の罫線を指します。また、水平および垂直方向の中央揃えを設定します。

With Range("A1:J1")
    .Interior.Color = RGB(173, 216, 230)
End With

1行目(列項目)のセルの背景色を淡い青色に設定します。RGB(173, 216, 230)は指定したRGB値の色を表します。

With Range("A1:A10")
    .Interior.Color = RGB(173, 216, 230)
End With

最後に、1列目(行項目)のセルの背景色を同じく淡い青色に設定します。

タカヒロ

タカヒロ
背景色はお好みの色に変更してください。

VBAで2桁以上の掛け算表を作成する方法

次はVBAで2桁以上の掛け算表を作成する方法について説明します。

サンプルVBAコード

桁以上の掛け算表を作成するためのVBAコードになります。

Sub 二十掛け二十表を作成し書式設定する()
    Dim i As Integer
    Dim j As Integer

    ' 行列項目の値を設定します。
    For i = 1 To 20
        Cells(1, i + 1).Value = i
        Cells(i + 1, 1).Value = i
    Next i

    ' 二十掛け二十表の値を設定します。
    For i = 1 To 20
        For j = 1 To 20
            Cells(i + 1, j + 1).Value = i * j
        Next j
    Next i

    ' 表の罫線を設定します。
    With Range("A1:U21")
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With

    ' 列項目の背景色を設定します。
    With Range("A1:U1")
        .Interior.Color = RGB(173, 216, 230)
    End With

    ' 行項目の背景色を設定します。
    With Range("A1:A21")
        .Interior.Color = RGB(173, 216, 230)
    End With

End Sub

主な変更点

主な変更点は以下の通りです。

ループの範囲を変更

もとのコードでは For i = 1 To 9 でしたが、これを For i = 1 To 20 に変更し、同様に、内側のループも For j = 1 To 20 に変更しました。

範囲の変更

表の罫線設定範囲を A1:J10 から A1:U21 に変更しました。これは、20×20の表をカバーするためです。

列項目の背景色設定範囲を A1:J1 から A1:U1 に変更しました。

行項目の背景色設定範囲を A1:A10 から A1:A21 に変更しました。

タカヒロ

タカヒロ
表の範囲を変更したい場合はループ回数や表の範囲を変更してください。

マクロを実行する

VBAが実装できたらマクロを実行してみましょう。

「二十掛け二十表を作成し書式設定する」を見つけ実行します。

はい、二十掛け二十表が一瞬で作成されましたね!

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・VBAで九九表を一瞬で作成し、さらにセルの書式設定も同時に行う方法
・VBAを使って2桁以上の掛け算表を作る方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA ImageChange Image