プロが教えるわが家の防犯対策術!

簡素化して書きますがエクセルシートのA1からZ100までデータがあります。(行は増え続けます)
A1からZ1までの1行のデータをまとめて1画面に表示したくてユーザーフォームで作ってみました。(ラベル使用)

ユーザーフォーム上で「次へ」ボタンを作成し、それをクリックすると次は
A2からZ2までを表示させたいのですがやりかたがわかりません。
(また、「戻る」ボタンを作成し、それをクリックすると1行上へ戻るようにしたいです)

VBAは初心者もいいところでネットで調べまくってやっています。
が、なかなか思うような結果にならずみなさんのお力をお貸しいただきたいと思います。

実際のデータは色々複雑なのでソースをあえて載せていませんのでご了承ください。
こういうやり方があるよって事を教えて頂けたらと思います。

よろしくお願いします。

A 回答 (2件)

スピンボタンを配置して,スピンボタンの値が「今何行目を表示している」にしておけば簡単です。



作成例:
for i = 1 to XXX
me.controls("Label" & i) = worksheets("シート名").cells(me.spinbutton1.value, i).value
next i


○スピンボタンのchangeイベントでラベルに転記すること
○ユーザーフォームのinitializeイベントでスピンボタンのmin,max,ラベルの初期表示値を設定すること
    • good
    • 0

ユーザフォームの編集中に、今回なら「次へ」のボタンの上でWクリックすると、


「次へ」ボタンをクリックした時に実行される処理の大枠が作られます。

例)
Private Sub CommandButton1_Click( )

End Sub

あとは、その処理内にコードを記述すれば、「次へ」ボタンを押した時に実行されます。

コードは頭使わなければ、do whileとかでAからZまでのデータを各ラベルに格納し、
取得する行はフォームロード時にどの行を読んだか、変数に保存しておいて、それに+1していけば良いはず。
あとはゴリゴリ回すだけ。
「戻る」場合はそれの逆に-1していけば良いでしょう。
    • good
    • 0

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