• ベストアンサー

Excelで指定の順序で列の並び替えを行いたい

Excelで 1  2  3  4  5  6  7  8  9  10 ・・・100 A班 B班 C班 D班 E班 F班 G班 H班 I班 J班 50 20 23 22 10 35 62 21 16 15 という並びのものを列を入れ替えて、 1  2  3  8  5 16 17  4  9  10 ・・・100 A班 B班 C班 H班 E班 P班 Q班 D班 I班 J班 50 20 23 21 10 55 41 22 16 15 というように毎回指定の順序で列の並び替えを行いたいと考えています。  それぞれの列には100行程度データがぶら下がっています。 手作業で入替を行うと毎回時間がかかるため、一回フォームを作って 自動化したいのですが、方法がわかりません。 VBAかプログラムを使えばできそうな気がするのですが、 何か参考になるものがあれば教えていただけるとありがたいです。 Excelの列の入れ替えツールを探したところ、「入替え君」「DB構造変更「そよ風」」 といったツールがありましたが、自動化できるものはありませんでした。 よろしくお願いします。

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

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

検証してみましたが、特にVBAを使わなくてもできると思います。VBAも、簡単なコードで済みますが、指定順序を100個ともなると、ユーザー設定で、コードを入れるのにも、間違えずに入れていただくにも大変です。 毎回の指定順序があるなら、まず、その指定順序番号をどこかに用意してください。(ワークシート上です) ただし、文字列でなくてはいけませんから、数字は、書式で、「文字列」にしておいてください。1度、設定したら、毎回設定する必要ありません。 その文字列の行を、ツール-オプション-ユーザー設定リストを開けて、 リストの取り込み元範囲で、その範囲を決定して、「インポート」してください。 (不要になったら、リストの中から選んで、削除できます) *正しく設定されたかリストの中を確認してください。 次に、並び替えする範囲を選択してから、  データ-並べ替え-オプション-  並べ替え順序 の指定で、 先ほどの数字を選んでください。 方向は、列単位 「OK」 で並び替えが終了します。 (並べ替えデータは、特に、数字が、文字列になっていなくてもよいようです) ** それを、マクロ化されたいのでしたら、記録マクロで十分だと思います。 既に設定された順序があれば、おそらく専門的なプログラムよりも、はるかに良いものが出来上がるはずです。

chokigoo
質問者

お礼

おおっ、こんな方法があったんですね。 できました!すばらしい。 目からウロコ状態です。 ありがとうございました。 お礼が遅くなってすみません。 (一週間前に書き込んだのですが、反映されていなかったのに今日気づきました)

その他の回答 (2)

  • kikei
  • ベストアンサー率5% (1/20)
回答No.2

毎回全く同じ列を入れ替えるのでしょうか? それならば下記方法が簡単です。 ツールメニュー→マクロ→新しいマクロの記憶を選択します。 その状態で手作業で入替を行ってください。 入替が終わったら記憶の終了。 これで手作業で行った入替がマクロ化されます。 後はツール→マクロ→マクロで同じ操作が行われます。

chokigoo
質問者

お礼

回答、ありがとうございました。 マクロも検討してみたのですが、 No.3の方の方法が一番融通がききそうですので そちらで対応することにしました。 ありがとうございました。 お礼が遅くなってすみません。 (一週間前に書き込んだのですが、反映されていなかったのに今日気づきました)

回答No.1

並べ替えをするためのルールのようなものは 毎回定まっているのでしょうか? それがあればなんとかVBAを使用して自動化できるかもしれません。 決められたルールが定まっていないようであれば、 結局手作業ではありますが、一番最後の行に並び順の 数字を1から入力して、それをキーに並べ変えれば 少しは手間が省けると思います。 ルールがあるのであれば、差し支えない程度に 教えていただければ何か助言ができるかもしれません。

関連するQ&A

専門家に質問してみよう