• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オートフィルタのマクロが動作しない)

オートフィルタのマクロが動作しない

このQ&Aのポイント
  • Excelで縦に日付がランダムで並んでいる列(C列)があり、その列を日付の新しい順から降順で並ぶよう、オートフィルタ→(空白以外のセル)→降順とやると出来るのですが、その一連の動作をマクロでやろうとすると「実行時エラー'1004'; この操作には、同じサイズの結合セルが必要です。」と出てマクロが作動しません。
  • デバッグでみると、Selection.AutoFilter Field:=3, Criteria1:="<>" Range("A1:EA231").Sort Key1:=Range("C1"), Order1:=xlDescending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal と出ていて、2行目のRange~から4行目の~Normalまで下地が黄色くなっています。
  • コードがあまり詳しくないもので、どなたか解決法の解るかた、お教えいただけますでしょうか。よろしくお願いいたします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

エラーメッセージが示すように、データ範囲(シート内)に結合セルはありませんか? コード自体は基本的に問題ないと思うのですが、最初のセル位置(Selection)がリスト外のセルを選択していた場合は実行時エラーとなりますので、1行目にリスト内のセル(項目名)を選択するようにしておくと確実です。

tomomo20
質問者

お礼

MackyNo1様、ご解答ありがとうございます! >エラーメッセージが示すように、データ範囲(シート内)に結合セルはありませんか? すいません、てっきりC列に結合セルがなければいいのかと思いこんでいました…、シート内に1箇所でもあったら、ダメなのですね。所々結合されていたセルがありましたので、解除したら出来ました! 項目表示が小さくて見づらいところを結合して大きくしていたのですが、あくまで見栄えの問題なので…全て解除して作業を進めます。大変助かりました。ありがとうございました!m(__)m

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 もう一度見直してみましたが、これで出来るのではないかと思います。 あくまでも、結合セルの追い出しが目的です。目的が違うようでしたら、どういうマクロの目的か、補足してください。 '------------------------------------------- Sub EjectMerge01()   Dim i As Long   With Range("A1:EA231")     For i = 1 To .Rows.Count       .Cells(i, 3).MergeArea.MergeCells = False     Next i     .Sort Key1:=.Range("C1"), _     Order1:=xlDescending, _     Header:=xlGuess, _     OrderCustom:=1, _     MatchCase:=False, _     Orientation:=xlTopToBottom, _     SortMethod:=xlPinYin, DataOption1:=xlSortNormal     .HorizontalAlignment = xlGeneral   End With End Sub

tomomo20
質問者

お礼

Wendy02様、こんばんは。ありがとうございます! いただいたコードを貼り付けてみたのですが、 実行時エラー'1004'; が出てしまいました…。 せっかく直していただいたのに申し訳ありません…。 とりあえず、結合セルを解除した状態で進めてみます。 また何か問題が起きたときお力をお貸し願えれば幸いです。 いろいろとご解答いただきまして大変勉強になりました。本当にありがとうございましたm(__)m。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 基本的には、そのコードでは結合セルの追い出しは出来ません。 あえてそれで、結合セルを追い出したいのでしたら、一旦、C列からMergeAraから、結合セルを一般セルに戻して、それでソートしてから、再び結合セルにすることですが、現在のコードからは、結合セルの範囲が分かりませんから、手のつけようがありません。

tomomo20
質問者

お礼

Wendy02様、こんにちは。ご解答ありがとうございます! 結合セルの追い出し、というのができるのですか。 >あえてそれで、結合セルを追い出したいのでしたら、一旦、C列からMergeAraから、結合セルを一般セルに戻して、それでソートしてから、再び結合セルにすることですが、現在のコードからは、結合セルの範囲が分かりませんから、手のつけようがありません。 すみません、まだコードが良くわからなく、説明が不足していました…。MackyNo1様の解答でもお答えしましたが、シート内に結合セルがいくつかありましたので、それを解除したら出来るようになりました。解除されたところの文字がみづらいですが、とりあえずなんとか作業はできるのでそれで進めようと思います。ありがとうございました!m(__)m。

関連するQ&A