いつもご教授頂きましてありがとうございます。
同じフォームのシートが複数あるファイルがあります(月別)
そのシートの対象項目のデータを降順に並び替えるマクロを作成したいです。
ただし、並べ替えしたい対象列数が不規則です。
行は5行目から63行で規則的です。
画像添付しております対象は13列ですが、右隣へ行くと次の対象列は15列、16列等、不規則です。
例でいうとB5~O63を対象範囲としてO列の降順で並び替えたいです。
現状、1シート1シート手作業でデータ→並び替えをしています。
シート数、対象範囲数が多い為、マクロ記憶をやってみたのですが
それもうまくいきません。。。
恐れ入りますが、何卒ご教授願います。
No.1ベストアンサー
- 回答日時:
こんにちは
シートによって対象となる列数(範囲)が変わるということはわかりましたが、並べ替えのキーとなる列は「O列」固定でよいのでしょうか?
キーがO列固定で良い場合、列数の最も多い範囲を想定して、その範囲に固定してセルの並べ替えを行ったら問題がありますか?
(問題がなければ、処理は簡単になるし、これで解決です)
「対象列範囲以外は並べ替えたくない」という場合は、「並べ替えの対象列範囲を識別するにはどうすればよいか」が示されていないので、具体的な方法は記せませんが、手作業で行う場合をよく考えてみると、何らかの論理的な判断基準があるものと推測します。
その範囲の判断基準がわかれば、それを基にマクロ化することが可能かもしれません。
(人間でないと判断できないような内容の場合もあるので、必ずとは言えませんが)
とは言え、一番ありそうなのは、CurrentRegionで足りてしまうようなケースかなぁ・・・
https://docs.microsoft.com/ja-jp/office/vba/api/ …
いつもご教授頂きましてありがとうございます。
>シートによって対象となる列数(範囲)が変わるということはわかりましたが、並べ替えのキーとなる列は「O列」固定でよいのでしょうか?
>キーがO列固定で良い場合、列数の最も多い範囲を想定して、その範囲に固定してセルの並べ替えを行ったら問題がありますか?
(問題がなければ、処理は簡単になるし、これで解決です)
→O列固定ではないのです、O列の次がAD列、AT列・・・と言ったように不規則となります。
> 「対象列範囲以外は並べ替えたくない」という場合は、「並べ替えの対象列範囲を識別するにはどうすればよいか」が示されていないので、具体的な方法は記せませんが、手作業で行う場合をよく考えてみると、何らかの論理的な判断基準があるものと推測します。
>その範囲の判断基準がわかれば、それを基にマクロ化することが可能かもしれません。
(人間でないと判断できないような内容の場合もあるので、必ずとは言えませんが)
→「並べ替えの対象列範囲を識別するにはどうすればよいか」について、説明不足で申し訳ありません。
添付画像についてですが、各部門の集計をしている表になります。
なので、B列からO列までが1部門、Q列からX列が2部門・・・でそれぞれで並べ替えをしたいのです。
各部門の担当者別で数字の大きい順でランキングをつけているのですが
識別する条件とすると、K2~O2が結合しておりますが「作業列」と入力のある行、且つ、4行目が「達成/未達額」と入力のある項目です。
恐れ入りますが、ご教授頂けますと幸いです。
No.2
- 回答日時:
No1です
>B列からO列までが1部門、Q列からX列が2部門・・・
>でそれぞれで並べ替えをしたいのです。
あれれ・・・
「シートによって並べ替えの対象範囲が異なる」のが問題なのかと思っていましたが、
「1シート内の複数のセル範囲に対して、別々に並べ替えを行いたい」ということなのでしょうか?
あるいはそれらのミックスなのでしょうか?
さっぱり、わからなくなりました。
No1にも記しましたが、いずれにしろ「並べ替えの対象範囲を特定」できて、かつ「並べ替えのキー列を決定」できることが必須となります。
自動化(マクロ化)なさりたいのであれば、この判断手順を明確にする必要がありますが、それをできるのは質問者様ご自身しかいないでしょう。
(第三者には、表の意味はもとより、どのようなバリエーションが存在し得るのかも不明ですので)
ご返信頂きましてありがとうございます。
>B列からO列までが1部門、Q列からX列が2部門・・・
>でそれぞれで並べ替えをしたいのです。
あれれ・・・
「シートによって並べ替えの対象範囲が異なる」のが問題なのかと思っていましたが、
「1シート内の複数のセル範囲に対して、別々に並べ替えを行いたい」ということなのでしょうか?
あるいはそれらのミックスなのでしょうか?
さっぱり、わからなくなりました。
→はい、仰る通りです。
なので、複数対象セルを一つずつ並び替えをしている現状です。。。。
>No1にも記しましたが、いずれにしろ「並べ替えの対象範囲を特定」できて、かつ「並べ替えのキー列を決定」できることが必須となります。
> 自動化(マクロ化)なさりたいのであれば、この判断手順を明確にする必要がありますが、それをできるのは質問者様ご自身しかいないでしょう。
(第三者には、表の意味はもとより、どのようなバリエーションが存在し得るのかも不明ですので)
→仰る通りですよね。。
質問をし直したいと思います。
わかりづらく、大変失礼いたしました。
アドバイス頂きまして感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) エクセルの並び替えについて 5 2022/07/11 00:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる(続) 4 2023/03/21 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) 棚卸表の前月比の関数等あれば教えてください 2 2023/05/02 18:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最高値、最低値の日...
-
エクセルの列が左右逆に・・・・
-
エクセル2007で1列おきに...
-
エクセル・違う幅の列や行を複...
-
エクセル範囲指定に列見出しを...
-
表の上下を入れ替える
-
エクセルでの並べ替え
-
差込印刷 表に左列終了後右列...
-
6桁の数字の上2桁で表される数...
-
ワードで表を作った時
-
VBAでエクセルシートを更新...
-
「24日の0時」って・・・
-
エクセルのチェックボックスを...
-
excelで、セル内に文字が入力さ...
-
「時間」、「期日」、「日付」...
-
差し込み印刷に当日の日付が入...
-
日付の大小の表現
-
Excel:セルに入力されている日...
-
エクセルで縦書きルビの付け方
-
エクセルで日付け表示で、明治...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最高値、最低値の日...
-
エクセルの列が左右逆に・・・・
-
エクセル・違う幅の列や行を複...
-
エクセル2007で1列おきに...
-
powerpoint2000で表の列幅・行...
-
エクセルの列数を増やせますか...
-
【マクロ】複数シートのデータ...
-
並び替え
-
Excel ある行と列が交わったと...
-
ワードで表を作った時
-
差込印刷 表に左列終了後右列...
-
エクセルについて詳しい人教え...
-
エクセルでの並べ替え
-
エクセル範囲指定に列見出しを...
-
マクロでカウント
-
○○以上の合計
-
Excelの住所録を「あいうえお」...
-
エクセルで流し込み印刷したい...
-
エクセルで複数のセルをランダ...
-
エクセルの数式について教えて...
おすすめ情報