「Excel」VBAでセルを簡単に操作する仕組み

( ノ゚Д゚)こんばんは、こんにちは、おはようございます。おやすみなさい! とっちーです。

本日は、VBAのオブジェクトとコレクションのご紹介です、楽しくお話をしたい!と思います。

 

 

オブジェクト「object」って!何?

 

英語の辞書で調べるとobjectは「物体・対象・物・趣旨・目当て・対象対・目的操作する対象もしくは目的の物」をさします。

IT用語で言うオブジェクトは、目的、対象と捉えています。

 

ちなみにオブジェクトをソフトウエア開発で簡単に説明すると操作する側(プログラム)と操作される側(データ)をまとめて1つのオブジェクトということも覚えておきましょう。

 

Excelを操作する上で必要なオブジェクトは、何があると思いますか?

 

答えはセルにです。

 

上図がイメージになります。

 

「Range」セル(オブジェクト)の集まりは「Sheet」シート(オブジェクト)と呼ばれるものになります。

 

さらに同じプログラムの「Worksheetシート(オブジェクト)の集まりである「Worksheets」複数のシートは、『コレクション』オブジェクトになります。

 

また「Worksheet」シートや「Worksheets」複数シートをまとめた物を「Workbook」ブック(オブジェクト)と定義しています。

 

ちなみに「Workbook」ブックも同じプログラムでブックを複数取り扱う場合は「Workbooks」複数のブックは『コレクション』オブジェクトになります。

 

最上位に位置する操作する側の「Application」アプリケーションもオブジェクトとして扱います。上図の様なものを階層構造と呼びます。

 

ブック名:売上.xlsm

シート名:岡崎支店

セル範囲:B6からF6の位置にあるデータを操作する場合。

 

Workbooks(“売上.xlsm”).Worksheets(“岡崎支店”).Range(“B6:F6”)とコードになります。

 

「Application」を使用する場合は、階層構造が「Application」より上位の場合に使用します。

 

なお、Range(“B6:F6”)のコードは、上位階層を省略した記述になりますが、どのような場合に操作できるでしょうか?

 

答え:Range(“B6:F6”)に該当するWorksheet内(アクティブ状態)だけで操作する場合。

コレクション「Collection」って何?

 

オブジェクトの欄でも説明をさせていただきました。同じプログラムで利用する複数のオブジェクトの集まりを「コレクション」と捉えています。

 

英語の辞書で調べると「Collection」は「収集・収蔵・回収・補正・修正」をさします。

 

IT用語で言うオブジェクトは、あつまりと捉えています。

 

Rangeの複数集まったものはWorkSheetです。RangeはExcelで取り扱うオブジェクトの最小です。

 

Worksheetが複数集まったものは「Worksheets」そして「Worksheets」が集まったものが「Workbook」になり、「Workbook」複数集まったものが「Workbooks」と

 

先ほどのオブジェクトのところでお伝えさせていただきました。「Worksheets」や「Workbooks」のことをコレクション扱いになります。

 

Workbooks」は、それ以下の階層である「Workbook」を操作するときや最階層のRangeまでを操作するときに活用します。

 

また「Worksheets」は、それ以下の階層である「Worksheet」を操作するときや最階層のRangeまでを操作するときに活用します。

 

複数のブック(ファイル)から選択する場合:

 

ブックの種類の売上.xlsm・仕入.xlms・在庫.xlms中かから在庫.xlmsを選択する場合のコード

 

Workbooks(”在庫.xlms”)

 

複数のシートから選択する場合:

 

シートの種類の岡崎支店・浜松支店・名古屋支店の中かから岡崎支店を選択する場合のコード

 

Worksheets(”岡崎支店”)

 

になります。

 

ちなみにブックコレクションに含まれるシートをメンバと捉えています。ぜひ覚えておいてください。

Rangeにコレクションはないの?

 

 

はい、Excelで取り扱うことのできるの階層構造の最下層がセルつまりオブジェクトであるRangeにはコレクションを宛がう事はいたしません。

 

Rangeはオブジェクトであり、Sheetのコレクションという扱いになります。

 

Rangeは、Excelを動かす重要性を担っているのである意味ではコレクションなのかも知れませんが。

 

 

 

まとめ

 

 

今回は、VBAのオブジェクトとコレクションについてお話してみました。

オブジェクトのうちRangeの使い方をマスターすると、大変便利です。

ただし、VBAを作成する際は、こまめな保存と確認をしてからSub/ユーザーホームの実行をするようにいたしましょう。

 

 

今日も安心してプロシージャを作成できるように

そんな、お手伝いが出来ることを願っています。

 

 

楽しくお仕事できたらなって。そう思っていただけたら幸せです。

 

ま、何でも楽しくしていただけたら、うれしいです。ものすごく。