• ベストアンサー

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文を使うのでしょうが、その構文がわかりません。 初心者で大変申し訳ないのですが、どなたかご教授下さい。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

下記でいかがでしょうか? 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

nw0206
質問者

お礼

早速のご回答有難う御座います。 早速実行してみたところ、思い通りの連続処理が自動でできました。 本当に感謝しています!有難う御座います。 後は、適確数値を変えて実行したいと思います。 有難う御座いました。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です。VBAがご希望かもしれませんが関数でもいけると思います。A1セルに以下の式をペーストして、4000行までコピーしてください。 ="10.30."&INT((ROW()-1)/(255*4))+118&"."&MOD(INT((ROW()-1)/4),255)+1 関数で求められた4000行のデータをコピーし、「編集」→「形式を選択して貼り付け」→「値」にすれば文字列に変換できます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

IPアドレスの第4オクッテドは255までです。すると1020行目までで255に達してしまいます。4000行ということはIPアドレスは1000個あるはずですね。 1021行目以降はどのようなアドレスになるのですか?

nw0206
質問者

補足

早速のご回答大変感謝しております。 1021行目は、第3オクテットが1つ繰り上がります。 ですので、hanahana-3様の構文の通りです。 本当に有難う御座います。

関連するQ&A

専門家に質問してみよう