• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VBA】範囲選択し降順で並び替え)

【VBA】範囲選択し降順で並び替え

このQ&Aのポイント
  • VBAを使用して、指定した範囲を降順に並び替えたいです。
  • VBAを使って範囲を選択し、C列を基準に降順で並び替えたいです。
  • VBAを利用して、A列からF列の範囲を選択し、C列を降順に並び替えたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Range("A & FastRow:F" & LastRow).Sort Columns("C"), xlDescending, Header:=xlNo を Range("A" & FastRow & ":F" & LastRow).Sort Columns("C"), xlDescending, Header:=xlNo に変えてみて下さい。

0611birth
質問者

お礼

有難うございました。 上手く動きました。 コピペ活用させて頂き、最終的には理解を目指します。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

よくある初心者的ミスだ。すこしVBAをやってれば、「あ!またやったか」、と気づくものだ。 セル範囲指定の、Rangeの使い方は (1)Range(セル範囲を示す、(左上隅セルと右下隅セルの)文字列). (2)Range(cells(**),Cells(**)). (3)その他 で(1)の場合、( )内は文字列でセル範囲を指定する約束。 具体的には、左上(右下)隅セルの、列記号文字列+行番号の指定で、行番号部分は、「&」で結合することが多いが、そのときは数値の入った変数名でもよい。 2つの列記号と1つの「:」の部分は文字列で指定する。(カンマで区切って、範囲を並べる場合もあるが略) 本件は、この文字列部分と数値部分の結合の書き方に混乱を起こしている。 ーーー Sub 使用頻度で並べ替え() Dim FastRow As Integer Dim LastRow As Integer FastRow = Cells(1, 1).End(xlDown).Row MsgBox FastRow LastRow = Range("C" & Rows.Count).End(xlUp).Row MsgBox LastRow Range("A" & FastRow & ":F" & LastRow).Sort Columns("C"), xlDescending, Header:=xlNo End Sub >FastRow = Cells(1, 1).End(xlDown).Row の使う場合の不安定さを感じる。見出し行がある場合など。 本来項目見出しはあるべきだろうから。 自分で目で見て、今回の実情で、データの最初行を指定したほうが良いのでは?

0611birth
質問者

お礼

いつも有難うございます。 現状、過去に教えて頂き作ったマクロのコードを活用させて頂く事で今回のマクロを作っていますが、違うケースには対応出来る力が有りません。 大変勉強になります。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.2

Range("A & FastRow:F" & LastRow) ↓ Range("A" & FastRow & ":F" & LastRow).Select ' で試してみてください。

0611birth
質問者

お礼

有難うございました。 久しぶりにVBAの勉強をしていますが、「"」の使い方はまだ理解出来ていません。

  • kon555
  • ベストアンサー率51% (1848/3569)
回答No.1

あんまりちゃんとは見てないので、目に着いたところだけ Range("A & FastRow:F" & LastRow) ↓ Range("A " & FastRow &":F" & LastRow) でどうでしょうか。

0611birth
質問者

お礼

有難うございました。 "A "の半角スペースを削除したら動きました。 お手数をお掛けしました。

関連するQ&A