• ベストアンサー

エクセルデータ並び替え法則?を、登録したい

Excel2003ですが、並び替え法則を登録して、ワンタッチで、実行出来るようにする方法は在るでしょうか? 同じデータで、3通りぐらいの、設定をしたいのです。 よろしくお願いいたします。

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

  • ベストアンサー
  • 134
  • ベストアンサー率27% (162/600)
回答No.3

ツール → マクロ → 新しいマクロの登録 → (マクロ名の登録) → OK  としたのち、いつもの操作(この場合、並び替え) を行います。 最後に、記録終了を行うことで、マクロの記述が終了します。  ただ、「3通りくらいの設定」というようなものを、判断するには、プログラミングの知識が必要になりそうです。  また、並び替えの範囲が変化するときにも、プログラムに変更を行う必要が発生するでしょう。 3通り → if ~ then ~ や select case などによる場合分け セル範囲の変更 → end(xlup) や offset のほか、CurrentRegion など ?

sapporolove
質問者

お礼

有り難うございました。 無事登録でき、実行出来ました。 但し、セキュリーティレベルを低にしなければ成りませんでした。AWソフトはNOETON2005を入れてますが、問題ないでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.7

短いコードで下記はどうですか。 標準モジュールに下記を貼り付け(デモ実行用) Sub test03() Dim r As Range Set r = Application.InputBox("範囲=", Type:=8) s = InputBox("ソートタイプ=") Select Case s Case "A" r.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess Case "B" r.Sort Key1:=Range("B3"), Order1:=xlAscending, _ Key2:=Range("A3"), Order2:=xlDescending, Header:=xlGuess Case "C" r.Sort Key1:=Range("A3"), Order1:=xlDescending, Header:=xlGuess End Select End Sub 実行すると、見出しを含めてソート範囲を聞いてきます。マウスで範囲指定してOKをクリック。 ソートタイプ=と聞いてきますので、上記で用意したのは、3種ということで、A,B,Cのどれかを入力しOKをクリック。(数字コートや漢字文字列にすることも、上記コードを少し変えれば可能です。) それでソートは終わります。項目見出しは範囲指定の第1行目に有るとします。 ーーー タイプ A,B,Cの自分のニーズにあわせた改造方 上記コードの各タイプの記述で ソートキーで 第1キー Key1:= Order1:= 第2キー Key2:= Order2:= 第3キー Key3:= Order3:= のうち必要なものを書き込みます。 Key1だけ、Key1とKet2、Key1とKey2とKey3 の3種しかありません。Key1グループと、Key2、Key3のグループは、カンマでつないで書きます。 KeyについてはRange()のカッコ内に列記号と1を書き込む。列記号だけが大事で行番号はどうでも良いよう。 Orderは昇順xlAscending、降順xlDescendingのどちらかを指定します。 続けるときの _(継続記号)の要不要や、カンマの要不要について 注意してください。 行き詰まったら、そのソート方法を操作して、マクロの記録をとって コードの書き方のヒントを得てください。類推して修正は易しいと思います。

すると、全ての回答が全文表示されます。
  • Zero_0
  • ベストアンサー率35% (72/201)
回答No.6

わたしも、セキュリティーレベルは中で使用しています。 よっぽど悪意のあるマクロが組まれていなければ十分ではないでしょうか。

すると、全ての回答が全文表示されます。
  • 134
  • ベストアンサー率27% (162/600)
回答No.5

>セキュリーティレベルを低にしなければ成りませんでした 個人的には、セキュリティレベルを「中」にしています。 こうすると、ファイルを開いたときに、「マクロを含みます。マクロを有効にしますか」と聞いてきて、「Yes,No」が選べます。 セキュリティレベル「中」を、個人的にはお勧めします。 Wendy02さんの回答は、並び替えの規則(例えば、甲、乙、丙…)を登録できるということをおっしゃっています。  ご質問の内容として、Wendy02さんの回答のようにも解釈できますので、質問の意味を取り間違えたかと、正直、焦っております。 ^^;;)

sapporolove
質問者

お礼

有り難うございました。 中にして、、「Yes,No」で、実行出来ました。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

予め、データがあれば、セルの範囲を選択しておいて、メニュー-ツール-オプション-ユーザー設定リストで、インポートするか、リストの項目に直接書き入れるかして、順序を登録します。 並べ替えの時に、データ-並べ替え-オプションで、「並べ替えの順序を指定」で、選択すれば、思ったように並べ替えをしてくれるはずです。 マクロの話が出ていますが、はじめから並べ替えのコードを作るとなると、一旦、ユーザーが設定した並びを配列変数に入れて、それを、クイックソート・アルゴリズムなどで、その内容と比較していくようなものになるような気がします。かなり複雑なコードではないでしょうか? ちなみに、Version のせいなのかもしれませんが、上記の「並べ替えの順序指定」の記録マクロを取っても、なぜか、うまくいかなかった覚えがあります。

sapporolove
質問者

補足

有り難うございました。 教えていただいた内容が良く理解出来てません。 もう少し調べて、補足いたします。

すると、全ての回答が全文表示されます。
  • Zero_0
  • ベストアンサー率35% (72/201)
回答No.2

ツール→マクロ→新しいマクロの登録 ですすめます。 登録名をわかりやすく変えた方がいいでしょう。 この後、停止ボタンを押すまでが登録されます。 使うときは、ツール→マクロ→マクロ で登録した一覧が出ます。

sapporolove
質問者

お礼

有り難うございました。 無事登録でき、実行出来ました。 但し、セキュリーティレベルを低にしなければ成りませんでした。AWソフトはNOETON2005を入れてますが、問題ないでしょうか?

すると、全ての回答が全文表示されます。
  • Zero_0
  • ベストアンサー率35% (72/201)
回答No.1

マクロ登録で行ってはどうですか。できると思います。

sapporolove
質問者

補足

有り難うございました。 勉強不足で申し訳ありませんが、マクロ登録とは、どのようにするのでしょうか? ツールのプルダウンから、実行するのは分かりますが、その方法が分かりません。 よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A