- ベストアンサー
Excelで検索後、隣のセルの内容を編集するマクロを作成する方法
- 建設会社の事務で会計ソフトの入れ替えに伴い、データ入力を行っています。A列に工事番号、B列に材料仕入れに使った代金の合計を入力していきます。マクロを使って以下の手順を効率化したいと考えています。
- (1) A列から該当のセルを検索し、エンターキーとESCキーで選択したい。(2) ヒットしたセルの横のセルを選択、入力できる状態にする。(3) マクロ終了
- はじめてマクロを組もうとしていますが、どうすればいいかわかりません。Excelで検索後、隣のセルの内容を編集するマクロ作成方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! なかなか回答がつかないようなので・・・ (2)ヒットしたセルの横(B列)のセルを選択、入力出来る状態にする(既にデータが入力されている場合があるので、その文字列の最後に入力できる状態になってほしいと考えています。) の部分はよく判りませんのでスルーしています。 ↓の画像でD1セルに検索したい数字を入力すると、A列でオートフィルタをかけ D1セルに入力された数値が含まれているものだけを表示 → B列を選択 上記操作がされている状態でB列に何らかの入力(または消去などの変化)があった場合は オートフィルタを解除 → D1セルを選択 という感じでやってみました。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてD1セルに検索したい数値を入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim c As Range If Intersect(Target, Range("D1,B:B")) Is Nothing Or Target.Count > 1 Then Exit Sub Application.EnableEvents = False With Target If .Column = 4 Then Set c = Range("A:A").Find(what:=.Value, LookIn:=xlValues, lookat:=xlPart) If c Is Nothing Then MsgBox "該当データなし" .Select .Value = "" Else Range("A1").AutoFilter field:=1, Criteria1:="*" & .Value & "*" c.Offset(, 1).Select End If Else AutoFilterMode = False Range("D1").Select Selection = "" End If End With Application.EnableEvents = True End Sub 'この行まで ※ オートフィルタがかかっていて、D1セルに戻りたい場合はB列の何も入力されていないセル Deleteキーを押してみてください。 ※ 一発で解決!という訳にはいかないと思いますが、 たたき台としての方法です。m(_ _)m
お礼
とても丁寧な回答ありがとうございます! 動作自体は希望する動作を満たしていました! 理解するのに少し時間が必要そうです!! 1行ずつ解読していきます!