
Excelにて、シート1のA列とシート2のA列のデータにNoを入れます。
シート1のA列のNoをクリックすると、シート2のA列の同じNoにジャンプするマクロを組みたいです。
現在組んでいるマクロは、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Sht As Worksheet
Dim Rng1 As Range
Dim Rng2 As Range
Dim FindCell As Range
Set Sht = Worksheets("シート2")
Set Rng1 = Range("A2:A100")
Set Rng2 = Sht.Range("A2:A100")If Intersect(Target, Rng1) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Set FindCell = Rng2.Find(Target.Value)
If Not FindCell Is Nothing Then
Application.Goto Reference:=FindCell, Scroll:=False
End If
End Sub
です。
一応マクロは実行されますが、そうすると、シート1のA列の編集(Noを追加したり変更したり・・・)できません。
編集や変更もできて、検索マクロも実行できるというマクロの組み方はありますでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
再度の登場、onlyromです。
お気づきとは思いますが回答1のイベントプロシージャ名が
>xxWorksheet_BeforeDoubleClick
と前に余計な、xx が付いているので外してください。
>一致したセルに飛ぶ時、そのセルがある行を選択
If Not FindCell Is Nothing Then
Application.Goto Reference:=FindCell, Scroll:=False
FindCell.EntireRow.Select ●この一行を追加
End If
行選択のコード●を追加してください。
以上。
No.1
- 回答日時:
>シート1のA列の編集(Noを追加したり変更したり・・・)できません
それは当然のことですね。
修正しようとA列をクリックすると、Worksheet_SelectionChangeイベントが発生します。
質問者はそのイベントにコードを書いてますのでクリックするたびに提示のコードが動作して修正も変更もできなくなります。
質問のようなことをしたい場合は、ダブルクリックして飛ばすように
BeforeDoubleClickイベントを使う方がいいでしょう。
'----------------------------------------------
Private Sub xxWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Sht As Worksheet
Dim Rng1 As Range
Dim Rng2 As Range
Dim FindCell As Range
If Target.Count > 1 Then Exit Sub
Set Sht = Worksheets("シート2")
Set Rng1 = Range("A2:A100")
Set Rng2 = Sht.Range("A2:A100")
If Not Intersect(Target, Rng1) Is Nothing Then
Cancel = True
Set FindCell = Rng2.Find(Target.Value)
If Not FindCell Is Nothing Then
Application.Goto Reference:=FindCell, Scroll:=False
End If
End If
End Sub
'-------------------------------------
ちょこっとコードを変えてあります。
以上。
ありがとうございます。
これでやってみます。もう一点なんですが、一致したセルに飛ぶ時、そのセルがある行を選択(A3だったら3行目)を参照してくれたりするプログラムもできますか??
行選択の方が見やすいので出来ればそうしたいのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
VBA 特定の文字が入力されたセルに移動する 複数
Visual Basic(VBA)
-
【VBA】指定したセルと同じ値で、別シートにあるセルに移動するには?
Visual Basic(VBA)
-
-
4
A1に入力された文字列と同じ文字があるセルへ移動
Excel(エクセル)
-
5
数値入力で簡単に該当のセルへ移動できませんか?
その他(Microsoft Office)
-
6
セルの値からマクロで検索を行うには
Excel(エクセル)
-
7
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
8
Excelで、検索してヒットしたセルの隣のセルに値を入力したい
Excel(エクセル)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
12
エクセルでセルをダブルクリックしたらそのブックの別のシートに飛ぶ動作
Excel(エクセル)
-
13
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
14
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
15
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
16
Excelで条件をつけてハイパーリンクで飛ばしたいのですが・・・
Excel(エクセル)
-
17
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
18
ハイパーリンクの参照セルのズレは防げるか?
Excel(エクセル)
-
19
ユーザーフォームのVBAエラー
その他(Microsoft Office)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
Excel チェックボックスにチェ...
-
【VBA】全ての複数シートから指...
-
excelのマクロで該当処理できな...
-
【VBA】特定の文字で改行(次の...
-
実行時エラー'1004': WorkSheet...
-
Excel VBA での計算について…
-
EXCEL VBAで複数シートから該当...
-
シートが保護されている状態で...
-
ExcelのVBAのマクロで他のシー...
-
同じ作業を複数のシートに実行...
-
【エクセルVBA】「Protect User...
-
ブック名、シート名を他のモジ...
-
VBAマクロでシートコピーした新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報