[OCN光]Twitterキャンペーン開催中!

VBAで質問です。顧客リストを作成中です。
UserForm内にスクロールバーを設置しています。
検索結果の位置へ自動でスクロールさせることは可能でしょうか。
常にスクロールバーが上にあるので修正しようとしても見出行の下に追加されてしまい悩んでいます。
初心者の為、解決策があれば参考になるコードも表記していただければ嬉しいです。

※現状のコードです

Private Sub UserForm_Initialize()
With Worksheets("sheet1")

ScrollBar1.Min = 2
ScrollBar1.Max = Worksheets("sheet1").Range("B" & Rows.Count).End(xlUp).Row + 1
ScrollBar1.Value = 2

End With
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Private Sub ScrollBar1_Change()
 With Worksheets("sheet1").Select
 氏名TextBox.Value = Range("A" & ScrollBar1.Value).Value
 住所TextBox.Value = Range("B" & ScrollBar1.Value).Value
 電話番号TextBox.Value = Range("C" & ScrollBar1.Value).Value

End With
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Private Sub 再登録ボタン_Click()
With Worksheets("sheet1").Select
Range("A" & ScrollBar1.Value).Value = 氏名TextBox.Text
Range("B" & ScrollBar1.Value).Value = 住所TextBox.Text
Range("C" & ScrollBar1.Value).Value = 電話番号TextBox.Text

End With
End Sub

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

  • UserForm1のListBoxをDoubleClickし、結果をUserForm2の各TextBoxへ反映しています。
    スクロールバーはそのUserForm2内にあります。
    フォーム内のスクロール位置を検索結果と同じ位置にしたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/01/15 08:26
教えて!goo グレード

A 回答 (2件)

No.1の者です。



ListIndexが0から始まって、データの個数-1までという事でしょうか?
スクロールバーも同じデータ数という事になるでしょうか?
もし、そうなら、スクロールバーも、Min:0、Max:データの個数-1 なら
そのまま、ScrollBar1.Value = リストBox.ListIndex の様な感じで
入れれば良いのでは?と思います。
    • good
    • 0

こんにちは。



回答ではありませんが、
>検索結果の位置へ自動でスクロールさせることは可能でしょうか。
この検索結果というのが、何を指されているかが分かりません。
コードの中には、検索している様な箇所が無い様に見えますが。

あと、自動でスクロールとは、ワークシートのスクロールという事でしょうか? それとも、スクロールバーの位置の事を指している?
この回答への補足あり
    • good
    • 0

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


人気Q&Aランキング