dポイントプレゼントキャンペーン実施中!

VBAでfor...next構文で通常 
for i = 1 to 100
などとしますが、それをA~Zまでとする場合どのようにすればよいでしょうか?

A 回答 (4件)

#1です。


ごめんなさい。先のマクロに致命的なミスがありました。
正しくは

Dim c as String
For i = 0 To 25
  c = Chr(i + 65)

です。お詫びして訂正します。
さて

c = Chr(i + 65)

の解説ですが、

Chr は、与えられた文字コードに該当する文字を返す関数です。
半角大文字の「A」のコードは65です。
「i」は0から25までの値をとりますので、「i+65」とするわけです。

ちなみに、

Dim c as String
For i = 65 To 90
  c = Chr(i)

としても良いでしょう。
    • good
    • 5
この回答へのお礼

有難う御座います。大変分かり易いご説明有難う御座いました。

お礼日時:2004/02/18 15:31

文字には、コンピュータの中で数字が割り当てられています。

半角文字の場合はたいてい”アスキーコード”がつかわれています。

Aは65, Bは66...のようになっています。

Chrは、整数を渡すと、(その数をアスキーコードとみなして)、対応する文字を返す関数なので、forでiを0から使えば、i+65 はAに対応する数字になります。

Dim c as String
For i = Asc("A") To Asc("Z")
  c = Chr(i)
  :

としたほうがわかりやすいかも。
    • good
    • 2

文字には文字コードが割り当てられていますので、そちらを利用します。



IT用語辞典 e-Words : ASCII文字コード
http://e-words.jp/p/r-ascii.html

でいうと、A(65)~Z(90)まで整数iをループさせ、Chr関数で整数iのASCIIコードを文字に変換して文字列cに格納すると言う処理です。

参考URL:http://e-words.jp/p/r-ascii.html
    • good
    • 1

for i = 1 to 100


の「i」は、Integer型と決まっていますので、文字型である「A~Z」にはできません。

Dim c as String
For i = 0 To 2
  c = Chr(i + 65)

として、「i」のかわりに「c」を使うのでは駄目なのでしょうか?

この回答への補足

有難う御座います。文字列が使えないことは分かりました。
Dim c as String
For i = 0 To 2
  c = Chr(i + 65)

c = Chr(i + 65)
この意味が分からないので教えて下さい。

補足日時:2004/02/18 15:00
    • good
    • 3

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A