- ベストアンサー
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に書き出した後、 そのセルの値を表示するようにしていますが、 値も日々動的に増えていきますので、 別シートを使わず直接プログラムできればと思います。 素人のためうまく説明できませんが、 どうぞ皆様のお知恵をお貸しください。 宜しくお願いいたします。
- みんなの回答 (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
お礼
ありがとうございます。 思った通りになりました。 こんなに短いプログラムでできるとは! 本当にありがとうございました。