質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

1206閲覧

VBA-処理がだんだん遅くなる

m-nm0n

総合スコア15

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/08/22 07:09

VBAでChromeをSeleniumで自動操作するプログラムを書いております。

下にあるループ処理を2,000回程度繰り返したいのですが、
500回目あたりからだんだんと1ループにかかる時間が長くなり、最後には止まってしまいます。

調べてみたのですが、IE操作での解決策ばかりで解決には至りませんでした。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14224808844

Set driver = Nothing というのが有効そうとわかったのですが、こちらも使い方がわかりませんでした。

わかる方、ご教授いただけますとありがたいです。

VBA

1'ループ処理 2 3 Dim i As Integer 4 Dim tim As Integer 5 6 i = 2 7 tim = i 8 9 10 Do While tim = i 11 12 time = 1500 13 Sleep time 14 15 '新規作成 16 17 driver.FindElementByCss("body > div.container > div > button").Click 18 19 'キーワード 20 21 driver.FindElementByCss("#inputKws").SendKeys Cells(i, 2) 22 23 24 '除外ワード 25 26 driver.FindElementByCss("#inputKwes").SendKeys Cells(i, 3) 27 28 29 '送料無料のみ 30 31 If Not Cells(i, 4) = "" Then 32 33 driver.FindElementByCss("body > div.container > div > form > div:nth-child(5) > div > label > input").Click 34 35 End If 36 37 38 39 '=============================== 40 41 42 '商品状態 43 44 45 '新品、未使用 46 47 If Cells(i, 5) = "" Then 48 49 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(2) > label > input").Click 50 51 End If 52 53 54 '未使用に近い 55 56 If Cells(i, 6) = "" Then 57 58 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(3) > label > input").Click 59 60 End If 61 62 63 '目立った傷や汚れなし 64 65 If Cells(i, 7) = "" Then 66 67 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(4) > label > input").Click 68 69 End If 70 71 72 'やや傷や汚れあり 73 74 If Cells(i, 8) = "" Then 75 76 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(5) > label > input").Click 77 78 End If 79 80 81 '傷や汚れあり 82 83 If Cells(i, 9) = "" Then 84 85 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(6) > label > input").Click 86 87 End If 88 89 90 '全体的に状態が悪い 91 92 If Cells(i, 10) = "" Then 93 94 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(7) > label > input").Click 95 96 End If 97 98 99 100 '=============================== 101 102 103 'フリマ 104 105 106 'メルカリ 107 108 If Cells(i, 11) = "" Then 109 110 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(2) > label > input").Click 111 112 End If 113 114 115 'ラクマ 116 117 If Cells(i, 12) = "" Then 118 119 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(3) > label > input").Click 120 121 End If 122 123 124 'オタマート 125 126 If Cells(i, 13) = "" Then 127 128 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(4) > label > input").Click 129 130 End If 131 132 133 'ヤフオク 134 135 If Cells(i, 14) = "" Then 136 137 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(5) > label > input").Click 138 139 End If 140 141 142 'PayPayフリマ 143 144 If Cells(i, 15) = "" Then 145 146 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(6) > label > input").Click 147 148 End If 149 150 151 '=============================== 152 153 154 155 156 '下限価格 157 158 driver.FindElementByCss("#inputPmin").SendKeys Cells(i, 16) 159 160 161 '上限価格 162 163 driver.FindElementByCss("#inputPmax").SendKeys Cells(i, 17) 164 165 'アラート名 166 167 If Not Cells(i, 18) = "" Then 168 169 driver.FindElementByCss("body > div.container > div > form > div:nth-child(10) > div > label > input").Click 170 driver.FindElementByCss("#inputName").SendKeys Cells(i, 18) 171 172 End If 173 174 175 'アラートのプレビュー 176 177 driver.FindElementByCss("body > div.container > div > form > button").Click 178 179 '登録確定 180 181 time = 1500 182 Sleep time 183 184 driver.FindElementByCss("body > div.container > div > div:nth-child(3) > button").Click 185 186 187 188 '判定 189 190 i = i + 1 191 192 If Cells(i, 2) = "" And Cells(i, 23) = "" And Cells(i, 24) = "" Then 193 194 tim = i - 1 195 196 Else 197 198 tim = i 199 200 End If 201 202 203 time = 3000 204 Sleep time 205 206 207 208 209 Loop

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2021/08/22 07:10

荒らし目的ですか。
m-nm0n

2021/08/22 07:39

なぜそうなるのですか
1T2R3M4

2021/08/22 07:44

同様の質問を連続投稿しているからです。 今はまだ2つですが。
m-nm0n

2021/08/22 07:49

追記機能があること、質問を消せないことをを知らずに、加筆して再投稿してしまいました。それについては申し訳ございません。 ですが、悪意があったわけではございません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問