三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


Excel VBA UsedRange で使用範囲を取得

Excel VBA UsedRange で使用範囲を取得して Rows.Count で行数 最終行は Cells(objRANGE.Rows.Count, 1).Row なんて感じで遠回りで取得してみた

Dim objRANGE As Range
Set objRANGE = ActiveSheet.UsedRange 'セルの使用範囲を取得

VBA Excel 表 範囲 で検索すると
下記のわかりやすいページがヒットします

セル範囲の取得 セル範囲の取得
http://officetanaka.net/excel/vba/cell/cell10.htm
より

>ワークシートで使用されているセル範囲
>ワークシート.UsedRange

↑が取れるので、

1.アクティブシートの使用範囲を取得してみた
https://www.youtube.com/watch?v=w1xG7BSdxDQ

単純に取得して、アドレスを表示しただけでした

Sub UsedRange_test001()

    Dim objRANGE As Range
    
    Set objRANGE = ActiveSheet.UsedRange  'セルの使用範囲を取得

    '単純に↑でSET取得したRANGEに対して、Aaddressを表示してみた
    Debug.Print "ActiveSheet.UsedRange 使用範囲は:" & objRANGE.Address

End Sub

2.取得した範囲の行数が知りたかったので、Rows.Count で行数を取得してみた
https://youtu.be/w1xG7BSdxDQ?t=166

Sub UsedRange_test002()

    Dim objRANGE As Range
    
    Set objRANGE = ActiveSheet.UsedRange  'セルの使用範囲を取得

    '単純に↑でSET取得したRANGEに対して、Aaddressを表示してみた
    Debug.Print "ActiveSheet.UsedRange 使用範囲は:" & objRANGE.Address

    '単純に行数が知りたかったので、Rows.Count
    Debug.Print "行数は:" & objRANGE.Rows.Count

End Sub 

3.最終行が知りたかったので Cells(行数,1).Rowで取得してみた
https://youtu.be/w1xG7BSdxDQ?t=218

まぁ.Addressで$C$3:$F$6←がわかるので、ここの6からでもいいんだけど、

Sub UsedRange_test003()

    Dim objRANGE As Range  '範囲を入れるRange型
    Dim y As Integer       '行
    
    Set objRANGE = ActiveSheet.UsedRange  'セルの使用範囲を取得

    '単純に↑でSET取得したRANGEに対して、Aaddressを表示してみた
    Debug.Print "ActiveSheet.UsedRange 使用範囲は:" & objRANGE.Address

    '単純に行数が知りたかったので、Rows.Count
    y = objRANGE.Rows.Count
    Debug.Print "行数は:" & y
    
    'Cells(行数,1).Rowで実際の最終行を取得してみた
    Debug.Print "実際の最終行は:" & objRANGE.Cells(y, 1).Row

End Sub

4.終わりの挨拶
https://youtu.be/w1xG7BSdxDQ?t=291

ActiveSheet.UsedRange
で$C$3:$F$6がわかります

三流な私は、セルの使用範囲はA1から始まっていると思い込んでいたので、
最終行は
ActiveSheet.UsedRange.Rows.Count
でいいのかなぁ、と思ってたら、
範囲が、$C$3:$F$6だと、3,4,5,6で4行の4が返ります

ここから、6(最終行)を知りたかったので
y = objRANGE.Rows.Count '範囲の行数を取得
objRANGE.Cells(y, 1).Row '実際の最終行
なんて、回り道をして取得してみました。

まぁ、こんな方法もあるってことで、
.UsedRange でデータ使用範囲のセルがまとめて取れるので、
何かの時に使ってみてください。

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)