EXCEL VBA RangeオブジェクトOFFSETプロパティ(基準セルからの行・列移動・相対参照・セル範囲を移動する)

 

 

 

 

EXCEL VBA RangeオブジェクトOFFSETプロパティ(基準セルからの行・列移動・相対参照・セル範囲を移動する)

 

 

 ●はじめに

今回説明するのは、RangeオブジェクトのOffsetプロパティを説明いたします。Offsetプロパティは、基準となる指定したセル位置に対して、行方向・列方向の移動数を指定する事で、セルの参照位置・参照範囲を移動する事ができます。
Offsetプロパティは、セルの参照位置を何らかの計算結果で参照範囲を変更する事ができるので、覚えるととても便利な機能です。それでは、サンプルプログラムを交えて順番に説明いたします。

●【Resizeプロパティに関する内容は、下記の参照して下さい】

EXCEL VBA RangeオブジェクトResizeプロパティ(行数・列数のサイズ移動・セル範囲のサイズ変更)

 

 

 

 

 ●書式の説明

● Offsetプロパティを利用するには、下記の通りに設定を行います。

名前データ型既定値説明(内容)
RowOffsetVariant0標準セルに対して行方向を設定します。上方向は、-(マイナス)数値・下方向は、数値を指定します。
ColumnOffsetVariant0標準セルに対して列方向を設定します。左方向は、-(マイナス)数値・右方向は、数値を指定します。

 

【使用例】
●下記の使用例は、セル(C3)を基準とするOffsetプロパティの使用例です。

 

【注意点】
・Offsetプロパティを使う注意点として、Offset(1)やOffset(,1)の様に、移動方向0を省略する事ができますが、他人がプログラムを見た時に、分かりずらいので、省略せずに【例】Offset(1,0)・Offset(0,1)の通りに記述しましょう。

 

 

 

 

OffSetプロパティを利用して見出しを作成

 

 

 ●プログラム説明 (サンプル①) 【Offsetプロパティ】

下記のサンプルプログラムは、Offsetプロパティを利用して見出しを作成します。基準となるセル(B2)を元にOffsetで「社員番号」・「氏名」・「所属」・「役職」とOffsetで列方向を加算しながらセルに転記します。

 

 

 

●実行前~実行後 ※プログラム実行後、セル(B2)を」基準に見出しが作成されました。
(画面クリックして拡大)

 

 

 

 

 

Offsetを利用して複数の見出しの作成  (指定した位置に見出しを作成)

 

 

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

下記のサンプルプログラムは、Offsetを利用して指定した位置に見出しを作成するサンプルプログラムです。

【プログラム実行条件】
・A列の【見出し位置】A2~A5に見出し位置をセル番号で指定します。
・B列に【見出し】B2~B5に見出し名称を指定します。
・A列・B列ともに、最大4件まで

 

 

 ●実行前~実行後 ※プログラム実行後、見出しを表示する位置をA列から読み取り・見出し内容をB列から取得して、指定したセル位置に見出しが表示されました。
(画面クリックして拡大)

 

 

 

 

Offsetを利用して一意のデータを作成してデータを転記します。

 

 

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

下記のサンプルプログラムは、Offsetを利用してEXCELシート上に、2つの混在するデータがあります。この混在するデータを一意のデータに纏めます。データを纏める際に、Offsetを利用してデータを転記します。

【プログラム説明】
①一つのワークシートに人事データAと人事データBがあります。
②この2つの人事データを人事データAを元に人事データBにあって人事データAに無いものを人事データAの最終行に追加します。


【プログラム実行条件】
・A列~D列の範囲に人事データAを作成
・F列~I列の廃位に人事データBを作成

 

 

 

  ●実行前~実行後 ※プログラムの実行後、A列から始まる「人事データA」の社員番号を元に、「人事データB」にあって、「人事データA」に無い社員番号を見つけ出し、「人事データA」に転記されました。
(画面クリックして拡大)

 

 

 

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