[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『並べ替え、ふりがなを使わない & 未入力データ』(初心者です)
Excel2000で作ったものを、2007の互換モードで編集したりしています。 OSはXPとVISTAです。
マクロで並べ替えをしているのですが、ふりがなを使わない設定にしているつもりなのに、うまく反映されません。 何が悪いのでしょうか?
rcCnt = Selection.Rows.Count '<-----データの最後を検出 clSelect = "A1:Q" & rcCnt Range(clSelect).Select '<-----並べ替え範囲を選択 Selection.SortSpecial SortMethod:=xlSyllabary, _ Key1:=Range("A"), Order1:=xlAscending, _ Key2:=Range("B"), Order2:=xlAscending, _ Key3:=Range("C"), Order3:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlSortColumns, SortMethod:=xlPinYin '<-----ふりがなを使わないはず
このように設定してみたのですが、何度やっても"ふりがなを使う"のままになってしまいます。
マクロ ふりがな 並べ替え など、いろいろ検索したのですが、解決しませんでした。 どうしたらよいのでしょうか?
未入力のデータについてですが、並べ替えのときに、キー指定しているデータの未入力のデータを先頭に持ってきたいのですが、 昇順にしても降順にしても最後になってしまいます。なぜでしょうか? また、未入力部分を先頭行に持ってくることは可能なのでしょうか? ユーザー設定リストを作ろうとしましたが、未入力は無視されてしまい出来ませんでした。 よろしくご指導お願いします。
> 何度やっても"ふりがなを使う"のままになってしまいます。 Excel2002でのHelpには 使用できる定数は、次に示す XlSortMethod クラスの定数のいずれかです。 xlStroke 各文字の総画数で並べ替えます。 xlPinYin 既定値。中国語の発音表記の順で並べ替えます。 となっています。 xlPinYinが規定値ということはふりがなを使う設定になっていると思いますが・・・
> 昇順にしても降順にしても最後になってしまいます。なぜでしょうか? トラブルシューティング: 並べ替えhttp://office.microsoft.com/ja-jp/excel/HP052040401041.aspx現在参照不可 によると、「空白セルは常にリストの末尾に配置されます。」と書いてありますので 仕様どうりの動作ということになると思います。
私なら並べ替え用のキーを空いた隣の列に準備して、そこを基準に並べ替えると思います。 (Hatch)
> xlPinYinが規定値ということはふりがなを使う設定になっていると思いますが・・・ 参考にしたサイトの表示が間違っていたようです。 早速xlStrokeで書き直してみましたが、反映されませんでした(>_<) ソート後に、エクセルの並べ替えオプションを見ても、"ふりがなを使う"になったままでした。 何か考えられる理由はありますでしょうか?
>トラブルシューティング: 並べ替え >仕様どうりの動作ということになると思います。 Helpを見るのを忘れてました、お手数かけてすみませんでした、 親切に教えていただきありがとうございます。
並べ替えようのキーを準備するのではなく、それ単体で並べ替えたかったので、 未入力にしないように別の値を入力することで対応するようにします。
↑の、ふりがなの件ですが、自分でもいろいろ調べてみます。
もし、思い当たるようなことがございましたら、また教えてください。 ありがとうございました。
>SortMethod:=xlSyllabary 最初の部分では「五十音順」が選ばれてますよ? xlCodePage に変えてみるのはどうでしょう。
あとは、ご自身のエクセルでマクロの記録を録って どの様なコードになるのか確認してみても良いかもしれません。
(HANA)
SortMethodが2つありますね・・・今気付いた(^^ゞ (Hatch)
どうやら上側がExcel95用 下側がExcel97以降用 と言う事で、二つ設定するみたいです。
(HANA)
値「2」で書いたらひとつで良さそうな気がするのですけど・・・ ダメなのでしょうか? Excel95は知らないのですけど(汗) (Hatch)
・・・どうなんですかねぇ 私も95は持っていないので・・・。
でも、私なら「95?使わないでしょ!!」って、 記録結果と差し替えると思いますが。
(HANA)
ああああ!!! ホントだ(>o<") SortMethodが二つあったなんて・・・・・今まで気がつきませんでした・・・・ サイトのコードをコピー貼り付けして安心してたのがいけなかったですね。
ありがとうございます。 一個削除したら、思うように動きました^^ Hatchさん、HANAさん、ホントにありがとうございました。 解決です!!
また、わからないことがあったら相談に来ますので、よろしくお願いしますm(_ _)m
そう言えば >Orientation:=xlSortColumns これって何で列方向なんですかね?
(HANA)
>Orientation:=xlSortColumns >これって何で列方向なんですかね?
そうなんです。 あるサンプルコードをそのまま使ったのですが、行方向にするとうまくいかないんです。 列方向なのに、行の並べ替えが正常にできる。行方向を指定するとデバッグに移行してしまうんです。 コメントまでは覚えていませんが、よくわからなくてそのままにしてます(>o<")
ううむ・・・・参考にしているサイトに書かれていることが、 よく解らないのですが。
xlSortRows (既定値) で行単位の並べ替え、 xlSortColumns で列単位の並べ替えを行います。
と書いてあるのですが、実際にそこに参考に書かれているコードには xlTopToBottom と入力されているのはなぜでしょう??
ちなみに、Orientation:=xlSortRowsにすると、エラーになりますが Orientation:=xlTopToBottomにしたら、うまく動きました。
エクセルのヘルプは、私にはさっぱり解らなくて、 いつもいろいろなサイトを参考にしています。
まずは一つ。
前の書き込み(少なくとも ご自身の書き込み以外の書き込み) を勝手に編集しないでください。 それは貴方の言葉ではないのですから。 残しておくことで、次に同じ問題に当たった人の参考にも成ります。
それから、 >実際にそこに参考に書かれているコードには >xlTopToBottom >と入力されているのはなぜでしょう?? ここに制作者は居ませんので、正確な所は分かりませんが 並べ替えのヘルプには間違いが含まれている様ですので 参考にして居られるサイトの制作者さんが そのヘルプを元に作成したあと、一部分のみ手直しをした と言った所かもしれません。 http://www.keep-on.com/excelyou/2000lng4/200007/00070351.txt
(HANA)
すみません、書かれていた内容の編集になってしまっていたのですね・・・>< 返信が返事なのだと思っていました。 ありがとうございました。
「列」とか「行」とかの概念は、どちらの方向にも解釈できるので左右よりアヤフヤな気がします。 以下実験結果です。
xlSortColumns は直感的に判断する「列単位の方向」ではないようです。
例えば並べ替えのキーを「A列」に設定すると、A列のデータを上から順番に行単位で並べてくれますよね。 つまり、上から下に並べるときは、A「列」が基準なので xlSortColumns と云うことになるらしいです。
xlSortColumns と xlTopToBottom を「実際の数値」で見たら、同じ「1」でした。(当方XL2007)
それでヘルプを見ると、下の様になっているのですが、番号だけ合っていて、 説明は完全に入れ違っているのではないかと思います。(誤訳しても無理ない気も、、)
番号 説明 > xlSortColumns 1 列単位で並べ替えます。 > xlSortRows 2 行単位で並べ替えます。これは既定値です。
(半平太)
なるほど、検証ありがとうございました。 xlSortColumns で、問題なく動いていたのはそのせいだったのですね。
おかげで列単位なのに行単位に並べ替えられるのは何故?と云う疑問が解決しました。 ありがとうございました。
皆さんのおかげで、現在抱えている疑問が、すべて解決しました。 この質問ボードってすごいですね。 ありがとうございました!!
もちろん、リンク先にもかいてありました。 変な意味で受け取られると困るのですが><
私が言いたかったのは、ちょっとした質問に対してもいろんな人が、 リンク先を教えてくれたり、わかりやすい説明をつけて教えてくれたりするので、 ホントにうれしくて、単に感謝の意を伝えたいだけだったのですが・・(T_T)
変な意味に受け取られてしまったのならすみませんでした。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.