• ベストアンサー

エクセルVBAの自動変換機能?

エクセルVBAをwebで検索しながらプログラムしている初心者です。 VBEで入力していると変数名などの大文字・小文字を自動変換してくれる機能があると思いますが,そのことでの質問です。 いつもFor~Nextのループ処理を使う時,変数"a"とするのですが(For a=0 to 7 ~Next a),それが入力の最中突然"A"に変換されました。すると,そのExcel内のすべてのVBAの変数"a"が"A"に,Cells(r,c)がcells(r,c)になりました。 大文字・小文字で入力し直しても,勝手に変換されてしまいます。 プログラム自体は支障はなく動いているのですが,理由が判らず気持ち悪いです。どうしてこうなったのか,どうしたら直るのかご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.4

Dim Cells と宣言してみましたか? 一度宣言したら、その宣言文は消しても良いです。

fishchips
質問者

お礼

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

その他の回答 (3)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

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

fishchips
質問者

補足

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

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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

fishchips
質問者

お礼

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

fishchips
質問者

補足

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

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

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

fishchips
質問者

お礼

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

fishchips
質問者

補足

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

関連するQ&A