Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4698 / 13644 ツリー ←次へ | 前へ→

【55111】文字列のデータをソートしたいのですが、、 しげ 08/4/15(火) 15:45 質問[未読]
【55113】Re:文字列のデータをソートしたいのですが... キュービック 08/4/15(火) 15:55 発言[未読]
【55114】Re:文字列のデータをソートしたいのですが... しげ 08/4/15(火) 16:06 発言[未読]
【55115】Re:文字列のデータをソートしたいのですが... ひげくま 08/4/15(火) 16:37 回答[未読]
【55116】Re:文字列のデータをソートしたいのですが... しげ 08/4/15(火) 16:55 お礼[未読]

【55111】文字列のデータをソートしたいのですが、...
質問  しげ  - 08/4/15(火) 15:45 -

引用なし
パスワード
   いつもお世話になっております。

CSVファイルを取り込み、9列あるデータを、
H、I、A、B、C、D、E列の順番でソートしたところ、

1148
1292
1544
1700
2096
2348
248
2492
2600
2744
2996
3392
3548
3800
3944
4196
4448
4592
4844
500
644
896
92

のように一桁目でソートされてしまい、実際の数字とは関係なくソートされてしまいました。
調べたところ、文字列で扱われているため、桁数が違うとこのようになることはわかったのですが、
実際の解決法まではわかりませんでした。。

方法を教えていただけると助かります。

いらないかもしれませんが、以下ソースです。

  '---ワークシートへ取り込んだデータを以下の項目でソートする(すべて昇順)---
  With Worksheets("newSheet")
    .Activate
    With .Range(Cells(1, 1), Cells(5000, 9))
      '優先度7の列を昇順ソート
      .Sort Key1:=Worksheets("newSheet").Cells(1, 5), order1:=xlAscending
      '優先度4、5、6を昇順ソート
      .Sort Key1:=Worksheets("newSheet").Cells(1, 2), order1:=xlAscending, _
         Key2:=Worksheets("newSheet").Cells(1, 3), order2:=xlAscending, _
         Key3:=Worksheets("newSheet").Cells(1, 4), order3:=xlAscending
      '優先度1、2、3を昇順ソート
      .Sort Key1:=Worksheets("newSheet").Cells(1, 8), order1:=xlAscending, _
         Key2:=Worksheets("newSheet").Cells(1, 9), order2:=xlAscending, _
         Key3:=Worksheets("newSheet").Cells(1, 1), order3:=xlAscending
    End With
  End With

【55113】Re:文字列のデータをソートしたいのです...
発言  キュービック  - 08/4/15(火) 15:55 -

引用なし
パスワード
   何をしたいのかいまいち分かりませんが、その文字列になっている列を数値にすればいいのでは?

【55114】Re:文字列のデータをソートしたいのです...
発言  しげ  - 08/4/15(火) 16:06 -

引用なし
パスワード
   >キュービック さん
ありがとうございます。

ソートをするときに型変換ってどうやるのですか?


>何をしたいのかいまいち分かりませんが

申し訳ありません。
例のように、一番左の数字でソートされるのではなく、
実際の数字の値で昇順ソートしたいということです。

【55115】Re:文字列のデータをソートしたいのです...
回答  ひげくま  - 08/4/15(火) 16:37 -

引用なし
パスワード
   変換したい範囲を選択した状態で、以下のマクロを実行してみてください。

  With Selection
    .NumberFormatLocal = "G/標準"
    .Value = .Value
  End With

【55116】Re:文字列のデータをソートしたいのです...
お礼  しげ  - 08/4/15(火) 16:55 -

引用なし
パスワード
   >ひげくまさん
ありがとうございました。
解決致しました。ほんとうにありがとうございます。

4698 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free