準・究極の選択

vbaで、A列に、ある列を基準にある条件で、Cells(i, 1).Value = "[ドル]" 、Cells(i, 1).Value = "[円]"、Cells(i, 1).Value = "[ユーロ]"のように、文字を10列挿入しまた。

このときに、
例えば、vbaでA列に、下記のような10行を挿入した時に、

[ドル]
[ドル]
[円]
[ドル]
[円]
[ユーロ]
[円]
[円]
[ユーロ]
[ドル]

あらたに、10行の下に、vbaからの挿入ではなく、手打ちで、セルに
[ドル]
[円]
[ユーロ]

と3行追加します。

このあとにエクセルの[データ]のフィルターでこの列を昇順にソートします。
すると、

[ドル]
[ドル]
[ドル]
[ドル]
[ユーロ]
[ユーロ]
[円]
[円]
[円]
[円]
[ドル]
[ユーロ]
[円]

となり、後から手打ちで追加したものと、vbaで挿入したものが、ソートしても別々のグループになってしまいます。なぜなのでしょうか?

vbaで追加したものと、手打ちで追加した文字を下記の関数により文字コードを比較しましたが、同じでした。ますます原因が分からなくなりました。

Sub Unicode取得()
MsgBox Hex(AscW(ActiveCell.Value))
End Sub

A 回答 (1件)

ふりがなが付く/付かないの違いとか。


手打ちだと、ふりがなが付きます。
デフォルトだと、並べ替えにはふりがなが積極的に使われていたハズ。

隣のセルに、
=PHONETIC(A1)
とかでふりがなを抜き出して比較してみるとか。
    • good
    • 1
この回答へのお礼

ありがとうござまいす。おっしゃるとおりふりがなが原因でした。PHONETIC()で比較してみると、異なるふりがなを確認することができました。[データ]⇒[並び替え]⇒[オプション]⇒[ふりがなをつかわない]指定での昇順ソートでうまくいきました。

お礼日時:2018/01/11 15:42

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