• ベストアンサー

VBAでセル結合した範囲のソートがうまくできない。

環境はExcel2003 例えばA1:C3までの9セルをひとつ括りのデータとしたとして、A1をkey A2,A3は空白 B1は数値 B2は数値 B3は数値 C1は長い数値なのでC1のみでは全て表示できないので、C1:C3をセル結合しました。そしたら、うまくSORTができません。できればSORTの方法から参考になるソースを教えてください。

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

  • ベストアンサー
回答No.2

1でアドバイスした、takachan7272です。 ソート前にセル結合を解除し、ソート後にセル結合させる事は可能ですよ。 ただ、C1からC3を結合させていますよね。 C2、C3にデータが有れば消えちゃいますけど??? ソート用のシートと、通常作業シートに分けてみてはどうでしょうか? ソートしたデータを通常作業シートに転記するという方法。 どのような物か分かりませんので、この方法が良いかどうかは何ともいえませんが・・・ 結合と解除は簡単です。 2つのコード間でソートさせれば、回答に対する補足で問われている事は可能です。 ◆Sheet1のセル範囲C1:C3を解除する場合 Worksheets("sheet1").Range("C1:C3").UnMerge ◆Sheet1のセル範囲C1:C3を結合する場合 Worksheets("sheet1").Range("C1:C3").Merge

newone
質問者

お礼

回答ありがとうございました。 実はセル結合のループではまっちゃいました。 よろしくご教授お願いします。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2288700

その他の回答 (1)

回答No.1

ソートの基本として、セル結合しない事です。 値が入りきらない場合は、結合でなく、セル幅を調整して 下さい。

newone
質問者

補足

回答ありがとうございます。 セル幅を調整したのですが、1つのセルだけがあまりにもデータが長い為、かなりの歪な形になってしまうのです。 ソートする前に ・セル結合を解除 ・ソート ・セル結合を行う といった作業ができないですかね?

