5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
さざなみさんの投稿
(投稿ID: 4742)
小川 慶一さんのコメント
(コメントID: 6618)
おはようございます。
結果的に同じ状態が得られます。そういう意味では間違いとは言えません。
とはいえ、普段からセルに値を設定するときには .Value をつけるよう心がけられることを強く推奨します。
Range("C4") と Range("C4").Value では言葉が指しているものが違います。
Range("C4") = ... という書き方で結果的に値が変更されるのは、その違いをVBがある程度吸収してくれるからです。
ですが、「どうせ結果的に同じ」と思ってこれに頼っていると、以下の問題が生じます。
[1] 「言葉が指すもの」の違いに敏感になれないので、上達が阻まれる
[2] 特に、[1]の延長として、「オブジェクト型変数」の学習でつまづきやすくなる
以下の記事も参考にしてください。
https://www.exvba.com/2183/
> 練習問題8について質問です。Dimの2行のあとの式の私の解答は、Range("C4")=Range(“B4”)+Range(“B4”)*zeiritu でした。うっかり .Valueを入れ忘れましたがマクロが正常に動きました。.Value が入らないと何が違うのでしょうか。