• ベストアンサー

ExcelVBA:列方向の並び替え Orientation

fumufumu_2006の回答

回答No.1

Orientation:=xlSortColumns を Orientation:=xlLeftToRight にしたらどうでしょうか? これはマクロの記録で、手動で列方向に並べ替えた場合の値です。 なぜxlSortColumnsとxlSortRowsでおかしくなるのか? 探したら、「バグだ」という話がありました。 http://www.keep-on.com/excelyou/2000lng4/200007/00070351.txt

noname#64582
質問者

お礼

ご回答有難うございます。 そうですね、混同の無いようにこれからは、xlLeftToRight と、xlTopToBottomを活用したいと思います。 それにしても、xlSortColumns と xlSortRows のヘルプはおかしいと思うんですよね・・・。 有難うございました。

関連するQ&A

  • エクセル 列の並び替え

    エクセル 列の並び替え A列に氏名、B~F列にa,b,cの評価、G列に総合判定(1~5段階評価)が入った100人分ほどの表があります。 まずG列の総合評価順にソートし、そのあとB~F列をABC順 (A君 abacb 5 → aabbc 5  B君 b a aba 4 → aa a bb 4という感じ) に全員を並び変えたいのですが、できずに困っています。やり方を教えてください。 最終的にやりたいのは、総合判定が間違っていないかのチェックで、5評価なのにbが3つあったり、cが入っていたりすると判定しなおしとなります。ただそのルールが細かいので、並び替えをした後に目視でチェックしようかと思っています。 本当はマクロなのかな・・とも思っていますが、エクセルに詳しくないので、どなたか教えていただけると嬉しいです。よろしくお願いいたします。

  • 並び替え 助けてください

    はじめまして 同じ質問をされてると思いますが皆さんのお力をお貸しください。 A列にコード番号(約150行)、B列に会社名、C列に月売上目標、D列に毎日の売上を記入する表があります。 C列の月売上目標は会社ごとに違います、毎日の売上で目標に近い順に並び替えがしたいのですが関数を使えば出来るかと考え色々探しましたが解かりません。どなたか良いアドバイスお願いします なお関数については素人です、office xp 使用 よろしくお願いします。

  • エクセルでマクロを使った同一処理を列方向に繰返す?

    VBAの初心者です。マクロを使った同一処理を各列ブロック(3列が1単位)毎に 繰り返して列方向に多数のブロックまで行うVBAはどのようなものになるのでしょうか。 具体的には添付図のような表で、B2店について品名・数量・金額を、4行目~10行目まで、金額の多い順に並べかえた後、金額の合計をセルD2 に記入するマクロ(この記述は下記のようになりましたが)、この処理をE5店、H8店……と3列ずつ例えば20ブロック処理するプログラムはどのようにしたらよいでしょうか(20ブロック目の列番号はBG,BH,BIです)。どなたか教えていただけないでしょうか。 Sub 多い順と合計() Range("B3:D10").Select Selection.Sort Key1:=Range("D4"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin Range("D2").Select ActiveCell.FormulaR1C1 = "=SUM(R[2]C:R[18]C)" Range("B2").Select End Sub

  • エクセルのvba(最終行を取得する並び替え)

    初めまして、エクセルのvbaについて質問をさせてください。 マクロの記録を使って、以下の通りF列→M列→J列の順に優先して、A列からAL列を昇順に並び替えるvbaを作成したのですが、10000行までとう不恰好な書き方になっています。最終行までという書き方に変えたいのですが、色々試したもののうまくいきません…!この場合、最終行を取得するにはどのような書き方にすれば良いのでしょうか…??(T-T) '並び替え ActiveWorkbook.Worksheets("当月").Sort.SortFields.Clear ActiveWorkbook.Worksheets("当月").Sort.SortFields.Add Key:=Range("F2:F10000"_ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers ActiveWorkbook.Worksheets("当月").Sort.SortFields.Add Key:=Range("M2:M10000"_ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("当月").Sort.SortFields.Add Key:=Range("J2:J10000"_ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("当月").Sort .SetRange Range("A1:AL10000") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With

  • EXCEL 横方向の並び替えをマクロでしたいのですが

    EXCELでの列方向の並び替えについてご質問いたします。 イメージはこちらになります(※列Aは固定データです) 列A 列B 列C 列D・・・・列K 1   1     3     8 2      2  3       3               8 これを 列A 列B 列C 列D・・・・列K 1   1  3  8 2   2  3       3   8 というふうにデータを左詰めにしたいのですが、 手動でのやり方はわかりますが、件数が多いため マクロで行いたいと思い何度か試してみましたが うまくいかないためご質問いたしました。

  • マクロ 並び替え エラーがでる

    マクロの記録で以下のようなマクロを作りましたが、実行するとエラー91「オブジェクト変数またはブロック変数が設定されていません」とでます。どう直したらよいでしょうか? Sub Macro6() Columns("A:L").Select Selection.AutoFilter ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Add Key:=Range _ ("A1:A497"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B2").Select End Sub

  • エクセルVBAでの並び替えについて

    エクセルでデータの並び替えの方法が分からなくて質問します。たとえばBの列の100~999、A100~A999、B100~B999のようなデータが縦に入っているものとします。この中には150-1、150-2のようなデータも混ざってます。これをそのままエクセルで並び替えをしても100~999までは上手にできるのですがその後に150-1とかきてA100~が始まります。例えばこのデータを100~始まり149、150-1,150-2、152,153、154のように上桁から基準に並び替えを行いたいのですがいい方法はありませんか?現在はマクロを使ってVBAでSORTの引数を触ったりしたのですが上手にいきません。基本的にVBAで行っているのでVBAでお願いします。初心者なのでよろしくお願いします。

  • エクセルの行列方向での並び替え

    エクセルのデータを下記のように並べ替えるのにはどうしたら宜しいのでしょうか?   1  2  3          1  2  3 A 1.23 2.85 1.11    A 2.85 1.23 1.11 B 12.34 15.72 15.57   B 15.72 15.57 12.34 C 16.07 16.99 15.93   C 16.99 16.07 15.93 ・   ・ ・       並び替え→      ・ ・   ・ E 16.94 14.87 13.87           E 16.94 14.87 13.87 上記のように行単位降順の並び替え方法を教えて下さい。 並び替えオプションで列単位として優先されるキー3行については並び替えができますが、データを一括に並び替えしたいのです。  

  • (再)エクセル データ並び替え

    前回、こちらで質問させて頂いた者です。 http://okwave.jp/qa/q7917475.html 一度は解決したのですが、 エクセルの表を作り変える必要が出てきて、セルの位置などが変わってしまい、 教えていただいたマクロではエラーが出てしまって並び替えができなくなってしまいました。 前回:1行目がタイトル行     データは2行目以降(A・B列は2行ずつ結合) ↓ 変更:4行目がタイトル行     データは5行目以降(A・B・C列は2行ずつ結合)     少し変わっただけなので、このへんかな~と勝手に見当をつけて自分でマクロをいじってみたのですが、検討違いのようでエラーばっかりで直りません(T0T) (マクロはとっても苦手です・・) 下のマクロが、以前の質問で回答してくださった方から教えていただいたマクロなんですが、 ここのどこを変えれば、変更後の表に対応できるようになりますでしょうか? どなたか教えてください~(>_<) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub 並び替え() 'この行から Dim i As Long Application.ScreenUpdating = False 'セルの分割 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step 2 With Cells(i, 1) .UnMerge .Offset(, 1).UnMerge .Offset(1) = Cells(i, 1) .Offset(1, 1) = Cells(i, 2) End With Next i Cells(1, 1).CurrentRegion.Sort key1:=Cells(1, 1), order1:=xlAscending, Header:=xlYes _ , key2:=Cells(1, 2), order2:=xlAscending, Header:=xlYes 'セルの再結合 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row - 1 Step 2 Application.DisplayAlerts = False With Cells(i, 1) .Resize(2, 1).Merge .Offset(, 1).Resize(2, 1).Merge End With Next i Application.ScreenUpdating = True End Sub 'この行まで ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ また、わがままで申し訳ないのですが、グループごとに並び変えるときに、さらに名簿順になるように並び替えられると助かるのですが、何か文を追加することで、そういう並び替えになりますか? もし可能なら、それも教えて頂きたいです。 なにとぞ、よろしくお願いしますm(_ _)m

  • VBA ファイルを読み込む際のSortメソッドの使い方

    tabで区切られたテキストファイルを読み込み、日時の列を昇順で並び替える処理をしようとしました。 sortメソッドを使って並び変えようとしましたが、上手くいきません。。 既に開いているエクセル上では簡単なsortメソッドを使って並び替えはできました。↓のようなマクロ記録を使って。 Range("A1:A11").Select Range("A1:C11").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin,DataOption1:=xlSortNormal ファイルを読み込んで、sortメソッドを使うには何か特別な方法があるのでしょうか?どなたか教えて下さい。よろしくお願いします。