- ベストアンサー
マクロのFor...Next構文のことで
マクロのFor...Next構文で、A1からA50までといったように文字が含まれる場合はどのように指定すればいいのでしょう?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 A1~A50までの文字列をその後何に使用するかは不明ですが、 次のような方法はいかがですか? *ポイント* ・「Txt」というバリアントの変数に、文字列「A」と ループによってカウントアップされる数値を結合し、セットする。 (バリアント変数に指定しておけば、数値、文字列、何でも格納することができる!) ・ブランク(何もかかれていない)シートをアクティブにして、 以下のマクロを実行して、確認をしてみてください。 Sub 文字のループ() Dim Txt As Variant '文字列を代入する変数 Dim i As Integer 'カウントアップ変数 For i = 1 To 50 '数値部分になる部分をループ Text = "A" & i 'バリアント変数に文字列「A」と数値をセット Cells(i, 1) = Text '→シートにて確認してください。 Next End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() For i = 1 To 50 s = "A" & Trim(Str(i)) ' sを使って何か処理をする Cells(i, 1) = s Next i End Sub こう言うようなことでしょうか。
お礼
回答ありがとうございました。
- endorin
- ベストアンサー率60% (3/5)
No.2 の endorin です。 ごめんなさい。 1点だけ記述ミスがありましたので、訂正します。 (誤) Dim Txt As Variant '文字列を代入する変数 (正) Dim Text as Variant Txt →Text です。 ちなみに、Excel VBA では、データ型を指定しない場合、 バリアント型としてみなされますので、No.2の記述でも問題はないのですが、 念のため。。。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 コンピュータ関連の質問では、使用ソフト(アプリケーション)や環境(OS)などを必ず明記しましょう。 「A1」などとあるので、ExcelのVBAとして回答します。(私の環境上Excel2000です。) セルをForループで回す方法は2つあります。RangeオブジェクトとCellsプロパティを使用する方法です。 Rangeオブジェクトの場合は、 For i = 1 To 50 Debug.Print Range("A" & i).Value Next i Cellsプロパティの場合は、 For i = 1 To 50 Debug.Print Cells(i, 1).Value Next i となります。
補足
回答ありがとうございました。 セルをForループで回したいのではなく、文字通りA1からA50までの文字に対して処理を行いたいのですが。
お礼
回答ありがとうございました。 取りあえずループ処理に関しては解決できそうです!