• 締切済み

Range("A1").Value

Excel VBAについて。 以下の2つのコードは違いがありますか? 1. Range("A1").Value = 1 2. Range("A1")= 1 結果は同じですが、1.の方が推奨なのでしょうか? 初歩的な質問で恐縮ですが、よろしくお願いします。

みんなの回答

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

> 以下の2つのコードは違いがありますか? VBAにおいてはありません。私も面倒になってよく省いてしま います。ただこれを「同じ」とは思いませんし どちらが良いか については議論の余地すらないと思います。 田中亨氏の説明ページについては 批判的な意見を時々耳にしま す。 「省略することが許されています」という考え方には首肯 しかねるものがあります。 これでいいなら VLOOKUPの第四引数は「FALSE」の代わりに 「0」を使うことが「許されている」という話になります。 教える立場の人が そんな論調ではいかんでしょう。 自戒の念も込めて省略せずに書くことを推奨します。

回答No.2

こんばんは。 今は、VBAはほとんど書いていませんが、それは、基礎的なことですから、少し書かせていただきます。 >2. Range("A1")= 1 これを「暗黙のプロパティ」といって、Valueプロパティがあるとみなされます。 しかし、私は、旧VBでやっていた経験では、その「暗黙のプロパティ」が、オートメーション・オブジェクトで利かない時が生じます。エラーが生じるのです。 Office Tanakaの田中亨氏は、どういう勉強をしていたかは知りませんが、彼の書く内容は、プログラマーの経験はないようですから、そういう点で、おかしな内容のものが多いです。彼は、MicrosoftのVBAの教科書(『Microsoft Office プログラマーズガイド』)のどこに、RangeやCells に.Valueプロパティを省略したコードを載せていたことがあるでしょうか。 彼が書いている >省略すると○○とみなすというプロパティを標準のプロパティ というのは、おそらく、Default Property(デフォルト・プロパティ) のことだと思いますが、少なくとも私の知っている限りでは違います。それは、別のものです。 >Valueプロパティを省略すべきか、すべきでないかは、意見が分かれるところです。また、明確な正解もありません。 >私は、どちらでもいいと思います。それよりも、大事なことはValueプロパティを省略しているんだと認識することです。 冗談のようなことを書いています。こんなことを言ったら、身も蓋もありません。プログラマーとしての、プロパティの認識の問題ですが、自分は、.Valueプロパティを選ぶのか、.Value2 を選ぶのか、.Text を選ぶのかという選択の中で、.Valueプロパティを選んだという意思決定が含まれているのです。いいかげにしないほうが、エラーなどから回避できるのです。 どちらでもよいというのは、初心者だけの話で、あるレベルに達したら、省略してよいということはありません。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 最初の段階では丁寧に(1)のように記述するのが好ましいと思いますが、 「.Value」を省略するとExcelは自動的に「.Value」が省略されている!と判断してくれるようです。 当方がココで説明するより↓のサイトが参考になると思います。m(_ _)m http://officetanaka.net/excel/vba/beginner/08.htm

関連するQ&A