• 締切済み

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を教えて頂けませんでしょうか。(プログラムパーツでも構いません)

みんなの回答

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

> この最後の数字の部分だけを+1づつ交互に走らせたいのです。 まず、この文章の意味が解りません。 「最後の数字の部分だけ」を「+1ずつ」「交互に」??? 多少長くなってでも、解りやすい具体例を挙げた方が良いです。 そして、冷たいことを言うようですが、何でもかんでも聞かないで、これだけヒントを与えられたんですから、自分なりに努力してみましょうよ。 その上で、解らないところを再質問しましょう。 今回の再質問の場合、申し訳ありませんが、努力のあとが見られません。

YukiTomoya
質問者

補足

そうですね。 ありがとうございました。 頂いたプログラム参考に自分で作成します。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

大きい数字で検証するのは大変なので、小さい数字を使っています。 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 とすれば、やりたいことができます。 あとは、内容を理解して、数値を適宜修正してください。 見栄えのために、全角スペースを入れていますが、そのまま使うとエラーになるので、半角スペースに置き換えるなり、削除するなりしてください。

YukiTomoya
質問者

補足

とても良い感じに出力されます。 私の質問が悪くてご迷惑をおかけします。 A IE.navigate("http://abc?id=11000") B IE.navigate("http://def.jp/110001") 正確には上記みたいなアドレスです。 この最後の数字の部分だけを+1づつ交互に走らせたいのです。 (質問が悪く真に申し訳ございません。私の質問のだと、nattocurryさんのプログラムで間違っていません。私の質問の仕方が悪いだけです)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

あなたの言う「エクセルデータ」が良く判らないのですが、要するに、一列に 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に置き換えれば出来上がり。 外していたら無視してください。

関連するQ&A