- ベストアンサー
セルの内容と同じ内容を検索するマクロ
- EXCEL2003で、SHEET1のA列セルをクリックし、参照先の文字が同じであれば、順々にジャンプする様なマクロを教えていただきたいです。
- SHEET1のA列には参照式が入っていますが、参照先が空欄であれば、Aセルをクリックしてもそのまま動かないようにしたいです。
- 他のセルには同じ文字列が多数存在し、クリックや入力もあるため、クリックしてジャンプ検索するのはA列限定です。最終行まで検索しA1に戻るというジャンプをしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
クリックでというのは無理なのでダブルクリックにしました。 マクロの設定の仕方から説明しておきます。該当シートを開いてALT+F11を押すとVBEが開きますので、左の窓の該当シート名の書かれたところを右クリックすると右側に白い窓が出現しますのでそこに以下のコードをコピーしてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Err GoTo Myerr: Dim MyRange As Range Dim FirstRow As Integer Application.EnableEvents = False If Target.Column = 1 And Target.Value <> "" Then If Target.Row = Range("A" & Rows.Count).End(xlUp).Row Then FirstRow = 1 Else FirstRow = Target.Row End If With Range("A" & FirstRow & ":A" & Range("A" & Rows.Count).End(xlUp).Row) Set MyRange = .Find(Target.Value, LookIn:=xlValues, After:=ActiveCell) If FirstRow = Target.Row Then Set MyRange = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(Target.Value, LookIn:=xlValues, After:=ActiveCell) MyRange.Select Else MyRange.Select End If End With End If Application.EnableEvents = True Myerr: Application.EnableEvents = True End Sub
その他の回答 (1)
- kmetu
- ベストアンサー率41% (562/1346)
> AをBに変えたマクロなのですが動作しません。 > どこがおかしいのか教えていただきたく。 B列をダブルクリックしていくということですね。 If Target.Column = 1 ↓ If Target.Column = 2 としてください。ここだけは列をA列を1として2,3,4と右へ数えて数値で指定する仕様となっています。
お礼
回答ありがとうございます。うまく動作しました。検索セルが結合しているとエラーになってしまうので、別途質問させていただきます。
お礼
回答ありがとうございました。助かりました。
補足
回答ありがとうございます。 教えていただいた内容で、うまく動作しました。 応用で、もう1点教えていただきたいことがあります。 検索するセルに関しA列からB列用を作成しました。 下記内容です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Err GoTo Myerr: Dim MyRange As Range Dim FirstRow As Integer Application.EnableEvents = False If Target.Column = 1 And Target.Value <> "" Then If Target.Row = Range("B" & Rows.Count).End(xlUp).Row Then FirstRow = 1 Else FirstRow = Target.Row End If With Range("B" & FirstRow & ":B" & Range("B" & Rows.Count).End(xlUp).Row) Set MyRange = .Find(Target.Value, LookIn:=xlValues, After:=ActiveCell) If FirstRow = Target.Row Then Set MyRange = Range("B1:B" & Range("B" & Rows.Count).End(xlUp).Row).Find(Target.Value, LookIn:=xlValues, After:=ActiveCell) MyRange.Select Else MyRange.Select End If End With End If Application.EnableEvents = True Myerr: Application.EnableEvents = True End Sub AをBに変えたマクロなのですが動作しません。 どこがおかしいのか教えていただきたく。