見つけた場所から「一歩」動く!Find × Offset の合わせ技

スポンサーリンク
スポンサーリンク

はじめに

 「表の中から今日の日付を探して、その『隣のセル』に売上を入力したい」 そんなとき、あなたを助けてくれるのがOffset(オフセット)という魔法です。

 Findが「目的の場所を見つける目」なら、Offsetは「そこから移動する足」のようなもの。この2つを組み合わせることで、VBAの自由度は一気に跳ね上がります。

1. Offset(オフセット)ってなに?

 一言でいうと、「今いる場所から、指定した分だけズレた場所を指差す」機能です。

 「Find」で見つけたセルを基準にして、「1つ右のセル」や「1つ下のセル」をピンポイントで狙い撃ちできます。

2. あなたが使うための「魔法の書き方」

 基本の形はこうなります。

見つけたセル.Offset( 行の移動 , 列の移動 )

  • 行の移動:プラスなら「下」、マイナスなら「上」へ動きます。
  • 列の移動:プラスなら「右」、マイナスなら「左」へ動きます。

【例題】日付を探して、その隣に収益を入力しよう

 「日報の記録」をイメージした例題です。A列から「今日の日付」を探して、その右隣(B列)に収益を書き込みます。

VBA

Sub 日報を入力する()
    Dim 見つけた場所 As Range
    Dim 今日 As String
    今日 = "2026/03/03" ' あなたが探したい日付
    
    ' 1. まずは「今日」という言葉をA列から探す(Find)
    Set 見つけた場所 = Range("A:A").Find(What:=今日)
    
    ' 2. もし見つかったら、そこから「右に1つ」ズレた場所に書き込む(Offset)
    If Not 見つけた場所 Is Nothing Then
        ' Offset(0, 1) は「行は動かず、列を右に1つ動かす」という意味です
        見つけた場所.Offset(0, 1).Value = "500円"
        
        MsgBox 今日 & " の隣のセルに収益を入力しました!"
    Else
        MsgBox 今日 & " が見つかりませんでした。"
    End If
End Sub
スポンサーリンク

3. なぜこの組み合わせが最強なの?

 少ないコードで目的の場所を選択できるからです。

  1. 「日付」という看板を探す(Find)
  2. その看板から「右に〇個目」の空き地にデータを置く(Offset)

 この流れさえマスターすれば、表のレイアウトが少し変わっても、プログラムを少し書き換えるだけで対応できるようになります。

4. 使うための準備

  • 必要なExcelバージョン: すべてのバージョンで使えます。
  • 前提として習得しておく関数
    • Find(前回の記事): 探し方を知っていることが大前提です。
    • 座標の考え方: 「右はプラス」「左はマイナス」という感覚を掴んでおきましょう。

コメント

タイトルとURLをコピーしました