Excel VBA | Offset × Resize × ForEach の 黄金 100 パターン集

VBA
スポンサーリンク

隣列読取・書込(Offset 基本テンプレ集)

ここでは Offset を使った「隣列や上下行への書き込み」の基本パターンを、初心者でもすぐ試せる形でまとめます。
各例は「セルを基準にして相対的に移動 → 値や計算結果を書き込む」流れになっています。


1. 右隣に値を書き込む

For Each cell In Range("A2:A10")
    cell.Offset(0, 1).Value = cell.Value
Next cell
VB

👉 A列の値を右隣のB列にコピー。


2. 左隣に値を書き込む

For Each cell In Range("B2:B10")
    cell.Offset(0, -1).Value = cell.Value
Next cell
VB

👉 B列の値を左隣のA列にコピー。


3. 下の行に計算結果を書き込む

For Each cell In Range("C2:C10")
    cell.Offset(1, 0).Value = cell.Value * 2
Next cell
VB

👉 C列の値を「2倍して」1行下に書き込む。


4. 上の行にチェック結果を書く

For Each cell In Range("D3:D10")
    cell.Offset(-1, 0).Value = "Check:" & cell.Value
Next cell
VB

👉 D列の値を「上の行」にチェック付きで書き込む。


5. 右隣が空白ならフラグを立てる

For Each cell In Range("E2:E10")
    If IsEmpty(cell.Offset(0, 1)) Then
        cell.Offset(0, 1).Value = "FLAG"
    End If
Next cell
VB

👉 E列の右隣が空なら「FLAG」を書き込む。


6. 左隣の値をコピー

For Each cell In Range("C2:C10")
    cell.Value = cell.Offset(0, -1).Value
Next cell
VB

👉 C列に「左隣のB列の値」をコピー。


7. 右に 2 列ずらしてコピー

For Each cell In Range("A2:A10")
    cell.Offset(0, 2).Value = cell.Value
Next cell
VB

👉 A列の値を「右に2列ずらしたC列」にコピー。


8. 左に 3 列ずらして補助列を作成

For Each cell In Range("D2:D10")
    cell.Offset(0, -3).Value = "補助:" & cell.Value
Next cell
VB

👉 D列の値を「左に3列ずらしたA列」に補助情報として書き込む。


9. B列の値 → C列に 2倍して書く

For Each cell In Range("B2:B10")
    cell.Offset(0, 1).Value = cell.Value * 2
Next cell
VB

👉 B列の値を「2倍して」C列に出力。


10. フラグ列(右隣)に TRUE/FALSE

For Each cell In Range("F2:F10")
    cell.Offset(0, 1).Value = (cell.Value > 100)
Next cell
VB

👉 F列の値が100より大きければ右隣に TRUE、そうでなければ FALSE


✅ まとめ

  • Offset(行, 列) で「相対位置」を指定
  • 0,1 → 右隣 / 0,-1 → 左隣 / 1,0 → 下 / -1,0 → 上
  • 条件分岐や計算と組み合わせると「隣列処理の黄金パターン」が完成

💡 この10パターンをベースに、さらに「Resize」や「配列」と組み合わせると 大量データ処理の高速化 に発展できます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました