【Excel VBA】マクロで自動的に関数を挿入する

スポンサーリンク

VBAマクロで自動的に関数を挿入する

Excelで表を作っていると合計の項目を追加することはよくあると思います。
仮にルーチン作業で表に合計の項目を追加していくことは
大変面倒ですしVBAマクロを使って自動的にSUM関数を挿入できるように改善しましょう。

サンプルコード 1

Sub SUM_INSERT()

    Dim mySheetName() As String

    Worksheets(mySheetName(j)).Range("F3").NumberFormatLocal = "G/標準"
    Worksheets(mySheetName(j)).Range("F3").Value = "=SUM(B3:E3)"
        
    Worksheets(mySheetName(j)).Range("F3").Copy Worksheets(mySheetName(j)).Range("F4:F20")
        
    MsgBox "処理が終了しました"

End Sub

解説

コードとしてはたったこれだけです。
例として、各行のB列からE列まで値が入った表があり、F列に合計の項目を追加するとします。
それを実現するためにセル「F3」からセル「F20」までSUM関数を挿入するようにしています。

詳細に説明するとセル「F3」にB列からE列までの合計を求めるSUM関数を入れ込みます。
また入れ込む前に念のため、表示形式を”G/標準”に指定しています。
あとはセル「F3」をコピーして、残りのセル「F4」から「F20」まで貼り付けています。

このほかにも、各シートに対して実行したり、
値が入っている範囲を自動で判別してより汎用的に仕上げることもできます。

サンプルコード 2

Sub SUM_INSERT2()

    Dim i As Long
    Dim mySheetCnt As Long
    Dim mySheetName() As String

    mySheetCnt = ActiveWorkbook.Sheets.Count

    ReDim mySheetName(1 To mySheetCnt)

    For i = 1 To mySheetCnt
        mySheetName(i) = Sheets(i).Name
    Next i

    Dim j As Long
    
    For j = 1 To UBound(mySheetName)
        Worksheets(mySheetName(j)).Range("F3").NumberFormatLocal = "G/標準"
        Worksheets(mySheetName(j)).Range("F3").Value = "=SUM(B3:E3)"
        
        Worksheets(mySheetName(j)).Range("F3").Copy Worksheets(mySheetName(j)).Range("F4:F20")
    Next

    MsgBox "処理が終了しました"

End Sub

解説

上記のコードではBook内の全てのシートに対してSUM関数を挿入します。
もちろんSUM関数以外にもMAX関数やAVERAGE関数を挿入することも可能です。

また今後もExcelやVBAについてお役立ち情報など
ご紹介していきたいと思います!!

以上、「【Excel VBA】マクロで自動的に関数を挿入する」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする