- ベストアンサー
マクロ G列のみ2行目から最後の行まで右揃えにする
マクロを作成しているのですが、 「G列のみ、2行目から最後の行まで右揃えにする」VBAを教えていただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Range("G2", Cells(Rows.Count, 7).End(xlUp)).Select With Selection .HorizontalAlignment = xlRight End With ですね
その他の回答 (3)
- kagakusuki
- ベストアンサー率51% (2610/5101)
もし、「最後の行」が「2行目」未満だった場合には「右揃えにしない」ようにしなければなりませんから、そのためには以下のようなマクロとする必要があります。 Sub Macro1() Const myColumn As String = "G" '処理対象となる列の列番号 Const FirstRow As Long = 2 '処理対象となるセル範囲の中の最初のセルの行番号 Dim LastRow As Long LastRow = Range(myColumn & Rows.Count).End(xlUp).Row If LastRow >= FirstRow Then _ Range(myColumn & FirstRow & ":" & myColumn & LastRow) _ .HorizontalAlignment = xlRight End Sub 或は Sub Macro2() Const myColumn As String = "G" '処理対象となる列の列番号 Const FirstRow As Long = 2 '処理対象となるセル範囲の中の最初のセルの行番号 With Range(Range(myColumn & FirstRow), Range(myColumn & Rows.Count).End(xlUp)) If .Row >= FirstRow Then .HorizontalAlignment = xlRight End With End Sub
お礼
ありがとうございました!
- imogasi
- ベストアンサー率27% (4737/17069)
こういう単項目のVBAの質問は、 (1)マクロの記録を思い出せ。 相当VBAに上達しても、マクロの記録を取って、コードを参考にするケースはなくならないと思うよ。 (2)2番目に言いたいこと >最後の行まで こういうのもWEBで照会すればすぐわかるよ。 Googleで 「vba 最後の行まで」で照会する。 http://excel-ubara.com/excelvba4/EXCEL257.html など多数。
お礼
ありがとうございました!
- tsubu-yuki
- ベストアンサー率46% (179/386)
とりあえず、 「G2:G40の範囲を右詰め」 を記録すると、 Range("G2:G40").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With こんな感じで録れるだろうと思われます。 G列のデータ範囲の最終行は、 データが隙間なく連続しているなら Range("G2", Range("G2").End(xlDown).Address) で取得できます。 なので、先ほどの記録にコレを組み込んで、 要らないところを削除して、完了です。 Range("G2", Range("G2").End(xlDown).Address).HorizontalAlignment = xlRight
お礼
ありがとうございました!
お礼
ありがとうございます! できました!