プロが教える店舗&オフィスのセキュリティ対策術

エクセルVBAをwebで検索しながらプログラムしている初心者です。
VBEで入力していると変数名などの大文字・小文字を自動変換してくれる機能があると思いますが,そのことでの質問です。

いつもFor~Nextのループ処理を使う時,変数"a"とするのですが(For a=0 to 7 ~Next a),それが入力の最中突然"A"に変換されました。すると,そのExcel内のすべてのVBAの変数"a"が"A"に,Cells(r,c)がcells(r,c)になりました。
大文字・小文字で入力し直しても,勝手に変換されてしまいます。

プログラム自体は支障はなく動いているのですが,理由が判らず気持ち悪いです。どうしてこうなったのか,どうしたら直るのかご教授お願いします。

A 回答 (4件)

Dim Cells


と宣言してみましたか?
一度宣言したら、その宣言文は消しても良いです。
    • good
    • 3
この回答へのお礼

2度目のご回答ありがとうございます。

仰る方法で直りましたっ!"A"も"cells"も直りました!
「一度宣言したら,その宣言文は消しても良い」・・眼からウロコです。
『何故なったのか?』の疑問は残りますが,自分の入力ミスがないとは言い切れませんので追求しないことにします(^^;
お陰様でスッキリしました。ありがとうございます。

お礼日時:2009/05/29 17:06

cellsに関しては、過去に一度、


Dim cells
と宣言したことはありませんか?
改めて、
Dim Cells
と宣言し直せば、Cellsがcellsに勝手に変換されることはなくなります。

この回答への補足

ご回答ありがとうございます。
宣言文をあまり理解していないため一切使用してません。
逆にまったく宣言していないことがいけないのでしょうか・・

補足日時:2009/05/29 14:51
    • good
    • 0

Sub test01()


Dim A
For A = 1 To 10
Next i
End Sub
(意味のないコードですが辛抱して)
Dim  のAと
ForNextのAを色々変えて見てください。
Dim の変数定義が優先されるのが判ります。
これはこれで私には、納得できます。

この回答への補足

ご回答ありがとうございます。
宣言文をあまり理解していないため一切使用してません。

なのに・・・

補足日時:2009/05/29 14:50
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
宣言文,お勉強します。。

お礼日時:2009/05/29 17:13

Dim A As integer


と宣言している場合は 変数a は自動的にAに変換されます
その逆も真
宣言していない場合は、A =123 として
次に a= a+1 とすると後から使った方に統一されるようです。

この回答への補足

ご回答ありがとうございます。
宣言文をあまり理解していないため使用してません。また,入力が面倒臭い(^^;ため大文字も使用しないのです。

なのに・・・

補足日時:2009/05/29 14:45
    • good
    • 0
この回答へのお礼

素早いご対応ありがとうございます。1番乗り回答ということでポイント発行させていただきました。

お礼日時:2009/05/29 17:11

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