• ベストアンサー

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/7940)
回答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

  • ラベルにはVBAで改行した値を表示できない?

    アクセス2007です。 フォームに、ラベルを配置して、適当に「test」と入力し、 フォームの開く時イベントで ************************************** Private Sub Form_Open(Cancel As Integer) Me.ラベル0.Caption = "a" & Chr(10) & "b" End Sub ************************************** としました。 そしてVBAコードを保存して、フォームを開くと、 ラベルには、「ab」と横に表示されてしまいます。 そうではなく a b と、縦に表示はできないのでしょうか? 手動でデザインフォームで 「a」を入力した後にCtrl+Enterを押し「b」を入力し(画像参照)、イベントを実行させずにフォームビューで表示すると a b になります。 VBAコードでも改行させて表示する方法をよろしくお願いします。

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

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

  • エクセルVBAで、シート1の値をシート2へ移すには?

    エクセルVBAの質問です。初心者です。 ■シート1のA1に「123」と打ったら、シート2のA1に「123」と表示される。そして、A2に「456」と打ったら、シート2のA2に「456」と表示される。続いてシート1のA3の値をシート2のA3に・・・とどんどん繰り返してたくさんの値を別のシートに移せるようにしたいです。 関数で言えば、VLOOKUP と似ている機能を作りたいと思ってます。 よろしくお願いします。

  • fromのラベルの値を別に用意した関数で使いたい

    from1のラベルに値を入れたものを 別に用意した関数で使いたいのですが方法はありますか? 今 from1.ラベル.text と関数に表示しているのですが from1の初期値しか取れません、現在表示されているラベルの値を とるにはどうしたらいいでしょうか?

  • [エクセルVBA]セルの値をテキストボックスに表示

    よろしくお願いします。 ユーザーフォームを使って作業しています。 その中で、コンボボックス1で指定した名前を検索値として、VLOOKUPを使ってあるシート(例:シート名「時間検索」)からセルの値をテキストボックスに表示させるようにしたいのです。 コードを作成し表示させることはできたのですが、セルに入っている値の書式が「[h]:mm」の時間形式(例:19:00)のためか、セルの値を引っ張ると小数点(例:0.79166....)で表示されます。 色々と調べてみた中で、format関数を使ったりしてみたんですが不首尾に終わっています。 なんとかテキストボックスに、セルと同じ形式で表示したいのですが、どのように考えればよろしいでしょうか? ご教示お願いいたします。 質問の仕方が悪かった場合は補足・訂正させていただきますので、どうぞよろしくお願いします。

  • Excel VBA ユーザーフォームのコンボボックスに表示する値の入力方法

    Excel Xを使用して、VBAのユーザフォームにコンボボックスを作りましたが、どうしてもコンボボックス内に表示する値の入力方法が分かりません。 WEBや本などで「これ」と思われるものを実験していますが、どれも表示することができません。 できるだけ詳しく教えていただけませんか? したいことは、  cbocenter というコンボボックスに値を出します。  値は List シートの A2 から A18 に入力済みです。  それと値から選択した値を data シートの J列 に  表示させたいのです。(行の指定はできています) 本当に困ってます。よろしくお願いします。

  • ラベル印刷

    エクセル2003を使用しています。 エクセルで住所録をラベル印刷出来るようにしています。 ラベル印刷を行った際に、住所情報がないラベルにも「〒」の表示がでて、次回の印刷に使用できなくなるので、もったいないため、「〒」の表示を、参照する住所録データがない際には消したいのです。 sheet1 に 住所録データ        A列に郵便番号000-0000 sheet2 に ラベルのテンプレート      関数 =INDIRECT("〒"&"sheet1!A1") を作成しています。 住所録データは、毎回別のCSVファイルからインポートしているので、sheet2上で関数を使って、sheet1、A列の参照行が空白の時は、「〒」を表示させなくしたいのです。 どうか関数式を教えてください。よろしくお願いいたします。

  • VBAで抽出した画像の数枚をフォームに表示

    VBAで指定したURLにある画像を抽出し、その画像をExcelシートに貼るものを作りましたが、そのうち3枚くらいをユーザフォーム上にも表示したいのですが、どのように記述したらよいでしょうか? 教えていただけたら幸いです。

  • Excel2010 ラベルの表示非表示方法

    Excel2010 セルの値によって、コントロールラベルを表示非表示にしたいですが、 初心者のため、検索してもよくわからないため教えてください。 例:A1 にリストを置き、ラベルAを選択すればラベルAが表示される ラベルBを選択すればラベルAが非表示になる、ラベルBが表示される。 お願いいたします。   

  • EXCELの表で上位3(TOP3)を表示

    説明がわかりにくいかもしれませんが、 EXCEL2000で例えば10社分のデータのを毎日入力し、その合計の値の TOP3を関数で表示(抽出?)させることはできるのでしょうか? (毎日入力しているので、A~Jの合計値は変動します。 毎日のデータは別シートで入力) 合 計 A社:25 B社:19 C社:55  : I社:37 J社:80 ★TOP3★  A列 B列 (1)J社:80 (2)E社:78 (3)C社:55 セルのA列に社名、B列に数値を返すようにでしたいのですが…。 関数のRANKだと合計の横に順位が出るだけ?のようなので、 指定したセルの範囲に上位3社の社名と数値が表示されるように できる方法をご存知の方、よろしくお願いします。

専門家に質問してみよう