- 締切済み
EXCEL(エクセル)VBAプログラムの作成
A列の1に http://www.abc.ID=1 B列の1に http://www.nnn.ID=1 の2つのデータがあります。 abcサイトの情報は以下になっており(IDが+1づつ増えていく) http://www.abc.ID=1 http://www.abc.ID=2 http://www.abc.ID=3 http://www.abc.ID=4 http://www.abc.ID=5 ・・・ http://www.abc.ID=10000 ・・・ http://www.abc.ID=xxxxx defサイトの情報は以下になっており(IDが+1づつ増えていく) http://www.nnn.ID=1 http://www.nnn.ID=2 http://www.nnn.ID=3 http://www.nnn.ID=4 http://www.nnn.ID=5 ・・・ http://www.nnn.ID=10000 ・・・ http://www.nnn.ID=xxxx ます。 これらを組み合わせて自動で以下のようなエクセルデータをマクロプログラムで自動作成したいと考えています。 これで1つのエクセルデータ ↓【ファイル名:1~1000.xls】 http://www.abc.ID=1 SLEEP(5) http://www.nnn.ID=1 SLEEP(5) http://www.abc.ID=2 SLEEP(5) http://www.nnn.ID=2 SLEEP(5) http://www.abc.ID=3 SLEEP(5) http://www.nnn.ID=3 SLEEP(5) ・・・・ http://www.abc.ID=10000 SLEEP(5) http://www.nnn.ID=10000 これで1つのエクセルデータ ↓【ファイル名:10001~20000.xls】 http://www.abc.ID=10001 SLEEP(5) http://www.nnn.ID=10001 SLEEP(5) http://www.abc.ID=10002 SLEEP(5) http://www.nnn.ID=10002 SLEEP(5) ・・・ http://www.abc.ID=20000 SLEEP(5) http://www.nnn.ID=20000 というエクセルデータを作成したいと考えています。 (データ量が多いので1つのエクセルデータに1万×2まで) 現在、IDが2000万までのデータを作成したいのですが、 半分手動のVBAやマクロしか作成できません。 フルオートではなくても結構ですから、VBAのプログラムの値やA1やB1に入れるデフォルトのアドレス情報の値を変更するだけで、で2つのサイト情報とSLEEP(5)が交互に入るVBAを教えて頂けませんでしょうか。(プログラムパーツでも構いません)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nattocurry
- ベストアンサー率31% (587/1853)
> この最後の数字の部分だけを+1づつ交互に走らせたいのです。 まず、この文章の意味が解りません。 「最後の数字の部分だけ」を「+1ずつ」「交互に」??? 多少長くなってでも、解りやすい具体例を挙げた方が良いです。 そして、冷たいことを言うようですが、何でもかんでも聞かないで、これだけヒントを与えられたんですから、自分なりに努力してみましょうよ。 その上で、解らないところを再質問しましょう。 今回の再質問の場合、申し訳ありませんが、努力のあとが見られません。
- nattocurry
- ベストアンサー率31% (587/1853)
大きい数字で検証するのは大変なので、小さい数字を使っています。 A1に http://www.abc.ID= B1に http://www.nnn.ID= が入っているとして、 Sub test() Dim ppp As String ppp = ActiveWorkbook.Path Dim abc As String, def As String abc = Cells(1, 1).Value def = Cells(1, 2).Value Dim bbb As Workbook Dim i As Long For i = 0 To 9 Set bbb = Workbooks.Add Dim j As Long For j = 0 To 9 With bbb.Worksheets(1).Cells(j * 4 + 1, 1) .Offset(0).Value = abc & i * 10 + j + 1 .Offset(1).Value = "SLEEP(5)" .Offset(2).Value = def & i * 10 + j + 1 .Offset(3).Value = "SLEEP(5)" End With Next j bbb.SaveAs ppp & "\" & i * 10 + 1 & "~" & (i + 1) * 10 & ".xls" bbb.Close Next i End Sub とすれば、やりたいことができます。 あとは、内容を理解して、数値を適宜修正してください。 見栄えのために、全角スペースを入れていますが、そのまま使うとエラーになるので、半角スペースに置き換えるなり、削除するなりしてください。
補足
とても良い感じに出力されます。 私の質問が悪くてご迷惑をおかけします。 A IE.navigate("http://abc?id=11000") B IE.navigate("http://def.jp/110001") 正確には上記みたいなアドレスです。 この最後の数字の部分だけを+1づつ交互に走らせたいのです。 (質問が悪く真に申し訳ございません。私の質問のだと、nattocurryさんのプログラムで間違っていません。私の質問の仕方が悪いだけです)
- mt2008
- ベストアンサー率52% (885/1701)
あなたの言う「エクセルデータ」が良く判らないのですが、要するに、一列に http://www.abc.ID=1 SLEEP(5) http://www.nnn.ID=1 SLEEP(5) http://www.abc.ID=2 SLEEP(5) http://www.nnn.ID=2 SLEEP(5) http://www.abc.ID=3 SLEEP(5) : : http://www.nnn.ID=10000 SLEEP(5) と、言う文字列が並べば良いのでしょうか? それでしたら以下の四行を入力し、選択した状態で下方向にオートフィルしてください。 http://www.abc.ID=1 SLEEP(X) http://www.nnn.ID=1 SLEEP(X) IDがちゃんと連番になって居ると思います。次に、置換でX→5に置き換えれば出来上がり。 外していたら無視してください。
補足
そうですね。 ありがとうございました。 頂いたプログラム参考に自分で作成します。