重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。
A列に製品名、B列に場所と詳細を表した表です。
E1に製品名を入れて検索ボタンを押すと右隣のセルの値がE1に表示され検索件数がMsgBoxに表示されるものをこのページで聞いたりしながら作りました。
'Dim 対象セル As Range
'Dim 最初のセル番地 As String
'Dim 検索件数 As Long
Cells.Interior.ColorIndex = xlNone
If Range("E1").Value = "" Then Exit Sub
Set 対象セル = Range("A2:A1287").Find(What:=Range("E1").Value, After:=Range("A1287"), lookAt:=xlWhole)
If 対象セル Is Nothing Then Exit Sub
最初のセル番地 = 対象セル.Address
Do
対象セル.Interior.ColorIndex = 37
検索件数 = 検索件数 + 1
Set 対象セル = Range("A2:A1287").FindNext(対象セル)
Loop While 対象セル.Address <> 最初のセル番地
Range("E3").Value = 対象セル.Offset(, 1).Value
MsgBox "検索件数は" & 検索件数 & " 件です"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
今回質問したいのは検索したセルを含む行(製品名によって複数あります)を自動で一番上、A5でウィンドウの固定をしてあるのでA6からの表示になるようにスクロールするにはどのようにしたらいいでしょうか?よろしくお願いします。

A 回答 (2件)

「ウィンドウの固定」を心配しなくても大丈夫です。



Application.Goto Reference:=対象セル, Scroll:=True
    • good
    • 0
この回答へのお礼

出来ました、回答ありがとうございます。

右隣のセルの値がE1に表示され・・E1ではなくてE3でした
ありがとうございました。

お礼日時:2009/02/07 11:01

自分のコードばかり書かないで、実例を挙げて、聞きたいことを明確に説明すること。

特に完成形はどのようなものか。

A10以下(A1287なんて回答者にはテストがやりにくい。A1の近くの行で実例を作るのが親切)
a
s
d
f
g
a
d
f
a
f
a
s
f
ーーー
E1にaなど条件値を入力。
その近くにコマンドボタンを1つ貼り付け。
ーー
Private Sub CommandButton1_Click()
a = Cells(1, "F")
Range("A9:A100").Find(what:=a).Select
f = Selection.Row
MsgBox f
k = 1
Do
Range("A9:A100").FindNext(after:=Selection).Select
'MsgBox Selection.Row
k = k + 1
Loop While Selection.Row <> f
MsgBox "件数=" & k - 1
ActiveWindow.ScrollRow = f
End Sub
上記だと、aが最初に見つかる、元の10行目が一番上(固定行の次行)に来る。
入力条件やコマンドボタンが見えなくなるので第2行目でウインドウ枠の固定をしておく。最初行だけ一番上に表示すればよいのか?
これでよいのか?
ーー
または
aのある10,15、18,20行が残り、他が折りたたまれて
10 a
15 a
18 a
20 a
のように表示したいのか(良くわからない)?
それならフィルタの方が相応しいのでは。
ーーー
上記で質問者の意図と違う点を補足のこと。
    • good
    • 0
この回答へのお礼

説明足らずでした、A列は名前順で並んでいます。
Application.Goto Reference:=対象セル, Scroll:=True
今回求めたい事はこの方法でできました。
ありがとうございました。

お礼日時:2009/02/07 10:56

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