For~Next文をアルファベット列名で書くには?

Question 10.2 Previous Next
For~Next文を書く場合に、列名をそのまま使って、例えば、AからFまで と書きたいのですが、どう書けばよいでしょうか。教えてください。
Answer   Copyright (C) 1999.6.22 永井善王
列名は、セル参照がR1C1形式の場合は、1、2、3…となり、A1形式では、A、B、C…となります。質問は、このA、B、C…をそのまま使って、For~Next文を書きたいのですね。

school キーボードから入力可能なアルファベットの大文字、小文字、それと数字、記号は、ASCII文字セットとして定義され、それぞれ、文字コードが決められています。大文字 Aの文字コードは65、Bは66、Cは67 ……Zは90で、65から90まで1ずつ増えていきます。

一方、指定された文字列の最初の文字の文字コードを返す Asc関数があります。例えば、 Asc("F") と書くと 70を返してきます。

これらを、For~Next文に組み入れると、あなたの例示のケースでは、下記のようになります。
'============================================================================
Sub アルファベットでForNextする()
    For カウント = Asc("A") To Asc("F")             'AからFになるまで繰り返す
        MsgBox Chr(カウント) & " " & カウント        'わかりやすく表示する
    Next
End Sub
'============================================================================
サンプルブックのダウンロードは ここをクリック  (YNxv9c_fornext.xls 52KB)
※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。

 

Excel VBA Macro