重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/10/23 12:35

#01です。

VBAがご希望かもしれませんが関数でもいけると思います。A1セルに以下の式をペーストして、4000行までコピーしてください。

="10.30."&INT((ROW()-1)/(255*4))+118&"."&MOD(INT((ROW()-1)/4),255)+1

関数で求められた4000行のデータをコピーし、「編集」→「形式を選択して貼り付け」→「値」にすれば文字列に変換できます。
    • good
    • 0

IPアドレスの第4オクッテドは255までです。

すると1020行目までで255に達してしまいます。4000行ということはIPアドレスは1000個あるはずですね。

1021行目以降はどのようなアドレスになるのですか?

この回答への補足

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

補足日時:2006/10/23 12:30
    • good
    • 0

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