まじか!最終列!!_VBA

行の最終行は、次のように書きますね。

RowEnd = Range("A" & Rows.Count).End(xlup).Row

つまり、空白セルがあったらいけないので、

「一旦一番下の14万行目目まで行ってから、上に戻って来る」

と言うやり方ですね。

 

さて、同様に、タイトル行で、一番右端の列(最終列)を知りたい時があります。

そこで、行の時と同じ考え方の、「行って来い」でいけるだろう、

とやってみました。

ColumnEnd = Range("A1" ).End(xlToLeft).Column

 

ところが!

結果は、「1」

となりました。

なんか、セルを突き抜けて判定しちゃうみたいでした(*0*)

 

そして、試行錯誤してみて、できました!!

ColumnEnd = Range("A1" ).offfset(0,Columns.Count-1).End(xlToLeft).Column

 

そして、この勢いで、Function化しちゃいます♪

Function(ByVal wsNm as string)as Long

  Dim ws as Worksheet: Set ws = Worksheets(wsNm):ws.Activate

  ColumnEnd = ws.Range("A1").offset(,Columns.Count-1).End(xlToLeft).Column

End Function

ColumnEnd("シ-ト名") で、

1行目のタイトル行の右端の列番号が分かります☆