アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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のどちらかを指定します。
続けるときの _(継続記号)の要不要や、カンマの要不要について
注意してください。
行き詰まったら、そのソート方法を操作して、マクロの記録をとって
コードの書き方のヒントを得てください。類推して修正は易しいと思います。
    • good
    • 0

わたしも、セキュリティーレベルは中で使用しています。


よっぽど悪意のあるマクロが組まれていなければ十分ではないでしょうか。
    • good
    • 0

>セキュリーティレベルを低にしなければ成りませんでした



個人的には、セキュリティレベルを「中」にしています。

こうすると、ファイルを開いたときに、「マクロを含みます。マクロを有効にしますか」と聞いてきて、「Yes,No」が選べます。

セキュリティレベル「中」を、個人的にはお勧めします。

Wendy02さんの回答は、並び替えの規則(例えば、甲、乙、丙…)を登録できるということをおっしゃっています。

 ご質問の内容として、Wendy02さんの回答のようにも解釈できますので、質問の意味を取り間違えたかと、正直、焦っております。 ^^;;)
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/16 19:24

予め、データがあれば、セルの範囲を選択しておいて、メニュー-ツール-オプション-ユーザー設定リストで、インポートするか、リストの項目に直接書き入れるかして、順序を登録します。



並べ替えの時に、データ-並べ替え-オプションで、「並べ替えの順序を指定」で、選択すれば、思ったように並べ替えをしてくれるはずです。


マクロの話が出ていますが、はじめから並べ替えのコードを作るとなると、一旦、ユーザーが設定した並びを配列変数に入れて、それを、クイックソート・アルゴリズムなどで、その内容と比較していくようなものになるような気がします。かなり複雑なコードではないでしょうか?

ちなみに、Version のせいなのかもしれませんが、上記の「並べ替えの順序指定」の記録マクロを取っても、なぜか、うまくいかなかった覚えがあります。

この回答への補足

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

補足日時:2006/07/16 17:06
    • good
    • 0

ツール → マクロ → 新しいマクロの登録 → (マクロ名の登録) → OK 



としたのち、いつもの操作(この場合、並び替え)
を行います。

最後に、記録終了を行うことで、マクロの記述が終了します。

 ただ、「3通りくらいの設定」というようなものを、判断するには、プログラミングの知識が必要になりそうです。
 また、並び替えの範囲が変化するときにも、プログラムに変更を行う必要が発生するでしょう。

3通り → if ~ then ~ や select case などによる場合分け

セル範囲の変更 → end(xlup) や offset のほか、CurrentRegion など ?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/16 17:05

ツール→マクロ→新しいマクロの登録 ですすめます。


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

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

お礼日時:2006/07/16 17:05

マクロ登録で行ってはどうですか。

できると思います。

この回答への補足

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

補足日時:2006/07/16 15:08
    • good
    • 0

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