• ベストアンサー

VBA 上位3位までの値をラベルに表示するには

いつもお世話になっております。 初心者ですが、宜しくお願いします。 ご教授願いたいのは、上位3位までと、下記3位までの値を抽出し、 それぞれをユーザーフォーム上のラベルへ表示したいのです。 (例 ( sheet1 )   A   1 20   2 15  3 40  4 25  5 30  6 60  7 55      ↓ ↓ ユーザーフォームには ラベル1 ~ ラベル6まであります。 上記のA列の中から上位3位までを抽出し、ラベル1~ラベル3へ表示。 ラベル4~ラベル6に下位3件の値を抽出、表示させたいのです。 現在は手動でLARGE関数、SMALL関数で一度sheet2に書き出した後、 そのセルの値を表示するようにしていますが、 値も日々動的に増えていきますので、 別シートを使わず直接プログラムできればと思います。 素人のためうまく説明できませんが、 どうぞ皆様のお知恵をお貸しください。 宜しくお願いいたします。

質問者が選んだベストアンサー

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

UserForm1上にLabel1,2,3,4,5,6および操作を命じるCommandButton1が配置されている。 Sheet1のA1以下にデータが記入されている。 private sub CommandButton1_Click() dim i for i = 1 to 3 me.controls("Label" & i).caption = application.large(worksheets("Sheet1").range("A:A"), i) me.controls("Label" & i + 3).caption = application.small(worksheets("Sheet1").range("A:A"), i) next i end sub

tokyo2199
質問者

お礼

ありがとうございます。 思った通りになりました。 こんなに短いプログラムでできるとは! 本当にありがとうございました。

関連するQ&A