![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
初心者な質問でもうしわけないのですが、教えてください。私は現在エクセルVBAを利用してウェヴマクロのimacrosの制御を行いサイトからリストの抽出を行っています。その際、変数の定義がうまくできなかったため、クリップボードに必要な情報をコピーし、エクセルに張り付けるという流れで作業を行っています。そして、このループ作業を約1000回行いたいのですが、大体50回目で止まります。止まっている際にエラーボックスが出て、「out of memory」となっています。クリップボード多用によるメモリの使い切りだと思います。そこで、クリップボードの内容を一度クリアすることを行いたいのですが、VBAのソースコードがわかりません、どなたかご存知であればご教授していただきたいと思います。
尚、VBAのソースコードは以下の通り。
Sub 抽出マクロ()
Dim iim1, iret, row, counter, column, url
Application.ScreenUpdating = False
Set iim1 = CreateObject("imacros")
iret = iim1.iimInit
iret = iim1.iimDisplay("Submitting Data from Excel")
row = 2
counter = 1
Range("I1").Copy
Do
If counter = 2500 Then
Application.ScreenUpdating = True
Exit Sub
End If
iret = iim1.iimPlay("titlename1.iim")
Cells(row, 1).Value = Replace(iim1.iimGetLastExtract(), "[EXTRACT]", "")
iret = iim1.iimPlay("newprice.iim")
Cells(row, 2).Value = Replace(iim1.iimGetLastExtract(), "[EXTRACT]", "")
iret = iim1.iimPlay("ISBN10.iim")
Cells(row, 3).Value = Replace(iim1.iimGetLastExtract(), "[EXTRACT]", "")
iret = iim1.iimPlay("ISBN13.iim")
Cells(row, 4).Value = Replace(iim1.iimGetLastExtract(), "[EXTRACT]", "")
iret = iim1.iimPlay("ASIN.iim")
Cells(row, 5).Value = Replace(iim1.iimGetLastExtract(), "[EXTRACT]", "")
row = row + 1
counter = counter + 1
Loop
End Sub
***追伸***
ちなみにループの中に同じソースが12個続きます。そのため50回程度ループしているだけで約600回の抽出が行われます。
お手数ですが、ご教授していただけると助かります。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
失礼な表現、不適当な記載あったらご容赦ください。
先ず、質問するカテゴリーですが、
デジタルライフ>ソフトウェア>MS Office または同、Office系ソフトで質問した方が良いかと存じます。
そちらの方が具体的なコーディングを教えてくれると思われます。
Windows95/98の走りの時に主にやってましたが、VBAは、最近いじっていないので忘れましたが、
EXCELのVBAに限ってはマクロの登録開始し、コピーし、EXCELに貼り付け、EXCELのクリップボードをクリアするまでをマクロで登録します。
EXCELのバージョンが解りませんが、少なくとも2007にはクリア機能があります。
そしてそのコーディングをVBAで覘いて必要なコーディングを特定してはいかがですか?
これに限らず、やりたいことがあってどうしてもステートメントやコマンドが解らないときは、マニュアル(手作業)で出来る作業はマクロ登録で実際にやることで大抵のコーディングは解ります。
そのコーディングから不要部分を削除すれば良いかと思います、
マクロ登録開始→「やらせたい作業をマニュアル(手作業)でやってみる」→マクロ登録を終了
その後、そのマクロのコーディングを修正したり、部分的にコピーして自分のやりたいVBAプログラムを作っていました。
その他の注意として、コーディングの追加箇所ですがコピーに行く前が適当かと思います。
エラー処理などでは対応しない方が良いかと思います。
経験上、エラー処理はトラブルの要因になることが多いようです。最悪の時にだけ使う方がいいかと思います。
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
メモ帳からエクセルに貼り付け...
-
エクセルで作成した縦に長い表...
-
Excel 表から値をさがして隣の...
-
Excelの数式のコピーで列移動で...
-
WEB上の表の列コピー選択方法は?
-
【エクセル】行挿入で数式もい...
-
エクセルVBAコピー
-
Excelピボットテーブルで 総計...
-
エクセルVBAで、行コピーを複数...
-
エクセルの行と列の入れ替え
-
Excelのコピー&ペーストについて
-
ピボットテーブル→参照が正しく...
-
オートフィルタのリストを順番...
-
Excelセルのたて、横の並...
-
エクセルのリストから欠番を拾...
-
◆エクセルで行単位で重複検索し...
-
エクセルへの表化を効率よくや...
-
エクセルの列幅
-
エクセルをワードに変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
オートフィルタのリストを順番...
-
WEB上の表の列コピー選択方法は?
-
エクセルで作成した縦に長い表...
-
【エクセル】行挿入で数式もい...
-
ピボットテーブル→参照が正しく...
-
エクセルVBAで、行コピーを複数...
-
メモ帳からエクセルに貼り付け...
-
Excelピボットテーブルで 総計...
-
エクセルのリストから欠番を拾...
-
Excel 表から値をさがして隣の...
-
Excelの数式のコピーで列移動で...
-
エクセルの関数の使い方 繰越...
-
エクセルの列幅
-
Excelで検索結果をテキストボッ...
-
一太郎にエクセルの表を貼り付...
-
エクセルに詳しい方、助けてく...
-
地番を順に並べたい。
-
マクロを強制的に有効にする方法
-
ワードでアンケートの集計をし...
おすすめ情報