
お世話になります。
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からの表示になるようにスクロールするにはどのようにしたらいいでしょうか?よろしくお願いします。
No.1ベストアンサー
- 回答日時:
「ウィンドウの固定」を心配しなくても大丈夫です。
Application.Goto Reference:=対象セル, Scroll:=True
No.2
- 回答日時:
自分のコードばかり書かないで、実例を挙げて、聞きたいことを明確に説明すること。
特に完成形はどのようなものか。例
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
のように表示したいのか(良くわからない)?
それならフィルタの方が相応しいのでは。
ーーー
上記で質問者の意図と違う点を補足のこと。
説明足らずでした、A列は名前順で並んでいます。
Application.Goto Reference:=対象セル, Scroll:=True
今回求めたい事はこの方法でできました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
libreoffice calcで行を挿入し...
-
貼り付けで複数セルに貼り付けたい
-
数式を残したまま、別のセルに...
-
エクセルで指定したセルのどれ...
-
枠に収まらない文字を非表示に...
-
セル番地の入力されているセル...
-
エクセルで名前を名字と氏名に...
-
エクセルで Aならば1. Bならば2...
-
【マクロ】アクティブセルの2...
-
Excelについての質問です 並べ...
-
生化学分野 分光学 ランベル...
-
excelで日付関数の文字列変換の...
-
セルをクリック⇒そのセルに入力...
-
excelの特定のセルの隣のセル指...
-
ペイントから切取って、エクセ...
-
Excel2012の関数について
-
エクセルで、複数の参照範囲を...
-
Excel マクロについて!! 添付...
-
Excelでのコメント表示位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
スプレッドシートで複数のプル...
-
excelで日付関数の文字列変換の...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
エクセルの書式設定の表示形式...
-
EXCEL VBA セルに既に入...
-
excelの特定のセルの隣のセル指...
-
エクセルのセルの枠を超えて文...
-
Excelでのコメント表示位置
-
エクセル オートフィルタで絞...
-
Excelで数式内の文字色を一部だ...
おすすめ情報