• ベストアンサー

Excelの並べ替えをマクロで実行したら・・・

Excelの並べ替えをマクロに登録しました。その日の作業ではうまく動くのですが、後日、元のデータを変えて実行したらおかしくなります。具体的には、B列を降順で並べ替えをしたら、その他の列が並び替えられないのです。その日に電源を入れなおして実行しても、うまく並び替えできるのですが、後日実行したらおかしくなります。ちなみにTODAYとかは入っていません。WinXPでExcel2000です。宜しくお願いします。

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

  • ベストアンサー
  • macchan1
  • ベストアンサー率38% (52/136)
回答No.2

マクロの記録を利用する場合にはいくつかの注意が必要です。 今回のケースは、おそらくマクロ記録の最初にデータ範囲を選択しなかったためと思われます。すなわちマクロ実行時にカーソルのある場所(例えばリストの一番最後の下の行)によってはマクロがうまく作動しません(リスト内にカーソルがあるか確認してみてください)。 このような場合は、マクロを記録するときに一回リスト内にカーソルを置き(移動し)、その後Ctrl+Shift+*でリスト範囲を自動選択してから記録を続けると良いと思います(単に領域を選択した場合は、その領域しか選択しないので一般的には制限が多い)。 これらのテクニックは、ピボットテーブル作成時にも応用できます。 なお、このような質問は、実際に記録されているマクロコードを提示されれば、具体的にどこに問題があるかわかるので、解決が早いと思います。

その他の回答 (1)

  • hogehage
  • ベストアンサー率50% (54/107)
回答No.1

その記録されている並び替えには、範囲指定が入っていないためではないでしょうか。 (例) Range("A1:X100").Select Selection.SortSpecial SortMethod:=xlSyllabary, _   Key1:=Range("D1"), Order1:=xlDescending, _   Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom マクロの記録開始をしてから、 (1)範囲指定して (2)並び替え とすれば、大丈夫なはずです。

