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

aa,bb,AA,BB という並びを、AA,BB,aa,bb のように大文字アルファベットが先にくるよう
ソートしたいのですが、例えば以下のソート処理ではaa,AA,bb,BBとなってしまいます。
Sortメソッドではできないのでしょうか?

ActiveSheet.Range("A1").Sort Key1:=Range("A1"), order1:=xlAscending, MatchCase:=True

ご教授よろしくお願いします。

A 回答 (2件)

こんばんは!


無理矢理って感じでやってみました。
データはA列の2行目以降にあるとします。
とりあえず最初の2文字だけで並び替えしています。


Sub test()
Columns("B:E").Insert
Dim i, j As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To 2
Cells(i, j + 1) = Mid(Cells(i, 1), j, 1)
Next j
Next i
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To 3
If Cells(i, j) <> "" Then
Cells(i, j + 2).FormulaR1C1 = "=Code(RC[-2])"
End If
Next j
Next i
i = Cells(Rows.Count, 1).End(xlUp).Row
j = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(2, 1), Cells(i, j)).Sort _
, key1:=Cells(1, 4), order1:=xlAscending _
, key2:=Cells(1, 5), order2:=xlAscending
Columns("B:E").Delete
End Sub

こんな感じではどうでしょうか?m(__)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
参考にさせていただきます。

お礼日時:2011/05/07 00:47

CODE関数というものがあります。


文字列の1文字目のアスキーコードを返す変数です。

CODE("abc") なら 97、CODE("ABC") なら 65、となります。

作業列でCODE関数を使い、それを基準にソートをかければ、文字コード順になります。

それをVBAに組み込めば、やりたいことができると思います。
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます。
処理速度からSortメソッドでできればと思ったのですが、無理っぽいですね。。。

お礼日時:2011/05/06 20:59

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