サンプルファイルはこちら
変数2(宣言,型)で触れたように オブジェクト型 というものがあります。
例えば、
Dim wb as Workbook
Dim ws as WorkSheet
といった Workbook 型 と Worksheet 型を使いこなすことで、
Book1 の A シートのC2セルの値を
Book1 の C シートのA5セルに 5倍して表示させる
といったことができるようになります。 以下実例。

サンプルファイルでは最初に
wb , ws_a , ws_c (という名前)を利用することを宣言しています。
Workbook型 や Worksheet型を利用するときは
Set を使います。
例: Set wb = Workbooks(“20230127.xlsm”)
今開いているエクセルマクロブックと同じ場所にある
エクセルブック 20230127.xlsm を wb という名前で以下では利用する
という意味。
こう宣言することで、セット後は wb だけで
20230127.xlsm を編集対象とすることができるようになりました。
ブックを操作するためには、
必ず Workbook型オブジェクトをSet して利用しなければならない
という決まりはありません。
Workbook型オブジェクトをSetしたくなければ、
毎回ブックを選択するために
Workbooks(“○○〇.xlsx”).
等と書けばいいだけです。
なぜVBAプログラマーが Setして利用しているかというと
楽だからです。
AシートとCシートがあります。
そのため ただ c2 = Range(“c2”) と命令すると
c2はAシートの値なのか
c2はCシートの値なのか
一意に決まらないことになります。
そこで、
Set ws_a = wb.Worksheets(“A”)
とすることで
wbブック内の
シートA を ws_a という名前で以下では利用する
という意味を与えました。
同様に
Set ws_c = wb.Worksheets(“C”)
とすることで
wbブック内の
シートC を ws_c という名前で以下では利用する
という意味を与えました。
そうすると
c2 = ws_a.Range(“c2”) が
c2 という変数に ワークシートAのC2セルの値を代入する
という意味であることが分かったと思います。
そしてまた
ws_c.Range(“a5”) = c2 * 5 が
ワークシートCのA5セルに 変数 c2 を5倍した値を代入する
という意味であることが分かったと思います。