5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
柴田 邦彦さんの投稿
(投稿ID: 3521)
のようにオブジェクト型の変数を宣言する場合は、
のようにSetで変数を割り当てなくても良いのでしょうか?
小川 慶一さんのコメント
(コメントID: 4998)
こんにちは。
> のようにオブジェクト型の変数を宣言する場合は、
> [[snip]]
> For Each rg In Range("C2:H29")
> のようにSetで変数を割り当てなくても良いのでしょうか?
柴田さんご自身は、どう思われますか?
そう思われる理由も添えて投稿ください。よろしくお願いいたします。
柴田 邦彦さんのコメント
(コメントID: 5002)
柴田です。
どう思われますか?との問いに対して回答いたします。
Set rg = Range("C2:H29")の一行を入れても入れなくてもマクロにエラーは出ません。
ただ、発展1講座第1章 - 総称オブジェクト型で習った内容を律儀に実行するのであれば、As Rangeでオブジェクト型の変数宣言をしていますので、変数reにオブジェクトを格納するためには、Setで割り当てる必要があると考えます
小川 慶一さんのコメント
(コメントID: 5004)
こんばんは。
先に結論を書きます。
For Each構文で個別のオブジェクトへの参照用に用意した変数に対しては、For Each構文がはじまる前に何らかの参照設定を施す必要はありません。
また、ここの2回の柴田さんからの投稿に出てくる用語の使われ方、論理構成を見る限り、第1章、第4章についての理解が不足しているように思います。
まずは、箇条書きにして要点を整理します。以下の[a]-[c]です。
たぶん、これで十分ではないか、と思いますが...。
もし、これを読んで、第1章、第4章を復習しても、まだ不明なことが出てきたようでしたら、どれがどう理解できないか?をお知らせください。
[a] オブジェクト型変数の宣言は以下の構文で行う。
[b] オブジェクト型変数の初期値は Nothing である。
[c] オブジェクト型変数に対してオブジェクトへの参照設定をする方法は、以下の2つがある。
[c-1] 以下の構文で明示的に設定する
[c-2] 以下のように、For Each構文内で暗示的に指定させる(コレクションの要素ひとつひとつを順に参照する)