ページ 11

DIM宣言で

Posted: 2006年10月13日(金) 20:13
by 種市 ヒデト
変数asに対して

dim as as long

という書き方はできないのでしょうか?
AB5CP3+WinXPSP2でコンパイルできません。

Re: DIM宣言で

Posted: 2006年10月13日(金) 21:56
by hira
asという単語が予約されているため、asという名前の変数は定義できないかと思います(大文字でも同様)。
他の変数名にしてみてください(どうしてもasという言葉を使いたい場合は、_as のようにアンダーバーを付けるとよいかと)。

※同類のものにNextやLoopなどがありますが、こちらは実は使えるようです(何故?)。

Re: DIM宣言で

Posted: 2006年10月14日(土) 13:27
by NoWest
> asという単語が予約されているため、asという名前の変数は定義できないかと思います(大文字でも同様)。
> 他の変数名にしてみてください(どうしてもasという言葉を使いたい場合は、_as のようにアンダーバーを付けるとよいかと)。
>
> ※同類のものにNextやLoopなどがありますが、こちらは実は使えるようです(何故?)。
横からちょこっと補足しますと、
Asがキャスト用の演算子として登録されているからです。

NextやLoopなんぞの命令はオーバーロードで解決できるように
してあると思いますが、Asは演算子なのでオーバーロードできないんでしょう。

コード: 全て選択

Dim as As Long
as = (as As Byte)+as
上のプログラムはこんなことになってます。

コード: 全て選択

Dim キャスト演算子 As Long
'「キャスト演算子」をLongとして定義する

as = (as As Byte)+as
'「キャスト演算子」に「キャスト演算子」と「キャスト演算子をByte型にキャストしたもの」を加算した結果を代入する
コンパイラが認識できる筈がないですね(笑

Re: DIM宣言で

Posted: 2006年10月15日(日) 17:45
by 種市 ヒデト
hira様,NoWest様
ご回答ありがとうございます。
参考になりました。