• ベストアンサー

エクセルのVBAでソートをしたい

エクセルの A列に1,1,3,2,4・・・・・というデータがあって、 B列にB,A,C,D,E・・・・・というデータがった場合、 上から順番に1A,1B,2D,3C,4Eという順番に並べ替えしたいです。 エクセル単独でやる場合は、データの並べ替えでA列を第一優先、B列を第二優先で並べ替えをすればよいのですが、 VBAに埋め込んで、ボタンを押せば並べ替えできるようにできますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! >ボタンを押せば並べ替えできるようにできますでしょうか というコトですので、Sheet上にコマンドボタンを挿入したとしての一例です。 尚、データはA1セルからあるとします。 Private Sub CommandButton1_Click() Range("A1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlNo, _ key2:=Range("B1"), order1:=xlAscending, Header:=xlNo End Sub ※ タイトル行がある場合は当然コードも変わってきます。m(_ _)m

その他の回答 (1)

  • mesihuro
  • ベストアンサー率34% (23/66)
回答No.1

マクロの記録取ればいいだけではないのですか???

関連するQ&A

  • エクセルの並べ替え

    エクセル2002使用です。 行を基準にデータの並べ替えをしたいのです。      A B C D E 1行目  1 2 3 4 5 2行目  1 2 3 4 5 1行目、2行目にA列から小さい順番に数字が並んでいます。 これを並べ替えによって行を基準に大きい順番に変えることはできるでしょうか? 1行目  5 4 3 2 1   2行目  5 4 2 2 1 よろしくお願いします。

  • EXCEL VBA

    はじめまして。ExcelのVBAについて質問させて頂きます。 - A-B-C            1 0 あ        2 0 い        3 1 う           4 1 え           5 1 お   上記のようなデータに対して、A列の値が1の場合、B列の値をC列へコピー して、B列をゼロにする。A列の値が0の場合は、そのまま。 (結果) - A-B-C            1 0 あ        2 0 い        3 1 0  う           4 1 0 え           5 1 0 お   といったようにVBAを作成したいのですが、なにぶん初心者なもので、 どのように記述すればよいのかわかりません。 よろしくお願いいたします。

  • 【Excel VBA】複数範囲の並べ替えは可能でしょうか?

    【Excel VBA】複数範囲の並べ替えは可能でしょうか? Excel2003を使用しています。 CSVデータを元に作成された下記のような表があります。 A列…日付、B列…受注番号、C列…摘要(会社名・品名等)、D列…金額となっています。 6行目以下に上記の内容でデータが入力されていますが、会社ごとのデータ内で日付順に並べ替えをしたいのですが、VBAで複数の範囲を選択して、それぞれの範囲内での並べ替えは可能でしょうか?     A     B     C    D 6             ○○会社 7   1/20   123   AAA   1,000 8   1/15   120   BBB   2,000 9 10              計     3,000 11 12            ××会社 13 計の1行上と下は空欄行で、以下、会社名の後にデータが続くというパターンの繰り返しで数十社分あります。 Excelのデータ⇒並べ替えでは複数選択した状態での並べ替えはできないので、VBAで可能であればと思い、質問させていただきました。 よろしくお願いします。

  • EXCEL 空白セル削除 VBA使用せず

    EXCELで、以下のような表を作成しています。   A   B   C   D   E 1 あ  10 2 い  20 3 う  20 4 え  10 5 お  10 もし、B列の値が10なら、C列にA列の内容を次のように表示します。   A   B  C  D  E 1 あ  10  あ 2 い  20  え 3 う  20  お 4 え  10 5 お  10 上の例の場合、C列の2行目・3行目にはA列を反映させないということを VBA無しで行いたいのですが、関数だけで可能でしょうか? 式はいくら複雑になっても構いません。 ヒントになるようなことでも、自分でトライしてみますので、 お教えください。 宜しくお願いします。

  • Excel VBAでのプログラム作成方法

    次のようなことができるプログラムをVBAで作りたいと考えています.概略どのような考え方で作ったらいいか初心者向きに教えてください. ・Excelのシート上にA1~A100,B1~B100,C1~C100までの表を用意し,A,Bにはいずれも予めデータ(文字列)が入っています.Cは空欄です. ・フォーム上にボタンBT1,BT2,BT3を設けます. ・フォーム上にテキストボックスC,D,Eを設けます. 操作は,最初は,表の先頭のデータA1,B1,C1をテキストボックスC,D,Eにそれぞれ表示します.表示された内容に従って,BT1,BT2,BT3のいずれか一つのボタンを押す.どのボタンを押したかの記号をC1の欄に書き込みます.ボタンを押した時点で,次のデータA2,B2,C2が表示されます.これを繰り返し,データが100になった時点で,最初に戻ります. このような機能をもつプログラムを作りたいのですが,どのような作り方をすればいいでしょうか.

  • エクセルのデータ並び替えについて

     A  B  C  D  E  F 1(1) (2) (3) (4) (5) (6) 2(7) (8) (9) (0) (イ) (ロ) エクセルのデータの並べ替えにおいてですが、例えば上のようなデータを  A  B  C  D  E  F 1(1) (2) (3) 2(4) (5) (6) 3(7) (8) (9) 4(0) (イ) (ロ) のように並び替えたいのですが、どのように簡単に並べることが出来ますでしょうか。

  • エクセル ソート

    当方、エクセル2010、Windows7の環境です。 エクセルで 「A列」「B列」 「1」「X」 「1」「」 「2」「Y」 「1」「Z」 というように、「A列」に数字が 「B列」には文字が入っています。 ただし、「B列」には何も入っていないこともあります。 この「A列」を第一、「B列」を第二優先順位で ソートすると、 「1」「X」 「1」「Z」 「1」「」 というように、何も入っていない行が 一番下にきてしまいます。 「B列」に何も入っていないのですから、 「1」のかたまりのなかで 一番上にきそうですが、 一番下にきてしまいます。 これを 「1」「」 「1」「X」 「1」「Z」 の順番にソートすることは可能でしょうか?

  • エクセル あいうえお順に並べ替えしたいのですが。。

    はじめまして。 今、エクセルで下記のような顧客名簿を作成しています。 A列:日付 B列:氏名 C列:住所 D列:マンション名 E列:電話番号 氏名であいうえお順に並べ替えしたいのですが うまくいきません(ToT) いつもの通りに『並べ替えしたい範囲を選択→データ→並べ替え →最優先されるキーB列選択→OK』 とやってみたのですが、あいうえお順でもなくバラバラなんです。。 かといって住所順になっているわけでもないし。。 どなたかお分かりになる方いらっしゃいましたら アドバイスお願い致します!!!

  • エクセルVBA及び関数

    初心者です。お教えお願いします エクセル2003です 空白行及び0をなくしたいのですが(C列を入力された時点で自動でE列のようにしたい) 関数の場合及びVBAのシートコードを両方教えていただけないでしょうか VBAのコードは勉強の為です Sheet1    A    B     C     D     E     F 16          文字A        文字A 17          文字B        文字B 18            0         文字C 19          文字C        文字D 20            0         文字E 21          文字D        文字F      22      23          文字E 24 25          文字F 文字はC16~C80まで入っております B16~E80までのセルのみで行いたいのですが 他の場所は関数やグラフ等がすでに入ってますのでいじりたくありません E16~をフォームのコンボボックスのリストにしようと思ってます よろしくお願いましす

  • エクセル VBA

    エクセルVBAで以下のようなデータがあります。 D列の文字列と右隣のE列の文字列の2つが入っているものをA列から探し、見つかったセルの上にセルを追加し、E列の右隣のF列に入っている文字列を代入したいです。 どのようなプログラムになりますか?

専門家に質問してみよう