• 締切済み

VBA ユーザーフォームを使って

簡素化して書きますがエクセルシートのA1からZ100までデータがあります。(行は増え続けます) A1からZ1までの1行のデータをまとめて1画面に表示したくてユーザーフォームで作ってみました。(ラベル使用) ユーザーフォーム上で「次へ」ボタンを作成し、それをクリックすると次は A2からZ2までを表示させたいのですがやりかたがわかりません。 (また、「戻る」ボタンを作成し、それをクリックすると1行上へ戻るようにしたいです) VBAは初心者もいいところでネットで調べまくってやっています。 が、なかなか思うような結果にならずみなさんのお力をお貸しいただきたいと思います。 実際のデータは色々複雑なのでソースをあえて載せていませんのでご了承ください。 こういうやり方があるよって事を教えて頂けたらと思います。 よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

スピンボタンを配置して,スピンボタンの値が「今何行目を表示している」にしておけば簡単です。 作成例: for i = 1 to XXX me.controls("Label" & i) = worksheets("シート名").cells(me.spinbutton1.value, i).value next i ○スピンボタンのchangeイベントでラベルに転記すること ○ユーザーフォームのinitializeイベントでスピンボタンのmin,max,ラベルの初期表示値を設定すること

  • admin3
  • ベストアンサー率33% (55/164)
回答No.1

ユーザフォームの編集中に、今回なら「次へ」のボタンの上でWクリックすると、 「次へ」ボタンをクリックした時に実行される処理の大枠が作られます。 例) Private Sub CommandButton1_Click( ) End Sub あとは、その処理内にコードを記述すれば、「次へ」ボタンを押した時に実行されます。 コードは頭使わなければ、do whileとかでAからZまでのデータを各ラベルに格納し、 取得する行はフォームロード時にどの行を読んだか、変数に保存しておいて、それに+1していけば良いはず。 あとはゴリゴリ回すだけ。 「戻る」場合はそれの逆に-1していけば良いでしょう。

関連するQ&A

  • エクセルVBA ユーザーフォーム 検索

    現在VBAにてユーザーフォームにて入力したデータをシート1に転記するものを作成しました。 この転記したデータを生かして作業したいと考えております。 データは商品データで A    B C E F 商品コード 商品名  区分  単価  備考 となっており ユーザーフォームも TEXTBOX1=A TEXTBOX2=B と言う様になってます。 現在考えているのがこのデータの一部を変更したい場合、コマンドボタンを押すと商品コード入力用boxがでてきて、商品コードを入力するとA列から検索し該当する商品データをユーザーフォーム上に表示するようにしたいのです。 そのデータがA75行にあったとします。 そのユーザーフォーム上で単価を変更した場合検索した行(A75行)にそのまま上書きする様にしたいです。 説明がうまくできてないかも知れませんが、どなたかご教授願います。

  • 【VBA】ユーザーフォームでvbYesNo

    VBA ユーザーフォームのコマンドボタンで「はい」「いいえ」を作成し、ダイアログボックスのvbYesNoと同等の事をしたいのですが、どうすればよろしいでしょうか? コマンドボタンを押すと「0」か「1」が返ってくるようにしたのですが、ユーザーフォームだけ表示され、回答を待たず次へ進んでしまいます。 ダイアログボックスのように選択の回答待ちのような状態にするにはどうすればよいかご教授おねがいします。

  • ユーザーフォームについて

    エクセル2002です。 ユーザーフォーム内のテキストボックスを使用して、 (1)A1のセルに1と入力されている状態でマクロを起動した場合、 (2)ユーザーフォーム内のテキストボックスには2と表示される (3)ユーザーフォーム内のボタンを押すと、A2のセルに2と入力される。 このような流れで、A列のデータ最終行に番号をふっていきたいです。 (A列のデータ最終行がA30なら、A31に31と番号をふる) ユーザーフォームのテキストボックスとボタンは作ってあるのですが、 それぞれに入れるコードを教えていただけないでしょうか。 よろしくお願いします。

  • Excel VBA フォーム・ラベル/コード

    質問させて頂きます。 ユーザーフォーム上にラベルをコーディングで作成する事は可能でしょうか? ご存知の方はよろしくお願いします。 例としては シート上の Aボタンをクリック→用意していたユーザーフォームが展開。その際に、 ユザーフォーム上にラベルが表示されている。(ツールボックスからの作成では有りません)。 よろしくお願いいたします。

  • VBAのユーザーフォームの使い方

    皆様、こんにちは。 VBAのユーザーフォームを習い始めた初心者です。本の説明を読んでもユーザーフォームの使い方がよく分かりません。例えば、あるセールをクリックしたら、フォームが表示される、そしてフォームの中にあるコンボボックスのリストの中から選ばれた値が最初に選択したセールに入力されるという使い方がありえますか?申し可能でしたら、コード作成の例をいただけないでしょうか? どうぞよろしくお願いいたします。

  • VBAでユーザーフォームを再表示させたい。

    ExcelのVBAでユーザーフォームを作成し、 Initializeイベントで初期化をし、コマンドボタンを クリックしたら処理を行うように作成しました。 ところがコマンドボタンによって処理を行った後、 再度Initializeイベントを呼びたいんです。。 (コンボボックスの表示を更新する処理を 含んでいるため) なんとかうまい方法はないでしょうか??

  • (Excel+VBA)ユーザーフォームのみ表示で完結させたい。

    ExcelのVBAを使った複雑なアプリケーションを開発中です。  本体のWorkBookは、終始必要なくて、ユーザーフォームだけで完結するものです。結果的には、あたかもVBで作成されたもののように見えることになる。 【手順】 1) xslファイルを開くとユーザーフォームのみ表示される。 2) ユーザーフォームで一連の作業を行う。本体のWorkBook上のsheetは処理中に使用はする(作業用の一時データ貼り付けなど)けど、表示させたくない。 3) 作業終了時・・・これがわからない。      (終了ボタンまたは閉じるボタンクリック)            |      <他のWorkBookが開いているか>    |                 |    yes                 No    |                 | [現在のworkBookのみ閉じる]   |   saveの必要なし    [アプリケーションを終了する]                    saveの必要なし

  • VBAでのユーザーフォームの使い方

    VBAのマクロでユーザフォームにボタンを配して、それによってエクセルシートのデータを更新するようなマクロを作りたいのですが、ユーザフォームの挿入でボタン配置まではできるのですけど、どのようにリンク付けするのかコーディング等、解りません。お教え下さい。簡単なサンプルコーディングがあれば助かります。

  • VBAユーザーフォーム

    VBA初心者です。ユーザーフォームを作成しシート上に一覧表示をできるように作成しました。(本を見ながらとこちらで質問等させて頂きやっとできました) なので、次にsheet1に一覧表示を作成しているので、sheet2に個別表示の仕方はどうしたらよいか教えて頂きたいです。一人の人の情報量が多く、一人分の資料もほしいのですが・・ユーザーフォームから入力後に一覧と個別とにするのはどうすれば初心者でもできますか? 質問も下手なのでわかりにくいかもしれませんが、教えて頂けたらと思います。

  • excelでVBAでユーザーフォームのリストBOX

    下記VBAの作成の仕方を教えていただけないでしょうか。 やりたいこと (1)sheet2のA1セル~A5セルまでの間の間をユーザーフォームのリストボックスに登録する (2)sheet1のA1セルをクリックすると、ユーザーフォームが起動し、任意のリストをクリックすると、 その値がA1セルに格納され。ユーザーフォームが終了する。 ※コマンドボタンは使わずにお願いします。なおexcel2000です。

専門家に質問してみよう