【VBA】セルに値を入力したら、1つ列を飛ばしたセルに自動で移動する方法|入力効率を高めるテクニック

目次

経緯

Excelでの入力作業の中で、「値を入力したあと、隣の隣(1列飛ばし)に自動でセルを移動したい」という要望を受けました。
これを実現することで、マウス操作なしで素早く連続入力ができ、作業効率が向上します。

そこで、今回VBAを使って入力セルの自動ジャンプを実装しました。


実現したいこと

  • たとえばA1に値を入力したあと、自動的にC1にセルが移動する
  • 入力作業に集中できるよう、1つ列を飛ばしてフォーカスを移す

使用するVBAコード

以下は、セルに入力があったときに1列飛ばしたセルへ自動で移動するVBAコードです。
対象となるシートのコードウィンドウ(例:Sheet1)に貼り付けてください。

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 対象がA列(列番号1)だった場合に処理を実行
    If Target.Column = 1 Then
        Application.EnableEvents = False
        ' 2列先のセルを選択(= 1列飛ばす)
        Cells(Target.Row, Target.Column + 2).Select
        Application.EnableEvents = True
    End If
End Sub

このコードの動作説明

  • Worksheet_Change イベントで、セルに入力があったことを検知します
  • Target.Column = 1 によってA列が対象であるかを確認しています(B列なら2に変更)
  • Target.Column + 2 により、1列飛ばしたセルを自動的に選択
  • Application.EnableEvents = False によって、イベントが再帰的に発動するのを防いでいます

応用例

  • フォーム入力で「名前 → 空欄 → 年齢 → 空欄 → メールアドレス」などのように定型の入力間隔をあけたい場合
  • 検査記録やアンケート入力など、1列おきにデータを記入していくフォーマットに活用可能

注意点

  • このコードは列番号ベースで制御しているため、列名ではなく数値で指定します(例:A列=1、B列=2)
  • 複数セルを一括貼り付けした場合には正しく動作しない可能性があります
  • Select を使用しているため、スクロール位置が変化することがあります(必要に応じて Activate 等で調整可能)

まとめ

今回紹介したVBAコードを使えば、セルに入力した直後に自動で1つセルを飛ばして移動する処理が簡単に実装できます。
Excel上での入力効率を高めたい場合に非常に便利です。

業務用フォームやチェックシートの自動化に、ぜひ取り入れてみてください。
最後までお読みいただきありがとうございました。

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

この記事を書いた人

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

目次