関連するQ&A

  • セルの結合

    VBAの勉強を始めたばかりの初心者です。 A1、A5 A9・・・・A25までのセルに、それぞれデータが入っていて、データが入っている各セルの下にはデータが入っていない空白の三行を作っています。隣のB列にもデーターはありません。 それをA1からB4、A5からB8・・・A25からB29までのセルを、手作業で結合をしているのですが、今後データが増えていくのでどうしてもVBAで行いたいのです。 ネットで調べてもありそうでなかなかないのでどなたか教えていただければ助かります。 わかりにくい説明ですが宜しくお願いします。   A列  B列 1 ああ  空白 2 空白  空白 3 空白  空白 4 空白  空白 5 ああ  空白 6 空白  空白 7 空白  空白 8 空白  空白 9 ああ  空白 ・ ・

  • Excel2007のVBAで文字列を結合

    Excel2007のマクロで文字列を結合したいのですがうまくいきません。 下記がお題になります 1、セルA1からU1までデータが1つずつ入ってます。 2、1のデータを3列ずつ結合してA3からG3にコピー。 例えば、セルA1あ、B1い、C1う、D1え、E1お、F1か、ならセルA3あいう、セルB3えおか、のようにマクロで一機にできるソースをお願いします。

  • Excel VBA - 空白の結合

    以下のようなExcelのシートがあります。 A2からC7を選択した後、マクロを走らせて空白セルを結合したいです。   A B C 1 (空白) DDD (空白) 2 ABC 123 (空白) 3 (空白)(空白)(空白) 4 DEF GHI DEF 5 (空白)(空白)(空白) 6 (空白) 789 123 7 (空白)(空白)(空白) 8 GHI JKL MNO A3はA2と結合、A5,6,7はA4と結合、B列、C列も同様です。 要は、空白セルを上にある値の入ったセルと結合したいのです。 ただ、C2が選択範囲外のC1と結合すると困るので、先頭行の空白は、上の選択範囲外セルと結合しないようにしたいです。C2とC3は、結合しませんが、結合する仕様でも問題ありません。 (A2と同じ値をA3に入れた方がいいという意見があると思いますが、会社の表なので結合しないといけません。) ※以前、似たような質問をしましたが、少し違います。(これは未解決です。)

  • 結合セルを含む空白行に下のデーターを上に詰める

    よろしくお願いします。 結合セルを含む空白行に、下のデーターを詰める。 下の場合の、【かわ、やま】は、1行目と2行目のセルを結合させています。また、【うみ、たに】は、3行目と4行目のセルを結合させています。   A   B   C   D   E 1      100 AAA      かわ やま 2 200 BBB 3       空白 空白     空白        空白 4       空白 空白 5        111 CCC      うみ たに 6 222 DDD これを、下のようにしたいのです。   A   B   C   D   E 1      100 AAA           かわ やま 2 200 BBB 3        111 CCC      うみ たに 4 222 DDD 結合されているため下の構文では詰めることができません Dim LastRow As Long With ActiveSheet LastRow = Range("A232").End(xlUp).Row Range("B1:E" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending End With

  • 結合セルに結合していないセルの値を貼り付けたいです。

    結合セルに結合していないセルの値を貼り付けたいです。 シート1の1行目の[A1-B1-C1-D1]を結合しています。以下同じように[E1-F1-G1-H1]…のように4つづつ結合しています。 この行に、シート2のA1→B1→C1と続く結合していないセルのデータを貼り付けたいのですが、やりかたがわかりません。色々やってみたのですが、うまくゆきません。ご教授お願いいたします。

  • 結合セルを含む空白行に下のデーターを上に詰める

    先ほど、質問を出さしていただいたのですが、説明文が詰められているため醜くなってしまいましたので再度出さしていただきます。 よろしくお願いします。 結合セルを含む空白行に、下のデーターを詰める。 下記の場合の、【かわ、やま】は、1行目と2行目のセルを結合させています。また、【うみ、たに】は、3行目と4行目のセルを結合させています。     A    B    C    D    E 1            100   AAA         かわ            やま 2            200   BBB 3            空白   空白         空白            空白 4            空白   空白 5            111   CCC         うみ            たに 6            222   DDD これを、下のようにしたいのです。     A    B    C    D    E 1            100   AAA              かわ            やま 2            200   BBB 3            111   CCC         うみ            たに 4            222   DDD 結合されているため下の構文では詰めることができません Dim LastRow As Long With ActiveSheet LastRow = Range("A232").End(xlUp).Row Range("B1:E" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending End With

  • VBA ソートについて

    win7、Excelは2013を使用しています。 VBAでソートのコーディングをしたいのですが、 画像の様に、途中で空白のセルを順番指定して並べ替りできますか? 下記の ここに空白セルを指定する のところに空白セルを指定したいのですが、 そもそもそういう事が出来るものなのでしょうか..... よろしくお願い致します。 Sub ソート() With ActiveSheet.Sort.SortFields .Clear .Add key:=Range("D2"), SortOn:=xlSortOnValues, _ Order:=xlAscending, CustomOrder:= _ "A,D,H,G,F,D,B,ここに空白セルを指定する,R" _ , DataOption:=xlSortNormal End With With ActiveSheet.Sort .SetRange Range(Cells(2, 4), Cells(9, 4)) .Apply End With End Sub

  • Excelでセルとセルを結合したいのですが・・・

    質問させていただきます。 Excel2007を使っています。 複数のセルを結合して一つのセルにまとめる作業をしているのですが、 =A1&" "&A2&" "A3 のようにすると結合できました。&" "&でスペースも確保できました。 しかし、結合するデータの中に空白があります。 データの中の空白を無視し、スペースを消してほしいのですがどうすればよいかわかりません。 例えば、A1にデータがない場合、スペースが空いてからA2が出てきます。 その空白をなくす方法を教えてください。お願いします。

  • Excel2007のマクロで文字列を結合

    Excel2007のマクロで文字列を結合したいのですがうまくいきません。 1、セルA1からU1までデータが1つずつ入ってます。 2、1のデータを3列ずつ結合してA3からG3にコピー。 例えば、セルA1あ、B1い、C1う、D1え、E1お、F1か、ならセルA3あいう、セルB3えおか、のようにマクロで一機にできるソースをお願いします。

  • エクセルの結合したセル

    こんにちわ。 上下に結合したセルがAの列に並んでいます。A1、2で一つ、A2、3で一つというふうに。 そこに日付が入っています。 Bの列も同様にあり、そこには文字列が入っています。 それらを一つのセルにまとめたものを別のシートに作ろうと思いました。 文字列と日付なので&とTEXTを使い、うまくいったのですが、一番上を合わせて、下へスライドコピーしたらデータが飛び飛びになってしまいました。 結合した場合番地が上のセルの番地になります。A1,2なら番地はA1。 なのでA2には何も数値がないので、空白扱いとなってしまいました。 データ量が多いので、できればスライドさせて一気にやりたいのですが、なにかいい方法はありませんでしょうか? 難解な文章で申し訳ありません。。

専門家に質問してみよう