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

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

EXCEL VBAコミュのUserForm内に並び替えのマクロを組み込む方法

  • mixiチェック
  • このエントリーをはてなブックマークに追加
初トピック作成です.マクロを今年からちょっとずつ使うようになったものです.

今,並び替えのマクロを作成しているのですが,並び替える条件を選択できるようにしようと考えています.

今悩んでいるのは,UserFrom内での並び替えマクロSortがうまく働かないことです.

どのようにすればいいのでしょうか.おそらく(式).Sortの式の部分ができてないんだとは思うのですが・・・

以下は,作成途中のマクロです.

Sub 成績並び替え()
Range("A4:BW43").Select
UserForm1.Show
End Sub

Private Sub 偏差値平均値_総合()

ActiveWindow.ActiveSheet.Selected.Sort Key1:=Range("AY4"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal

UserForm1.Hide
Range(A1).Select

End Sub

あと,Privete Subのあとの名前はcommand_button1から変更したが,大丈夫でしょうか?

すみませんが,教えてください.

コメント(4)

もし、CommandButton1をクリックして「Private Sub 偏差値平均値_総合() 」の部分の処理をしたいのなら、「Private Sub CommandButton1_Click()」のままにしないと、マクロは動きません。
さもなければ、「Private Sub CommandButton1_Click()」の中から「Private Sub 偏差値平均値_総合() 」を呼び出すようにしないと。
ありがとうございます.あと,
sortの前の部分は何とマクロを書けばいいのでしょうか?

Command_Buttonを使わない場合だと,
Selection.Sort〜という形になってますが…
おそらくいまやろうとしているのは、A4からBW43の間にあるデータを、AY4の列にあるデータを使ってソートをしようということだと思います。
ただ、それだけだったら以下の処理だけで済みます。

Range("A4:BW43").Sort Key1:=Range("AY4"), Order1:=xlAscending, Header:= _
xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal

ただ、これだけではなく、他に「並び替える条件を選択できるようにしよう」と考えていらっしゃるようですので、その他の条件でソートをかける際のマクロプログラムが、条件によってどう違ってくるのかを「マクロの記録」を使ってチェックしてみてください。
その違いをプログラムに組み込んでいけば、並び替える条件を選択できるように作ることができていくかと思います。
>ActiveWindow.ActiveSheet.Selected.Sort

の所は  Selection.Sort  ではだめなのでしょうか?

成績並び替え で既に範囲を選択されているなら

Selectionだけでいいと思うのですが、、、

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

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

EXCEL VBA 更新情報

EXCEL VBAのメンバーはこんなコミュニティにも参加しています

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