- ベストアンサー
Excel VBA マクロ 繰り返し処理について
初めて、ご質問させて頂きます。excel2003で、VBAによる連続繰り返し処理をしたいのですが、プログラムの知識が全くありませんので、どなたかご教授頂けませんでしょうか。 VBAによる連続繰り返し処理の内容は、excelの1つの列に上から順番に、IPアドレスを4つずつ同じ値で、入力したいのです。 例:10.30.118.1、10.30.118.1、10.30.118.1、10.30.118.1、10.30.118.2、10.30.118.2、10.30.118.2、10.30.118.2、10.30.118.3、10.30.118.3、10.30.118.3、10.30.118.3、、、 上記の例の様に、1つの列上で上のセルから順番に、4つずつ同じ値を順番に、4000行程度入力したいのですが、手で入力するのは、大変時間がかかる為、自動で入力させたいと思っています。 恐らくfor文を使うのでしょうが、その構文がわかりません。 初心者で大変申し訳ないのですが、どなたかご教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
下記でいかがでしょうか? A列にIPアドレスが入ります。 Sub IP() Dim IP1 As Integer Dim IP2 As Integer Dim IP3 As Integer Dim IP4 As Integer Dim i As Integer Dim Count As Long Count = 1 IP1 = 10 IP2 = 30 For IP3 = 118 To 121 For IP4 = 1 To 255 For i = 1 To 4 Cells(Count, 1) = IP1 & "." & IP2 & "." & IP3 & "." & IP4 Count = Count + 1 Next Next Next End Sub
その他の回答 (2)
- zap35
- ベストアンサー率44% (1383/3079)
#01です。VBAがご希望かもしれませんが関数でもいけると思います。A1セルに以下の式をペーストして、4000行までコピーしてください。 ="10.30."&INT((ROW()-1)/(255*4))+118&"."&MOD(INT((ROW()-1)/4),255)+1 関数で求められた4000行のデータをコピーし、「編集」→「形式を選択して貼り付け」→「値」にすれば文字列に変換できます。
- zap35
- ベストアンサー率44% (1383/3079)
IPアドレスの第4オクッテドは255までです。すると1020行目までで255に達してしまいます。4000行ということはIPアドレスは1000個あるはずですね。 1021行目以降はどのようなアドレスになるのですか?
補足
早速のご回答大変感謝しております。 1021行目は、第3オクテットが1つ繰り上がります。 ですので、hanahana-3様の構文の通りです。 本当に有難う御座います。
お礼
早速のご回答有難う御座います。 早速実行してみたところ、思い通りの連続処理が自動でできました。 本当に感謝しています!有難う御座います。 後は、適確数値を変えて実行したいと思います。 有難う御座いました。