プロが教える店舗&オフィスのセキュリティ対策術

いつもご教授頂きましてありがとうございます。

同じフォームのシートが複数あるファイルがあります(月別)
そのシートの対象項目のデータを降順に並び替えるマクロを作成したいです。

ただし、並べ替えしたい対象列数が不規則です。
行は5行目から63行で規則的です。

画像添付しております対象は13列ですが、右隣へ行くと次の対象列は15列、16列等、不規則です。
例でいうとB5~O63を対象範囲としてO列の降順で並び替えたいです。

現状、1シート1シート手作業でデータ→並び替えをしています。
シート数、対象範囲数が多い為、マクロ記憶をやってみたのですが
それもうまくいきません。。。

恐れ入りますが、何卒ご教授願います。

「【マクロ】複数シートのデータを自動で並び」の質問画像

A 回答 (2件)

こんにちは



シートによって対象となる列数(範囲)が変わるということはわかりましたが、並べ替えのキーとなる列は「O列」固定でよいのでしょうか?

キーがO列固定で良い場合、列数の最も多い範囲を想定して、その範囲に固定してセルの並べ替えを行ったら問題がありますか?
(問題がなければ、処理は簡単になるし、これで解決です)

「対象列範囲以外は並べ替えたくない」という場合は、「並べ替えの対象列範囲を識別するにはどうすればよいか」が示されていないので、具体的な方法は記せませんが、手作業で行う場合をよく考えてみると、何らかの論理的な判断基準があるものと推測します。
その範囲の判断基準がわかれば、それを基にマクロ化することが可能かもしれません。
(人間でないと判断できないような内容の場合もあるので、必ずとは言えませんが)

とは言え、一番ありそうなのは、CurrentRegionで足りてしまうようなケースかなぁ・・・
https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 1
この回答へのお礼

うーん・・・

いつもご教授頂きましてありがとうございます。

>シートによって対象となる列数(範囲)が変わるということはわかりましたが、並べ替えのキーとなる列は「O列」固定でよいのでしょうか?
>キーがO列固定で良い場合、列数の最も多い範囲を想定して、その範囲に固定してセルの並べ替えを行ったら問題がありますか?
(問題がなければ、処理は簡単になるし、これで解決です)
→O列固定ではないのです、O列の次がAD列、AT列・・・と言ったように不規則となります。

> 「対象列範囲以外は並べ替えたくない」という場合は、「並べ替えの対象列範囲を識別するにはどうすればよいか」が示されていないので、具体的な方法は記せませんが、手作業で行う場合をよく考えてみると、何らかの論理的な判断基準があるものと推測します。
>その範囲の判断基準がわかれば、それを基にマクロ化することが可能かもしれません。
(人間でないと判断できないような内容の場合もあるので、必ずとは言えませんが)
→「並べ替えの対象列範囲を識別するにはどうすればよいか」について、説明不足で申し訳ありません。
添付画像についてですが、各部門の集計をしている表になります。
なので、B列からO列までが1部門、Q列からX列が2部門・・・でそれぞれで並べ替えをしたいのです。

各部門の担当者別で数字の大きい順でランキングをつけているのですが
識別する条件とすると、K2~O2が結合しておりますが「作業列」と入力のある行、且つ、4行目が「達成/未達額」と入力のある項目です。

恐れ入りますが、ご教授頂けますと幸いです。

お礼日時:2019/05/17 16:59

No1です



>B列からO列までが1部門、Q列からX列が2部門・・・
>でそれぞれで並べ替えをしたいのです。
あれれ・・・
「シートによって並べ替えの対象範囲が異なる」のが問題なのかと思っていましたが、
「1シート内の複数のセル範囲に対して、別々に並べ替えを行いたい」ということなのでしょうか?
あるいはそれらのミックスなのでしょうか?
さっぱり、わからなくなりました。


No1にも記しましたが、いずれにしろ「並べ替えの対象範囲を特定」できて、かつ「並べ替えのキー列を決定」できることが必須となります。

自動化(マクロ化)なさりたいのであれば、この判断手順を明確にする必要がありますが、それをできるのは質問者様ご自身しかいないでしょう。
(第三者には、表の意味はもとより、どのようなバリエーションが存在し得るのかも不明ですので)
    • good
    • 1
この回答へのお礼

ご返信頂きましてありがとうございます。

>B列からO列までが1部門、Q列からX列が2部門・・・
>でそれぞれで並べ替えをしたいのです。
あれれ・・・
「シートによって並べ替えの対象範囲が異なる」のが問題なのかと思っていましたが、
「1シート内の複数のセル範囲に対して、別々に並べ替えを行いたい」ということなのでしょうか?
あるいはそれらのミックスなのでしょうか?
さっぱり、わからなくなりました。
→はい、仰る通りです。
  なので、複数対象セルを一つずつ並び替えをしている現状です。。。。

>No1にも記しましたが、いずれにしろ「並べ替えの対象範囲を特定」できて、かつ「並べ替えのキー列を決定」できることが必須となります。
> 自動化(マクロ化)なさりたいのであれば、この判断手順を明確にする必要がありますが、それをできるのは質問者様ご自身しかいないでしょう。
(第三者には、表の意味はもとより、どのようなバリエーションが存在し得るのかも不明ですので)
→仰る通りですよね。。
 質問をし直したいと思います。
 わかりづらく、大変失礼いたしました。
 アドバイス頂きまして感謝いたします。

お礼日時:2019/05/17 17:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!