01-VBA

ExcelVBAのActiveCellプロパティ | 現役エンジニア&プログラミングスクール講師

目標

ExcelVBAのActiveCellプロパティを理解して操作できる

ExcelVBAではプロパティを知るとかなり多くの処理を自動で行わせることができます。加えて、VBAのプログラミング学習では変数や制御構造を学ぶ前にいろいろな設定を経験すると制御構造や様々なデータ構造の学習に入ったときに、オブジェクトやプロパティについて悩まなくてもよくなるので学習効率が良くなります。

ExcelVBAでよく使う「9つのプロパティ」

プロパティ(アルファベット順)
ActiveSheet
ActiveCell ※今回の記事で扱うプロパティです。
Cells
End
Offset (※今回の記事で少し登場します。詳しい説明は別の記事で。)
Range
Sheets
Value
Worksheets

ActiveCelllプロパティの概要と利用方法

ActiveCellプロパティとは

ActiveCellプロパティとはApplicationオブジェクト、Windowオブジェクトのプロパティです。

  • ApplicationオブジェクトはExcelを操作するためのオブジェクト。
  • WindowオブジェクトはExcelを開いたときのブックの枠を操作するオブジェクト。

いずれにしてもExcelを操作するためのオブジェクトとなります。

ActiveCellプロパティを利用すると現在アクティブになっているセルに対して操作を行うことが可能になります。

ActiveCellの利用パターン

特定のひとつのセルを選択しておく。
ActiveCellプロパティの利用では直前にセルをひとつ選択する操作が入ります。

Range(“B3”).Select

②アクティブセルをひとつ下へ移動させる方法。

ActiveCell.Offset(1).Select

③アクティブセルを基準にして連続しているセルを全選択する方法。

ActiveCell.CurrentRegion.Select

「②アクティブセルをひとつ下へ移動させる方法。」

この操作はOffsetプロパティで実現できます。

Offsetは現在位置からの距離の表現を利用してセルの位置を指定するものになります。

Offset(上下方向、左右方向)入力します。

例えば「1つ下、2つ右」に移動したい場合は

Offset(1,2)となります。

今回は左右方向の移動は無しということで省略した記述になっています。

「③アクティブセルを基準にして連続しているセルを全選択する方法。」

Excelはセルの中に「値がある」か「空である」かを識別できるように出来ていています。例えば一覧表のようにセルの中に値が入ったもの同士で接していると、それらのセル群は1つグループとして捉えられます。

一覧表の中のセルをアクティブにして「Ctrl+A(全選択)」した時に表を全選択できるのはこの分類する機能を利用しているためです。

例えば、下のような表があった場合を考えてみます。

ここではVBAでの設定ではなく通常のExcel操作で一覧表の全選択を行ってみます。

一覧表内のいづれかのセルを選択して「Ctrl+A(全選択)」を行います。

まずはC6を選択します。

C6を選択

「Ctrl+A(全選択)」

一覧表の全選択が行えました。

上の画像の一覧表ではD5、D10、E4などの空白のセルを選択して「Ctrl+A(全選択)」としても表の全選択が可能です。表は一番端のセルの前後を確認してその縦横に値があるかを判断しています。(詳しくはEndプロパティで)

そしてこの表の全選択(「Ctrl+A(全選択)」)と同じ動きを行ってくれるのがCurrentRegionプロパティとなります。

サンプルプロシージャ

Option Explicit

Sub practiceAC()

    Worksheets("sheet4").Range("B3").Select
    ActiveCell.Offset(1).Select
    
    If ActiveCell.Value <> "" Then
        ActiveCell.CurrentRegion.Select
    End If
    
End Sub

If や <>については別の機会に記事にしますが、ここでは

「もしアクティブセルの中身が空でなかったら、ActiveCell.CurrentRegion.Select を行う」という意味となります。

実行結果

もしも、B4(今回はOffset(1)でB4をアクティブにしている)が空だった場合

Worksheets(“sheet4”).Range(“B3”).Select
ActiveCell.Offset(1).Select

の二行はプログラムとして動いているが、Ifステートメント内は条件に合わないので全選択の動作はかからなくなっています。

ActiveCellプロパティはアクティブセルに対して色々な設定を行わせてくれます。ActiveSheetやActiveCellはプロシージャ内でシート名やセル番地を利用しないのでプログラムを上手に構成することによってプログラムに修正が起きたとき修正の量を減らすことが期待できます。

今回は以上です。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

印刷機能番外|Excel VBA (Part.2)【「=」「:=」Withステートメント】編 | 現役エンジニア&プログラミングスクール講師

2022年12月6日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

制御構文|Excel VBA (Part.9)【Do Loop】基本編 | 現役エンジニア&プログラミングスクール講師

2022年11月30日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「デバッグ」(Part.1)「自動構文チェック機能」「VBAProjectのコンパイル」「プロシージャ実行時エラー」| 現役エンジニア&プログラミングスクール講師

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

初めてのExcelVBA:「モジュールとプロシージャ」+マクロブックの保存方法 | 現役エンジニア&プログラミングスクール講師

2022年8月6日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ダイアログボックス|Excel VBA (Part.2)【MsgBox】組み込み定数編 | 現役エンジニア&プログラミングスクール講師

2022年12月3日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の イベント編(Part.4)イベントプロシージャ | 現役エンジニア&プログラミングスクール講師

2022年12月31日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site