« ボタンを使ってマクロを実行する | トップページ | 意図したセルを画面の可視範囲に表示 »

2011年9月18日 (日)

昇順/降順の並び替えをするボタンを作成

ボタンを作成して、
クリックでマクロを実行、
ボタンに表示されている文字を変更することについては、
記事『ボタンを使ってマクロを実行する』を参照してください。

昇順/降順ボタンとは
中古車のサイトなどで検索すると結果の画面にある
価格や走行距離などで
昇順/降順の並び替えをするボタンのことです。

これをシートの1行目に設置してみます。

まずはボタンを準備します。
1つのボタンで昇順/降順の並び替えをします。
昇順の次は降順、降順の次は昇順のように
交互に実行します。

次に、実際に
昇順/降順の並び替えをするプロシージャを準備します。
このプロシージャは
指定した列(Mycolumn)を基準に、
指定した範囲(MyRange)を並び替えます。

コードはこちら

昇順/降順の並び替えをするコード:

Sub macro110918a(MyRange As Range, Mycolumn As Range)
'Mycolumnを基準に、MyRangeを並び替えます
'r = 並び替えの範囲
'c = 基準の列
'order =(xlAscending = 1/xlDescending = 2)
    Static order As Integer
      
    'orderを決定
    If order = 2 Then
        order = 1
    Else
        order = 2
    End If
   
    'ヘッダーを含む範囲の並び替え
    MyRange.Sort _
        Key1:=Mycolumn, Order1:=order, _
        Header:=xlYes, _
        OrderCustom:=1, _
        MatchCase:=False, _
        Orientation:=xlTopToBottom, _
        SortMethod:=xlPinYin
   
End Sub

ボタンをクリックして実行するプロシージャのほうは
このようになります。

CommandButton1_Clickのコード:

Private Sub CommandButton1_Click()

    Call macro110918a(UsedRange, Range("A2"))
   
End Sub

macro110918aの1つ目の引数にUsedRangeを、
2つ目の引数にRange("A2")を指定しています。
このボタンはA列の一番上のセルに配置します。

その他の列用のボタンも作成して
macro110918aの2つ目の引数を適宜変えて入力します。
各列のボタンを作成したシートの例はこちら

Vba20110918a

「s」ボタンを押すとA2:D6の範囲が
押したボタンのある列を基準に昇順/降順に並び替えられます。

ボタンが小さすぎて表示させる文字がsしかできませんでした。
プロパティをじっくり見ましたが項目がなく、
Fontのサイズは変えられない?ようです。

|

« ボタンを使ってマクロを実行する | トップページ | 意図したセルを画面の可視範囲に表示 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 昇順/降順の並び替えをするボタンを作成:

« ボタンを使ってマクロを実行する | トップページ | 意図したセルを画面の可視範囲に表示 »