• ベストアンサー

エクセルのマクロについて

列がA~S、行が不定のエクセルのデータをソートしたいのですが、どうしたらできますか?行が不定なので全くわからない状態です。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

Sub Macro1() d = Range("A65536").End(xlUp).Row MsgBox d Range("A1:S" & d).Select Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub マクロの記録をとって後、最終行を捉えるため上2行を追加し、範囲指定をそれにあわせるため、第3行目をすこし変えたものです。Key1:=Range("A1"), などの箇所は適当に修正してください。 MsgBoxは確認用で用済み後消してください。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Range("A1").CurrentRegion.Select で A1からのアクティブ セル領域(空白行と空白列で囲まれたセル範囲)を選択出来ますので、これをマクロ記録の Selection.Sort 前に入れても良いと思います。 タイトル行を持つ表であれば、最終行がどの列でも大丈夫です。

関連するQ&A

  • エクセルのソートのマクロ

    エクセルでのソートのマクロを教えてください。  範囲選択は手動でその都度変更します。優先列、昇順は変更ありません。 例えば、AからE列までデータがあり、第一優先列をD列、第二優先列をA列として、それぞれ昇順でソートします。 範囲はその都度手動で複数行を全列選択します。 つまり、適宜、複数行を選択してからこのマクロを実行すれば常に先の形式でソートできるようにしたいです。  わかりにくい記述で恐縮ですがよろしくお願いします。

  • エクセルで連番をマクロで

    こんにちは いつもお世話になっています。 Windows7、エクセル2010で教えてください。  B3から仮にB100まで文字列があるとします、空白セルはありません。 この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。 実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。 マクロ記録ではB列にデータがなくなる判断ができなくて作れません。 この作業が頻繁にあるものですからマクロができれば助かります。 よろしくお願いいたします。

  • エクセルでのソートについて

    エクセルで縦方向(複数列)にデータを入れていっているのですが、 その中の1つの列のデータを昇順とかでソートしたときに、 その列しかソートされません。 行単位で意味を持ったデータなので、 どこの列でソートしても行も追随してソートしたいのですが、 どうすればいいのでしょう?

  • Excelでマクロを組んで、データを繰り返し抜き出したいのですが

    Excelでマクロを組んで「データ取得→データ並び替え→データ取得・・」と繰り返す作業を自動的に行いたいと思っています。 元データ       一回目     二回目    │A│        │A│      │A│    │列│       │列│     │列│   ─┼─┼─  ──┼─┼  ──┼─┼ 1行 │k │    3行│m│   2行│d │ ──┼─┼─  ──┼─┼  ──┼─┼ 2行 │d │    5行│z │   4行│r │ ──┼─┼─  ──┼─┼  ──┼─┼ 3行 │m │    8行│e │   6行│p │ ──┼─┼─  ──┼─┼  ──┼─┼ 4行 │r │    9行│f │   7行│s │ 例えば、上記の元データのようにデータ(小文字アルファベット)を入力し、その後一回目、二回目・・・とデータの並べ替えを繰り返し、その都度上から二段目のデータのセルのデータ(この場合それぞれz、r)を取得して変数xに収めるという作業を繰り返し自動的に行うようにしたいのですが、「x=Cells(2,1)」とマクロを書くと非表示になっているセルA2のデータ(この場合d)を常に取得してしまいうまくいきません。 これはどのような方法で解決できるのでしょうか。 OSはWindows2000、ExcelはExcel2000を使っています。 よろしくお願いします。

  • エクセルのマクロで罫線を引くには

    http://okwave.jp/qa4965370.htmlで質問させていただいた内容の発展です A列にデータが入っているとします たとえばA8:A50までとします(変動します) A列の最終行50行目を取得したら、 S~U列8行目から、S~U列の、A列で取得した最終行目まで罫線を引きたいのです (開始が8行目は決定しています) 罫線の設定はこちらで組めるので、そこまでの例を出していただきたいのですが…… S列のみだと、offsetで簡単にできたのですが、複数列にわたるとむずかしいでしょうか? 暇な時にでも回答お願いします

  • エクセルのマクロについて

    エクセルのデータ処理で困っています。 A列とB列に8000行記入されており、A列とB列の内容をA列にまとめる処理を行おうとしています。 具体的には、元のデータA1、B1、A2、B2を新たにA1、A2、A3、A4に整理する処理です。 マクロを使えば容易に処理できると思うのですが、当方エクセルに詳しくなく困っています。 お詳しい方、処理方法などをご教授していただけないでしょうか。 よろしくお願いいたします。

  • EXCELのマクロについて

    EXCELのマクロについて質問させてください。 一覧シートから、職種別の各シートへ集計(貼り付け)が出来るような プログラムを作成したいのでやってみたところ、私の知識では上手く出来ませんでした。 お力をお借り出来ると幸いです。 具体的には、一覧シートへ入力後(毎月入力) 『A』 『B』 『E』と分かれた職種別の各シートへ職種別かつ氏名の昇順でソートが掛かった状態で 貼り付け?集計?が出来るようにしたいです。 一覧シートのB列には「A・B・E」のどれかの職種が入力されており 氏名はD列E列へ記載しています。(漢字、カナ表示) A~AD列までデータを記入していますので、全て各シートへ集計出来ると嬉しいのですが・・・ 行は8行目から記載してます。 上記のようにプログラムを組む事は可能でしょうか。 具体的なプログラムも載せて頂けると嬉しいです。 宜しくお願い致します。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • エクセルのソートについてお尋ねします

    エクセルでソートを行う場合、データを行・列いずれにも入れて、ソートしたい場合、どのようにすればよろしいでしょうか?

  • エクセルマクロ 不定範囲へのコピー

    B列のデータが入力されている最終行(添付画像では10行)まで、「data」シートの「E1」セルのデータをA列にコピーする方法をご教示願います(つまり、A1~A10まで)。B列のデータ数は不定なので、マクロで対応したいと思っています。 〈条件〉 B1には必ずデータは入力されていて、B列のデータは連続しています。

専門家に質問してみよう