アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは、エクセルのマクロ初心者です。

ちょっと教えて頂きたい事が有って投稿しました。

J10セルに入った数字と同じセルの値を全て選択するにはどうしたら良いでしょうか。

検索する範囲は、J11~J307です。

セルの値が =J10 の物を全て選択すると言う事です。

詳しい方、教えて頂けませんか?

よろしくお願いいたします。

質問者からの補足コメント

  • 回答頂き、ありがとうございます。

    ネット検索で一生懸命探していたのですが、かなり高度な技だったのですね、こんなにコードがあるとは思いませんでした。

    それで、少し質問させていただきたいのですが、この現在選択中のJセルの選択を、I列からN列までとするのは難しいでしょうか?

    お手数をお掛けして申し訳ありませんが、よろしければ教えて頂けませんでしょうか。

    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/08 18:05
  • あ、、、、すみません。

    検索の範囲をIからNまでとするのでは無くて、選択するべきJセルの選択を Jを含むIからNセルまで拡張して選択する、と言う意味です。

    Jに該当があれば、IからNまでを選択すると言う意味です。

    言葉足らずでお手数をお掛けしました。

    出来ましたら、教えて頂けませんでしょうか。

    よろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/05/08 23:01

A 回答 (3件)

あ~~~


そういう意味なのですね・・・
↓にしてみてください。

Sub Sample3()
Dim myFirst As Range, myFound As Range
Dim myArea As Range, myRng As Range
Set myArea = Range("J11:J307")
Set myFound = myArea.Find(what:=Range("J10"), LookIn:=xlValues, lookat:=xlWhole)
If Not myFound Is Nothing Then
Set myFirst = myFound
Set myRng = myFirst.Offset(, -1).Resize(, 6)
Do
Set myFound = myArea.FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then Exit Do
Set myRng = Union(myRng, myFound.Offset(, -1).Resize(, 6))
Loop
myRng.Select
Else
MsgBox "該当データなし"
End If
End Sub

これではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

はいー そういう意味でしたー^^

回答を頂きまして、ありがとうございます。

ばっちり出来たみたいです、いつも助けて頂きありがとうございます。

お礼日時:2015/05/09 00:28

No.1です。



>現在選択中のJセルの選択を、I列からN列までとするのは・・・

I11~N307セル範囲内でJ10セルと同値のセルを選択する!という解釈です。

Sub Sample2()
Dim myFirst As Range, myFound As Range
Dim myArea As Range, myRng As Range
Set myArea = Range("I11:N307")
Set myFound = myArea.Find(what:=Range("J10"), LookIn:=xlValues, lookat:=xlWhole)
If Not myFound Is Nothing Then
Set myFirst = myFound
Set myRng = myFound
Do
Set myFound = myArea.FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then Exit Do
Set myRng = Union(myRng, myFound)
Loop
myRng.Select
Else
MsgBox "該当データなし"
End If
End Sub

こういった感じではどうでしょうか?m(_ _)m
この回答への補足あり
    • good
    • 0

こんにちは!


一例です。

Sub Sample1()
Dim myArea As Range, myFirst As Range, myFound As Range
Dim myRng As Range, myVal As Variant

myVal = Range("J10").Value
Set myArea = Range("J11:J307")
Set myFound = myArea.Find(what:=myVal, LookIn:=xlValues, lookat:=xlWhole)
If Not myFound Is Nothing Then
Set myFirst = myFound
Set myRng = myFound
Do
Set myFound = myArea.FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then
Exit Do
Else
Set myRng = Union(myRng, myFound)
End If
Loop
myRng.Select
Else
MsgBox "該当データなし"
End If
End Sub

こんな感じではどうでしょうか?m(_ _)m
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!