【VBA】列ごとの処理をループで簡潔に!複数列への数式コピーを短く書く方法

Excel VBAで同じような処理が続くと、コードが非常に長くなり、管理や修正が大変になることがあります。
今回は、「複数の列に同じ処理(数式コピー)を行うコード」をループで簡潔に書き直す方法をご紹介いたします。


目次

実現したいこと

  • 複数の列(AH列~BQ列)に対して、2行目の数式を最終行までコピーしたい
  • 長くなってしまったコードをループ構文で短くシンプルにしたい

Before:1列ずつ処理していた冗長なコード

最初に書いていたコードは、各列ごとに1つずつ書いていたため非常に長くなっていました

' 一部抜粋(実際は36列分)
ws.Range("AH2").Copy Destination:=ws.Range("AH3:AH" & lastRow)
ws.Range("AI2").Copy Destination:=ws.Range("AI3:AI" & lastRow)
ws.Range("AJ2").Copy Destination:=ws.Range("AJ3:AJ" & lastRow)
' 以下省略

この方法でも処理は実行されますが、列が多くなるほどメンテナンス性が悪化します。


After:Forループで簡潔に書き直したコード

以下のように、列番号を使ってループ処理を行うことで、コードが劇的に短く・わかりやすくなります。

Sub CopyFormulasDown()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim col As Long

    ' ワークシートを指定
    Set ws = ThisWorkbook.Sheets(1)

    ' 列Aの最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' AH列(列番号34)〜BQ列(列番号69)までをループで処理
    If lastRow > 2 Then
        For col = 34 To 69
            ws.Cells(2, col).Copy Destination:=ws.Range(ws.Cells(3, col), ws.Cells(lastRow, col))
        Next col
    End If
End Sub

ポイント解説

  • ws.Cells(2, col):2行目のセル(数式元)
  • Destination:=...:コピー先は3行目~最終行まで
  • 34〜69:Excelの列番号で、AH列 = 34, BQ列 = 69

補足:列番号を調べる方法

列番号は以下の方法で確認できます。

  • A = 1, B = 2, ..., Z = 26
  • AA = 27, AB = 28, ..., AH = 34, BQ = 69

不明な場合は、以下のようなコードで確認も可能です。

MsgBox Columns("AH").Column  ' → 34 と表示される

まとめ

VBAでの処理は、繰り返しの多い構文をループで置き換えることで、コードの可読性・保守性が大きく向上します。

  • 同じ処理が並ぶときは列番号を使ったForループが効果的
  • Excelでは**列名ではなく列番号(1〜16384)**を使うことで、動的に処理が可能
  • コードの整理にもなり、ミスを減らすことができます

作業効率を高めるだけでなく、将来的な変更にも強いコードになりますので、ぜひご活用ください。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次