EXCEL VBA オブジェクト変数の利用方法(Setステートメント WorkSheet WorkBook Range)

 

EXCEL VBA オブジェクト変数の利用方法(Setステートメント)

 

 

 ●はじめに
EXCELのセル範囲やシート・ブック・オブジェクトなどを変数に格納する事ができます。その時に使用するのが、Setステートメントです。Setステートメントを利用する事により、ある範囲のセルをセットする事で、何度もセル範囲を指定することなく使用する事ができます。シートも事前にSetステートメントを利用する事で、シート間のデータ移行などのプログラム記述が容易になります。

 

 

 ●書式の説明 【Setステートメント】

【オブジェクト変数の利用方法】

Dim オブジェクト変数名 As オブジェクト型名
Set オブジェクト変数名 = オブジェクト

Setステートメントを利用する際は、まずDimオブジェクトで変数を宣言する必要があります。その後、Setオブジェクトをセットします。

 

 

種類オブジェクト名使用例説明
アプリケーションApplicationDim MyApp As Application
Set MyApp = Excel.Application
EXCELアプリケーションをセットする。
ワークブックWorkBookDim MyBook As WorkBook
Set MyBook = Workbooks("Test.xlsm")
ワークブックをセットする(ファイル名)
ワークシートWorkSheetDim MySheet As WorkSheet
Set MySheet = Worksheets("テスト")
ワークシートをセットします。(シート名)
セルRangeDim MyRange As Range
Set MyRange = Range(A1:E10)
セル範囲をセットします。
オブジェクトObjectDim MyObj As Object
Set MyObj = YourObj
オブジェクトをセットします。

 

ワークシート名(WorkSheet)をオブジェクト変数にセット

 

 ●プログラム説明 サンプルプログラム①

下記のサンプルプログラムは、WorkSheetオブジェクトを変数にセットするサンプルプログラムになります。WorkSheet(ワークシート名)を事前に登録していると、シート間でのセル操作を行う場合に、とても便利です。それでは、順番に説明いたします。

【事前準備】
シートに「東京支店」・「大阪支店」・「名古屋支店」を登録します。

 

 

●実行前~実行後 ※プログラム実行後、「東京支店」・「大阪支店」・「名古屋支店」各シートのセルA1に「●●支店データ」と各シートに文字か入力されました。
(画面クリックして拡大)

 

 

ワークシート名(WorkSheet)+セル範囲(Range)をオブジェクト変数にセット

 

 

 ●プログラム説明 サンプルプログラム②

下記のサンプルプログラムは、WorkSheetオブジェクトとRangeオブジェクトを変数にセットした利用方法のサンプルプログラムになります。上記のサンプルプログラム①は、WorkSheet(ワークシート名)を登録した利用方法でしたが、今回は、そのワークシートとセル範囲を変数として登録して利用する方法の説明になります。セル範囲を事前にセットする事で、繰り返し同一セル範囲を指定する時は、とても便利です。それでは、順番に説明いたします。

【事前準備】
シートに「東京支店」・「大阪支店」・「名古屋支店」を登録します。(今回も同じシートを利用します。)

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、(画面クリックして拡大)

 

 

 

変数として設定したオブジェクト変数をクリア(解放・参照クリア)

 

●書式の説明 【Setステートメント】変数のクリア・解放

【オブジェクト変数のクリア方法】

Set オブジェクト変数名 = Nothing

Setステートメントを利用して変数として利用しますが、オブジェクト変数に「Nothing」を代入する事で、変数として設定したオブジェクト変数をクリアーする事が出来ます。

※オブジェクト変数は、メモリーを使用しますので、使用後オフジェクト変数をクリヤーする事により、使用していたメモリーも解放されるので、使い終わったらクリアーした方が動作の効率が良いと言われています。

 

 ●プログラム説明 サンプルプログラム③

下記のサンプルプログラムは、「合計」・「今月小計」・「先月小計」と3つのシートをオブジェクト変数にセットして、「今月小計」と「先月小計」のシートデータを「合計」シートに転記して、最後に、3つのシートを変数として設定していたオブジェクト変数をクリア―するプログラムです。

 

 

 

 ●実行前~実行後 ※プログラム実行後、シート「今月小計」と「先月小計」から「合計」へデータが転記して、設定していたオブジェクト変数をクリア―しました。
(クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。