変数を使用するにあたり、
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件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
$は文字型を意味するだけです。
Dim A As String
と書くかわりに
Dim A$
と書けるだけの話です。
このこととDimの有無の意味は別です。
未定義の変数いきなり使える(Option ExplicitがOFF)環境ですと、おっしゃるように違いはありません。
Dimの意義についてはすでに回答が出ていますので割愛します。
頑張ってくださいヽ(^。^)ノ
No.3
- 回答日時:
メモリが4K、OSなし、TinyBasicなんてBasic時代があって、MSDOSのBasicの時代は何しろメモリが1バイトでも貴重で、変数名も出来るだけ短くが推奨され、その当時文字列$と整数%。
単精度!、倍精度#の「変数型宣言」が決められていました。それがVisualBasic時代になっても禁止はせず残してあります。一般に他の言語ではDim A As String式が多く、VBもそちらをメインとして採用してるはずですから、「いちいちDimで整数か文字列かを指定しなくていいだけ簡単だと思うのですが、わざわざDimを使う意味は何なのでしょうか」というのは感覚がちょっと違うように思いますが。変数名に型宣言は含めないのが主流になったと言うことです。No.2
- 回答日時:
簡単なものなら良いでしょうが、ソースが長くなって来ると原因不明の不具合が「変数の単純な記入ミスだった」なんて事も起こります。
Iist → list など(Lの小文字とiの大文字)
Option Explicit などを使う事でこれらを回避したりします。
No.1
- 回答日時:
明示的に変数を定義するためです。
明示的に定義したほうが、わかりやすいからです。
Option Explicit On
にしてると、明示的に定義する必要があります。
ちなみに.NETではデフォルトがOption Explicit Onです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
なにしてるかわからない。。
-
皆さん定義を教えてください 「...
-
自然数 整数 有理数 実数 加法 ...
-
無限から無限を引いたら何にな...
-
マイナス7は素数ですか?
-
「logx^2=2logx」が間違って...
-
普通の人は人を激しい責めます...
-
ネットストーカーの定義 最近SN...
-
環の乗法に関して左(右)逆元...
-
「互いに素」の定義…「1と2は互...
-
数学の両辺2乗と√について教え...
-
eの0乗は1ってどういう原理です...
-
なぜ、直角三角形ではないのにs...
-
数学で、未定義の
-
A二乗のルート=絶対値Aになり...
-
数字の1とは何なのか?
-
ヘシアンが0の場合どうやって極...
-
ノートンのウイルス定義のバー...
-
べき乗
-
0次元多様体
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
べき乗
-
無限から無限を引いたら何にな...
-
1未満と1以下の違い
-
p⇒q=(¬p)∨qについて
-
「logx^2=2logx」が間違って...
-
数字の1とは何なのか?
-
「互いに素」の定義…「1と2は互...
-
変数の宣言の名称を教えてくだ...
-
ACCESS VBAでインポート定義の場所
-
日本語 ことば ひとまわり ふた...
-
ACCESS IIF関数 複数条件の設...
-
Excelファイルの「数式」タブ→...
-
e<3の証明を教えてください。
-
なぜ小数は自然数ではないので...
-
ヘシアンが0の場合どうやって極...
-
2進数の符号ビットの入った数...
-
最大元と極大元の定義の違いが...
-
eの0乗は1ってどういう原理です...
-
フーリエ級数展開の初項はなぜa...
おすすめ情報