アプリ版:「スタンプのみでお礼する」機能のリリースについて

変数を使用するにあたり、

Dim A As String
A=Sheets("Sheet1").range("A1").Value
MsgBox A

という記述方と、

A$=Sheets("Sheet1").range("A1").Value
MsgBox A$

という記述は同じ意味だと思うのですが、何か違いがあるのでしょうか?
Stringなら「$」、Integerなら「%」で、いちいちDimで整数か文字列かを指定しなくていいだけ簡単だと思うのですが、わざわざDimを使う意味は何なのでしょうか?

A 回答 (4件)

$は文字型を意味するだけです。


Dim A As String
と書くかわりに
Dim A$
と書けるだけの話です。
このこととDimの有無の意味は別です。
未定義の変数いきなり使える(Option ExplicitがOFF)環境ですと、おっしゃるように違いはありません。
Dimの意義についてはすでに回答が出ていますので割愛します。
頑張ってくださいヽ(^。^)ノ
    • good
    • 0

メモリが4K、OSなし、TinyBasicなんてBasic時代があって、MSDOSのBasicの時代は何しろメモリが1バイトでも貴重で、変数名も出来るだけ短くが推奨され、その当時文字列$と整数%。

単精度!、倍精度#の「変数型宣言」が決められていました。それがVisualBasic時代になっても禁止はせず残してあります。一般に他の言語ではDim A As String式が多く、VBもそちらをメインとして採用してるはずですから、「いちいちDimで整数か文字列かを指定しなくていいだけ簡単だと思うのですが、わざわざDimを使う意味は何なのでしょうか」というのは感覚がちょっと違うように思いますが。変数名に型宣言は含めないのが主流になったと言うことです。
    • good
    • 0

簡単なものなら良いでしょうが、ソースが長くなって来ると原因不明の不具合が「変数の単純な記入ミスだった」なんて事も起こります。



Iist → list など(Lの小文字とiの大文字)

Option Explicit などを使う事でこれらを回避したりします。
    • good
    • 0

明示的に変数を定義するためです。


明示的に定義したほうが、わかりやすいからです。

Option Explicit On
にしてると、明示的に定義する必要があります。
ちなみに.NETではデフォルトがOption Explicit Onです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!