• 締切済み

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

  • excel vba

    テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2     3     4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7

  • エクセルのVBAについて

    エクセルのVBAについて教えて下さい。 エクセルのVBAでプログラムを組んでいるのですが、一つわからないことがあるのです。 マクロが実行(オープン)されるファイル名(ファイルパス)をVBAで取得するためにはどうすればいいでしょうか? たとえば、マクロが実行されるファイルがC:\テスト.xlsならば "C:\テスト.xls"を取得したいと考えています。 どなたかご教授お願い致します。 宜しくお願い致します。

  • エクセル VBA データのマッチング

     エクセルのVBで下記のプログラムの作成をしたいのですがうまくマクロが組めません。 ファイル名:TEST01.XLS ファイル名:TEST02.XLS があります。 TEST01.XLSにあるA列のデータ、TEST02.XLSにG列にあるデータが一致した場合のみ、一致した行にあるTEST01.XLSのB列にある4桁のコードを一致したTEST02.XLSのL列に表示させるプログラムを作りたいです。 すみませんが回等お願いできませんか。

  • エクセルVBAについて (データのマッチング)

    過去ログで解決できなかったのでここに書かせていただきます。 エクセルのVBで下記のプログラムを作成したいのですがうまくマクロが組めません。 ファイル名:TEST01.xls ファイル名:TEST02.xls があります。 TEST01.xlsにあるA列のデータとTEST02.xlsのA列にあるデータが一致したおり、かつTEST02.xlsのD列のデータが『×』の場合のみ、TEST01.xlsのB列に固定の文字(test)を入力し、TEST01.xlsのC列に入力されているデータを削除するプログラムを作りたいです。 ご存知の方がいらっしゃれば、ご教授よろしくお願い致します。

  • エクセルでVBAショートカットを作成したいです

    エクセルVBAを使用して、ショートカットキーを作成したいです。 ネットで調べてみた情報を元に、以下のようにマクロを作成しましたが、動作しません。 (やろうとしているのは、Ctrl+Shift+V で値で張り付け です) どのように直したら動作するか教えて頂きたいです。 以下、作成したマクロです。。。 ---------------------------------------------------------------------- Sub auto_open() Application.OnKey "+^V", "値で張り付け" End Sub Sub 値で張り付け() Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub ----------------------------------------------------------------------

  • エクセルのVBAでプログラムを作成中です。

    エクセルのVBAでプログラムを作成中です。 下二桁が1の項目のある列があれば、その列を別ワークシートの1番目の列に引用、 下二桁が2の項目のある列があれば、その列を別ワークシートの2番目の列に引用。。というように、 別ワークシートへ引用することができればな、と思います。 ポイントは、 下二桁を認識し、その値を列数と認識するにはどうすればよいか? ex) 101023がA1セルにあり。⇒ 下二桁が23なので、別ワークシートでは23列目。 application.worksheetfunction value vlookup 。。色々コードは思いつくのですが、そもそも見当違いなのかもしれません。 ご教示ください。

  • エクセルVBAのプログラム

    A.xlsからB.xlsのファイル(最初はA..xlsのみが開いています)へのデータ転送をしたいのですが、プログラムが組めません(>n<)  すみませんが誰か助けてください。 行いたい作業は以下の通りです。 ※デスクトップにあるB.xlsを開く ※A.xlsのセル「A1~A5」をコピーしてB.xlsのAの列の列で空欄の行を見つけて、列と行を入れ替えて貼り付ける(もしB.xlsのA10までデータが入力されていたら、貼り付ける場所はA11~F11になります) ※B.xlsは作業終了後自動保存して閉じる その際に ※A.xlsのセル「A1」にはデータ名が記入されているのでB.xlsのAの列にその名前があれば、そこに上書きする形にしたい。 ※A.xlsのA2のセルには「55,23」のように二つの数字が「,」でつながって入力されているので、B.xlsに貼り付けるときには、二つのセルにわけてそれぞれの数字を貼り付けたい。 お手数おかけしますがよろしくお願いいたします。

  • EXCELファイルをプログラムで作成する方法

    教えて下さい。 エクセルを使わないで、エクセルで読込める.xlsファ イルを作成する方法を教えて下さい。 言語は、Javaで、画面から設定した値を予め行と列を 決められた所に値を割当、.xlsファイルとして出力し 対です。 .xlsファイルのフォーマットが分かればそれに従えば よいと思いますが… 行と列を意識して.csvファイルにして出力し、エクセ ルで読込む事はできたのですが、直接.xls形式のファ イルを作成をしたいと思いました。 すみませんが、宜しくお願いします。

  • EXCEL VBA

    はじめまして。ExcelのVBAについて質問させて頂きます。 - A-B-C            1 0 あ        2 0 い        3 1 う           4 1 え           5 1 お   上記のようなデータに対して、A列の値が1の場合、B列の値をC列へコピー して、B列をゼロにする。A列の値が0の場合は、そのまま。 (結果) - A-B-C            1 0 あ        2 0 い        3 1 0  う           4 1 0 え           5 1 0 お   といったようにVBAを作成したいのですが、なにぶん初心者なもので、 どのように記述すればよいのかわかりません。 よろしくお願いいたします。

  • ExcelをVBAで読み込むと

    ExcelデータをAccess VBAを使い、読み込んでテーブルに溜め込んでいます。 問題が1つあり、Excelのデータは他のシステムによって自動で作られています。 このExcelデータは1行目に見出しがあります。この見出しの列が時々追加されたり、削除さたりします。 例えば、下記の2列があるとします。読み込みたいのはID,NAMEのみです。 ID,NAME この2列が固定であれば、問題ありません。しかし、時々、 ID,SEIBETU,NAME と、SEIBETUという項目が追加されたりします。そうすると、Access VBAで読み取ろうとするとエラーが出ます(プログラムの修正をすればいいのですが)。 こういった問題を解決するには、何かいい方法はあるでしょうか?Accessでやっていますが、VB.NET、SQL Serverで解決できるなら、そちらを勉強して解決したいと思います。 よろしくお願いします。

専門家に質問してみよう