• ベストアンサー

マクロ G列のみ2行目から最後の行まで右揃えにする

マクロを作成しているのですが、 「G列のみ、2行目から最後の行まで右揃えにする」VBAを教えていただきたいです。

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

  • ベストアンサー
  • 3620313
  • ベストアンサー率33% (4/12)
回答No.1

Range("G2", Cells(Rows.Count, 7).End(xlUp)).Select With Selection .HorizontalAlignment = xlRight End With ですね

tanpopopoketto5
質問者

お礼

ありがとうございます! できました!

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 もし、「最後の行」が「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

tanpopopoketto5
質問者

お礼

ありがとうございました!

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

こういう単項目のVBAの質問は、 (1)マクロの記録を思い出せ。 相当VBAに上達しても、マクロの記録を取って、コードを参考にするケースはなくならないと思うよ。 (2)2番目に言いたいこと >最後の行まで こういうのもWEBで照会すればすぐわかるよ。 Googleで 「vba 最後の行まで」で照会する。 http://excel-ubara.com/excelvba4/EXCEL257.html など多数。

tanpopopoketto5
質問者

お礼

ありがとうございました!

回答No.2

とりあえず、 「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     

tanpopopoketto5
質問者

お礼

ありがとうございました!

関連するQ&A