関連するQ&A

  • エクセル(マクロ含む)で、列の並べ替えはできますか?

    エクセル(マクロ含む)で、列の並べ替えはできますか? 例えば、 A1  B1  C1  D1  E1 名前  ナシ  カキ  蜜柑  モモ 価格  80  50  45  95 人気   3   4   2   1 個数  35  90  80  20 という表において、 価格、人気、個数、それぞれの指標をもとに、 B1~E1までの列を、降順・昇順に並べ替えたりしたいのですが、 そんなことは可能でしょうか? 例えば、人気の指標で、降順に並べ替えるとすると、 E列(モモ列)がB列に来て、以下同様に、 D列(蜜柑列)がC列に、 B列(ナシ列)がC列に、 C列(カキ列)がE列に来るような形で、並べ替えが行われます。 並べ替えが行われるのは、あくまで、「列」において、です。 よく見かける「『行』が移動するような並べ替え」とは異なるものですので、 誤解無きよう、宜しくお願い致します。 以上、どなたか、お分かりになるかた、色々とお教示下さい。 必ず、お返事とポイント付与を行います。

  • エクセルの並べ替え「降順」について

    エクセルで「降順」に並べ替えをしたいのですが 上手くいきませんので教えてください。 F列のセルに、他のシートからVLOOKUPで数値を返しており、 F列を「並べ替え→降順」とすると、データがごっそり消えてしまいます。 昇順は問題なくできますが、降順にすると消えてしまいます。 他の列は問題なく降順にできます。 エクセルのバージョンは2016、OSはWindows11です。 よろしくお願いいたします。

  • Excelの「並べ替え」について

    Excelで「データ」の中の「並べ替え」をします。 例えばA列には番号、B列には名前、C列には生年月日、D列には住所 が入力されています。 これに対してある列を基準に「並べ替え」を実行したとき、 全てが「並べ替え」に対して正確についてきますか。 実際の事例としてデータがバラバラになり、 入力をし直したことがあります。 何かお分かりの方がいらっしゃれば教えてください。 この作業は仕事の上で頻繁に使用しているので、 困っています。

  • EXCEL マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか?

    EXCEL マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか? EXCEL2007を使っています。 マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか? シート1 1 3 2 というデータを「マクロの記録」で昇順に並べ替えるマクロを作成します。 シート2 3 5 4 というデータに適用したいのですが、マクロを実行するとシート1のデータが 並べ替えられてしまいます。 マクロを読むと「シート1」という記述があるのでシート1にしか適用できないようです。 マクロの記録だけで別のシートにも適用できるマクロを作成できないでしょうか? (ただの並べ替えだけだったらマクロを作成する必要はないのですが、実際にはもっと複雑な 動作をさせたいのです)

  • よろしくお願いいたします。Excelで並べ替えなの

    よろしくお願いいたします。Excelで並べ替えなのですが、行が多く手動では、時間がかかってしまいます。写真ではA列がメーカーB列がスタイル番号C列が車名、D列が値段が記載されてます。 (1)最初にA列をメーカーごとで並べ替え、(並び順不問) (2)その後に各メーカー枠の中でスタイル番号ごとに並べ替え(昇順) (3)その後に各メーカー枠の中で値段ごとに並べ替えます(降順) です。 行が、多くて手動でやるのは大変なので、マクロでなんとか出来ないでしょうか?よろしくお願いいたします。

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

    もう一度 助けてください エクセルの集計表である列の移動 並べ替えをエクセルのマクロ機能でつくりました ボタンを押すだけで うまくいっていたのですが データーが増え行を増やそうと 前のマクロを削除して また最初から作ろうとしたところ 記録できません 静的変数が64KBを超えたとかでます 編集 削除しようにも実行とキャンセルしか使えません いろいろほん(VBA)を見ましたが 私のレペルでは100年無理です 簡単なエクセルのマクロにも 範囲があるんですか あるひとつのシートだけマクロを残しています 手作業の集計や決まった作業はたいへんです

  • エクセルのマクロからアクセスのマクロ実行命令を出せますか?

    教えてください。 一連の作業をアクセスのマクロとエクセルのマクロを使って作業を完成させました。 まず最初にエクセルのブックを起動し、マクロを実行し作業をさせ、その後にアクセスを起動させ、マクロを実行し、作業ファイルをエキスポートさせ、またエクセルに戻り、エクセルマクロを実行させて作業を関せさせたいと思います。 そこで、エクセルのマクロでアクセスを起動させ、アクセスのマクロを実行させるようなことはできるのでしょうか? よろしくお願いします。

  • EXCELで4項目以上で並べ替えをしたい

    Excel2002です 通常並べ替えは データー>並べ替え でソートしようとすると、keyは3項目までですが、4項目以上で並べ替えをする方法はあるでしょうか? マクロを使わずに簡単な方法で。。。。実行したいのですが。 たとえば >key1 >key2 <key3 <key4 <key5 >key6(>昇順 <降順 の意味です)の場合 key4 key5 key6 で上記 データー>並べ替え を実施後 再度同範囲で  key1 key2 key3で 実行すれば >key1 >key2 <key3 <key4 <key5 >key6の結果が得られる仕様になっているのでしょうか?

  • エクセルのマクロでの並べ替えにおいて

     できるExcel2000マクロ&VBAを読みながら,マクロに初挑戦しました。ところが初めからつまづいています。  住所録の並べ替えです。131人分の住所録をフリガナをキーに並べ替えるのをマクロに記録しました。保存して,早速機能を確認しようと132人目の住所などを入力し,マクロを実行しましたが,機能しませんでした。 Moduleは以下のようになっています。 Sub 五十音順並べ替え() ' ' 五十音順並べ替え Macro ' マクロ記録日 : 2005/1/12 ユーザー名 : ' ' Range("A1:G131").Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range _ ("C2"), Order2:=xlAscending, Key3:=Range("B2"), Order3:=xlAscending, _ Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:= _ xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, _ DataOption2:=xlSortNormal, DataOption3:=xlSortNormal End Sub 最初の Range("A1:G131") の131が臭いと思い,この数字を132にしたり,住所録の131番目以上に新しいデータを挿入したりするとマクロは機能します。きっと当然のことなのでしょうが・・・。おそらく記録するときに何か問題があるのではないかと思うのですが,解決法をご教授下さい。

  • エクセルのマクロで実行したいです!

    こんにちは。エクセルのマクロで実行したいことがあります。 周りに聞く人もいなくて困っています。 エクセルのデータがあり、売上の集計をしないといけませんが、 その前にデータを整える必要があります。 A列の10000000番代以上で会社によって固定の値となります。 A列の1~1005番までが担当コードでその横が(B列)担当者名になります。 実行したいマクロは、サンプルとしてF列~L列に表示しておりますが、 実際は、A列~G列に実行します。 またB列の【不良代替】とある文字、及び【小 計】の行は削除します。 また区分(B列に挿入)には「0」か「1」の数値が入りますが、 それは後にVLOOKをあてるので、問題ないです。 マクロ実行後に、いろいろな会社がありますが、支店も本店(何も記載なし)も 別の列でいいので、例えばI列などに合わせて合計を表示したいです。 名称が色々あるため、一社一社数えると日が暮れてしまいます。 それをマクロで記載するのはできますでしょうか。 ピボットテーブルは使わない方向で行きます。 可能な限りマクロで実行したいので、ご存じの方がいらっしゃれば、 ご教授頂きたいです。宜しくお願いいたします。

専門家に質問してみよう