当サイトは各記事にプロモーションが含まれています

MYPROTEIN
おすすめの味

GronG
おすすめの味

ULTORA
おすすめの味

ON
おすすめの味

Pick up!

筋トレ・サプリ

 
マイプロテインってどんなブランド?【おすすめな理由を徹底解説】

マイプロテインってどんなブランド?【おすすめな理由を徹底解説】

2021/04/16
 
【GronG/グロング】スタンダードとベーシックの違いは?【おすすめが決定】

【GronG/グロング】スタンダードとベーシックの違いは?【おすすめが決定】

2022/06/15
 
【1番おすすめのホエイプロテインが決定】勝手に点数評価して比較しました

【1番おすすめのホエイプロテインが決定】勝手に点数評価して比較しました

2021/05/15

働き方

 
社会人の「つまらない」を抜け出す方法を解説【行動の意味を考える】

社会人の「つまらない」を抜け出す方法を解説【行動の意味を考える】

2022/02/18
 
【徹底解剖】テックアカデミーのフロントエンドコースの情報まとめ

【徹底解剖】テックアカデミーのフロントエンドコースの情報まとめ

2022/10/19
 
【初心者必見】VBAで業務効率化を実現するまでのロードマップ【6つの手順で実現】

VBAで業務効率化を実現するまでのロードマップ【6つの手順で実現】

2021/04/13

エンタメ

 
【徹底解剖】アローバースを理解するための完全ガイド【見どころをまとめました】

アローバースを理解するための完全ガイド【見どころをまとめました】

2021/04/26
 
【トム・ハーディ】おすすめ映画5作品

【トム・ハーディ】おすすめ映画5作品

2019/03/09
 
【どんな役でもこなす俳優マーク・ウォールバーグ】おすすめ映画17選

【どんな役でもこなす俳優マーク・ウォールバーグ】おすすめ映画17選

2020/03/22

コラム

 
【入院前に必ず読んでください】病室での生活を快適にする便利グッズを紹介【体験談あり】

病室での生活を快適にする便利グッズを紹介【体験談あり】

2021/05/24
 
入院時におすすめのWi-Fiレンタルサービスを紹介

入院時におすすめのWi-Fiレンタルサービスを紹介

2021/07/20
 
【健康に良いおすすめの入浴剤は?】入浴剤を悩みに沿ったおすすめ10選

【健康に良いおすすめの入浴剤は?】入浴剤を悩みに沿ったおすすめ10選

2020/03/16

新着&プロフィール

【Excelマクロ応用術】VBAで行数と列数が不明な場合の範囲選択

【Excelマクロ応用術】VBAで行数と列数が不明な場合の範囲選択

この記事では、行数や列数がわからない時の表の範囲指定の方法について紹介しています。

 

これからVBAを使い始めるという方は以下の記事をご覧ください。

 

さっそくですが、以下のようなシートがあるとします。

表

 

この表のセルの範囲を特定する方法は、以下のコードです。

    ' 最終行の行数をmaxrowに代入
    maxrow = Range("A1").End(xlDown).Row

    ' 最終列の列数をmaxcolumnに代入
    maxcolumn = Range("A1").End(xlToRight).Column
    
    '最終行、最終列を利用して、範囲指定
    Range(Cells(1, 1), Cells(maxrow, maxcolumn)).Select

 

手順は以下の通りです。

①最終行の行番号を調べる

②最終列の列番号を調べる

③起点から取得した行・列番号で範囲指定

 

①最終行の行番号を調べる

    ' 最終行の行数をmaxrowに代入
    maxrow = Range("A1").End(xlDown).Row

まず初めに、最終行の行番号を取得します。maxrowという変数に行番号を代入します。

 

ここで「.End(xlDown)」というプログラムを使っていますが、これは「Ctrl + ↓」と同じです。

 

そのため、Range("A1")を起点に文字が入力されているセルの一番下まで移動してくれます。

 

そして、「.Row」で行番号を取得することができます。

 

②最終列の列番号を調べる

    ' 最終列の列数をmaxcolumnに代入
    maxcolumn = Range("A1").End(xlToRight).Column

次に、最終列の列番号を取得します。maxcolumnという変数に列番号を代入します。

 

先ほどの列番号取得の場合と似たような「.End(xlToRight)」というプログラムを使っていますが、これは「Ctrl + →」と同じです。

 

Range("A1")を起点に文字が入力されているセルの一番右まで移動してくれます。

 

そして、「.Column」で列番号を取得することができます。

 

補足

先ほど、登場した「.End(xlDown)」や「.End(xlToRight)」は下方向と右方向でした。他に上方向や左方向への移動もあります。詳細は以下の通り。

.End(xlUp) Ctrl + ↑
.End(xlDown) Ctrl + ↓
.End(xlToRight) Ctrl + →
.End(xlToLeft) Ctrl + ←

 

③起点から取得した行・列番号で範囲指定

    '最終行、最終列を利用して、範囲指定
    Range(Cells(1, 1), Cells(maxrow, maxcolumn)).Select

 最後に、取得した行・列番号を利用して範囲を指定します。Range()を使って、セルを指定して、Selectで範囲指定します。

 

Range()の中身を解説すると、Cells(1, 1)がセルA1を示しています。また、今回の例だと、maxrow=7、maxcolumn=5 なので、Cells(7, 5)となりセルE7を示しています。

 

これで、セルA1からセルE7の範囲を指定することができます。最後にマクロ実行後の表を示すと以下のようになります。

マクロ実行後

 

以上、列数と行数が不明な場合の範囲選択でした。

 

以下、VBAを学ぶのにおすすめの書籍となっています。ぜひ参考にしてください。