Excel VBA質問箱 IV

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

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


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

【39565】昇順に並べ替え 06/6/26(月) 21:29 質問[未読]
【39566】Re:昇順に並べ替え kaoru 06/6/26(月) 21:54 発言[未読]
【39567】Re:昇順に並べ替え 06/6/26(月) 21:58 質問[未読]
【39569】Re:昇順に並べ替え かみちゃん 06/6/26(月) 22:03 発言[未読]
【39570】Re:昇順に並べ替え かみちゃん 06/6/26(月) 22:05 発言[未読]
【39571】Re:昇順に並べ替え 06/6/26(月) 22:14 お礼[未読]

【39565】昇順に並べ替え
質問    - 06/6/26(月) 21:29 -

引用なし
パスワード
   A1       B1
14252
1345
123452
12345
34532
123453
1235

上の様な表を作ります。B列にLEFT関数を使って4桁までの数字を取り出します。
そのB列を昇順に並べ替えたいのです。
マクロの記録を使ってやってみたところ
  Range("B1").Select
  ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)"
  Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault
で4桁の数字を取り出し
  Range("B1").Select
  Range("B1:B7").Sort Key1:=Range("B1")
で昇順に並べ替えはできるのですが
このコードを1つにまとめるにはどーすればいいのでしょうか?
よろしくお願いします。

【39566】Re:昇順に並べ替え
発言  kaoru  - 06/6/26(月) 21:54 -

引用なし
パスワード
   ▼海 さん:
kaoruです。

 Sub sort_Data()

  Range("B1").Select
  ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)"
  Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault
  Range("B1").Select
  Range("B1:B7").Sort Key1:=Range("B1")

 End Sub
  となるんですかね?間違ってたらすみません。

>A1       B1
>14252
>1345
>123452
>12345
>34532
>123453
>1235
>
>上の様な表を作ります。B列にLEFT関数を使って4桁までの数字を取り出します。
>そのB列を昇順に並べ替えたいのです。
>マクロの記録を使ってやってみたところ
>  Range("B1").Select
>  ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)"
>  Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault
>で4桁の数字を取り出し
>  Range("B1").Select
>  Range("B1:B7").Sort Key1:=Range("B1")
>で昇順に並べ替えはできるのですが
>このコードを1つにまとめるにはどーすればいいのでしょうか?
>よろしくお願いします。

【39567】Re:昇順に並べ替え
質問    - 06/6/26(月) 21:58 -

引用なし
パスワード
   ▼kaoru さん:
こんばんわ。

> Sub sort_Data()
>
>  Range("B1").Select
>  ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)"
>  Selection.AutoFill Destination:=Range("B1:B7"), Type:=xlFillDefault
>  Range("B1").Select
>  Range("B1:B7").Sort Key1:=Range("B1")
>
> End Sub
>  となるんですかね?間違ってたらすみません。

別々に実行するとそれぞれの作業が行われるのですが
↑のようにすると4桁の数字が取り出せるだけで並べ替えができません。

【39569】Re:昇順に並べ替え
発言  かみちゃん E-MAIL  - 06/6/26(月) 22:03 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>4桁の数字が取り出せるだけで並べ替えができません。

計算式は残す必要ありますか?
残しておくから、並べ替えしてもしていないように見えるのだと思います。
また、元のA列は並べ替えなくていいのですよね?
計算式残しておく必要がなく、B列のみ並べ替えるならば、以下のような感じにします。
Sub sort_Data2()
 With Range("B1:B7")
  .FormulaR1C1 = "=LEFT(RC[-1],4)"
  .Value = .Value
  .Sort Key1:=Range("B1")
 End With
End Sub

【39570】Re:昇順に並べ替え
発言  かみちゃん  - 06/6/26(月) 22:05 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 4桁の数字が取り出せるだけで並べ替えができません。

計算式残しておかないといけない、A列も一緒に並べ替えるならば、以下のような感じにします。

Sub sort_Data3()
 With Range("B1:B7")
  .FormulaR1C1 = "=LEFT(RC[-1],4)"
  .Offset(, -1).Resize(, 2).Sort Key1:=Range("B1")
 End With
End Sub

【39571】Re:昇順に並べ替え
お礼    - 06/6/26(月) 22:14 -

引用なし
パスワード
   ▼かみちゃん さん:

数式を残しておく必要はないので
やりたいことが完璧にできました。
本当にありがとうございました。

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