変数

オブジェクト変数

 そもそも「変数」とは、数値や文字を入れておく入れ物ということを前回お話ししました。

① Dim tanka As Long
② Tanka = 3000

これは

①「tanka」というデータ型が数字の入れ物であることを宣言
② この入物に3000という数字を入れました。

だから tanka × 2 は6,000 であり、tanka + 500 は3,500 になるわけです。

このような使い方ですね。

 これに対し、ワークシート(Worksheet)や セルを意味するレンジ(Range)といったオブジェクトも同様に、変数という入れ物に入れることができます。

このようなオブジェクトを入れる変数(入れ物)のことを、特に「オブジェクト変数」といいます。

Sub OBhensu()

Dim xST As Worksheet ‘①
Dim xRG As Range ‘②

‘— xSTの使い方 —
‘③
Set xST = Worksheets(“Sheet1”)
xST.Activate ‘④
Range(“A1”) = xST.Name ‘⑤

‘— xRGの使い方 —
‘⑥
Set xRG = Range(“A2:D4”)
‘⑦ 
xRG.Interior.ColorIndex = 8
xRG.Font.Bold = True ‘⑧
Range(“B3”) = “VBA” ‘⑨

End Sub

① xSTをWorksheetのオブジェクト変数として宣言
② xRGをRangeのオブジェクト変数として宣言

③ xST に WorksheetのSheet1というオブジェクトを入れる。

④ Sheet1をアクティブにする。
⑤ セルA1にシート名を表示

⑥ xRGにA2からD4までのセルというオブジェクトを入れる。

⑦ それらのセルの背景色をブルーにする。
⑧ それらのセルの文字は太字にする設定にする。
⑨ B3に「VBA」と表示させる。

ここで注意したいことは、「Set」です。

変数にオブジェクトを入れる際は最初に「Set」を付けることになっています。
③と④で確認してください。

もしここでオブジェクト変数を宣言しないとしたら、
xST.Activate 以下は

 Worksheets(”Sheet1”).Activate
 Range(“A1”) = Worksheets(“Sheet1”).Name

と長々と書かねばなりません。

それも面倒なので、「xST」という仮名(あだ名)を付けた。
これが「オブジェクト変数」

「オブジェクト変数」とはこのようなものだと捉えれば理解しやすいです。

厳密に定義すれば多少無理もありますが、このように捉えてまず問題ありません。