ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュのコンボボックス

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ボタンを押すと、その順番に勝手に変わってくれる便利なものがあるのは何度か見てきましたが、それがコンボボックスだという名前を初めて知りました。そしてそれを使わなければいけなくなりました。
コンボボックスを表示させるところまでできたのですが、これにそれぞれの項目を入力したり、、、というのがさっぱりわかりません。
例えば、この表ですと英語の中間の点数順、英語の期末の点数順、数学の中間の点数順、数学の期末の点数順・・・というふうにです。コンボボックスの▼を押したらその項目が出て、その項目の点数順に並び変えるようにしたいのですがどうしたらよいでしょうか。
尚、表の名前・点数等は仮です。

コメント(7)

それって、VBA なんですけど分かりますか?(^^;)

分かるなら、以下を標準モジュールに貼り付け、文字列の部分を適切に書き換えてから、
準備として drpSort_Init を実行し、drpSort_Execute をコンボボックス(正確にはドロップダウン)のマクロとして登録してください。(^^)/
------------------------------------------------------------
Option Explicit

Public Property Get drpSort() As DropDown
  Set drpSort = ThisWorkbook.Worksheets("Sheet1").DropDowns("ドロップ 1")
End Property

Public Sub drpSort_Init()
  With drpSort
    .RemoveAllItems
    
    '' 以下、シートの列の並びの通りに記述する。
    .AddItem "英語-中間"
    .AddItem "英語-期末"

    .AddItem "数学-中間"
    .AddItem "数学-期末"

    .AddItem "地理-中間"
    .AddItem "地理-期末"

    .AddItem "世界史-中間"
    .AddItem "世界史-期末"
  End With
End Sub

Public Sub drpSort_Execute()
  With ThisWorkbook.Worksheets("Sheet1").Range("$B$3:$J$12")
    .Sort Key1:=.Cells(1, drpSort.ListIndex + 1), _
       order1:=xlDescending, _
       Header:=xlNo
  End With
End Sub
「全くわかりません。。。。。」だと、リアクションの取りようが無くて。(^^;

○VBA(マクロ)がまったくダメで、覚えるつもりもないなら:
目的の列を選択して、ツールバーにある[AZ↓] というアイコンになっている[昇順で並べ替え]ボタンを押すだけでもイイかも。Shift キーを押しながら押せば、降順の並べ替えになります。

ただ、先頭行が 2 行あり、2 行目がマージされているので、Excel がソートする範囲を間違える可能性があります。

すると、並び替える範囲を選択した上で、[データ]-[並べ替え]コマンドを利用せざるを得なくなり、簡単な操作にはなりません。

○VBA をやや分かるか、覚えるつもりなら:
とりあえず、上で書いたことが実行できるまで、説明をしてもいいんですが、VBA の本を 1 冊ぐらいは読む必要があるでしょうね。(^^A)
 
だったら無理にVBA使わなくてもいいんじゃん?

お望みのやりたいことなら関数だけで十分できるジャン。
 
並び替えは、関数では無理だと思います。

データが別エリア(別シートでもOK)にあって、
表示を並び替えるならOKだけど。
それだと、ファイルが膨大になるかな。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。