##概要
お客様の商品発送が完了したら、webサイトのポイントを発行する作業をマクロで行っております。
web管理画面で、発送が完了した注文番号にチェックを入れてポイントを承認をする。
というマクロを使っていたのですが、管理画面のリニューアルにより、マクロがエラーとなってしまいました。
##エラー箇所
原因はリニューアルにより、htmlタグが変わってしまった為だと考えられます。
マクロ初心者のため、どう修正すればよいかが分かりません。
エラーが起きている周辺のマクロ一部と、web上のhtmlタグの一部を貼り付けますので、
どのように修正を行えばよいかご教授いただけますと幸いです。
html
1<table class="app-sps-main-table"> 2 <thead> 3 <tr> 4 <th>ポイント</th> 5 <th>注文日時</th> 6 <th>注文番号</th> 7 <th>合計金額</th> 8 <th>決済</th> 9 <th>決済依頼</th> 10 <th>入金</th> 11 </tr> 12 </thead> 13 <tbody> 14 15 <tr> 16 <td class="--font-size-12px"> 17 <span class="app-sps-checkbox"> 18 <label> 19 <input type="checkbox" name="checkbox" value="10144971"> 20 <span class="app-sps-checkbox__square"><span></span></span> 21 </label> 22 <span>2,590P </span> 23 </td> 24 <td class="--align-center --font-size-12px"> 25 <p>2021/10/25<br>11:49:17</p> 26 </td> 27 28 <td class="--align-center --font-size-12px"> 29 12345 30 </td> 31 <td class="--align-right --font-size-12px"> 32 25,900円 33 </td> 34 <td class="--align-center --font-size-12px"> 35 <img src="../v202107/images/icon/ordr_ic_cad.svg" width="18" height="18" hspace="1"> 36 </td> 37 <td class="--align-center --font-size-12px"> 38 <p>---<br></p> 39 </td> 40 <td class="--align-center --font-size-12px"> 41 <img src="../v202107/images/icon/rec_ic_end2.svg" width="18" height="18" hspace="1"><img 42 src="../v202107/images/icon/rec_ic_big1.svg" width="18" height="18" hspace="1"> 43 </td> 44 </tr> 45 </tbody> 46</table> 47<!--承認ボタン--> 48<div class="app-sps-normal-contents-box-a"> 49 <div class="app-sps-normal-contents-box-a__body"> 50 <div class="space"></div> 51 <div class="--centering"> 52 <div class="--layout-col2 --width-332px"> 53 <div> 54 <button type="button" class="negative-button --width-158px" name="Submit" 55 onclick="var e = e || window.event;e.preventDefault();AppSub(2, 0);return false;"> 56 <span class="negative-button__inner"> 57 <span class="negative-button__bg"></span> 58 <span class="negative-button__icon"> 59 <span class="negative-button__icon-bg"></span> 60 <img src="../v202107/images/clear_icon.svg" width="" height="" alt=""> 61 </span> 62 <span class="negative-button__label">取 消</span> 63 </span> 64 </button> 65 </div> 66 <div> 67 <button type="button" class="positive-button --width-158px --margin-l-16px" name="Submit" 68 onclick="var e = e || window.event;e.preventDefault();AppSub(1, 0);return false;"> 69 <span class="positive-button__inner"> 70 <span class="positive-button__bg"></span> 71 <span class="positive-button__icon"> 72 <span class="positive-button__icon-bg"></span> 73 <img src="../v202107/images/confirm_icon.svg" width="" height="" alt=""> 74 </span> 75 <span class="positive-button__label">承 認</span> 76 </span> 77 </button> 78 </div> 79 </div> 80 </div> 81 <div class="space"></div> 82 </div> 83</div>
VBA
1 'ポイント承認用の画面に遷移する(1ページ目) 2 objIE.navigate "https://〇〇〇" 3 Call Wait(objIE) 4 5 order_cnt = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr").Length 'リストが何個あるか調べてる 6 7 For i = 1 To order_cnt - 1 8 9 order_data = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).innerHTML '全体 10 order_id = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("td")(2).innerText 'ID 11 order_st = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("td")(5).innerText 'ステータス(キャンセルかどうか) 12 order_check = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("input")(0) 'チェックボックス 13 14 Data.Cells(i + rMaxRow, 1).Value = order_id 15 16 If InStr(order_st, "キャンセル") = 0 Then 17 18 Result = Filter(checkList, order_id) 19 20 If UBound(Result) <> -1 Then 21 objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("input")(0).Checked = True 22 Data.Cells(i + rMaxRow, 2).Value = "承認済み" 23 Else 24 Data.Cells(i + rMaxRow, 2).Value = "未承認" 25 26 End If 27 28 Else 29 Data.Cells(i + 1, 2).Value = "未承認" 30 31 End If 32 33 34 Next 35 36 For Each Button In objIE.document.getElementsByClassName("item-box")(2).getElementsByTagName("input") '承認ボタン 37 If Button.Value = "承認する" Then 38 Button.Click 'ボタンをクリックして 39 Call Wait(objIE) 40 Exit For '繰り返し処理を抜ける 41 End If 42 Next 43 44 'ポイント承認用の画面に遷移する(2ページ目) 45 objIE.navigate "https://〇〇〇?page=2" 46 Call Wait(objIE) 47 48 order_cnt = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr").Length 49 50 For i = 1 To order_cnt - 1 51 52 order_data = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).innerHTML 53 order_id = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("td")(2).innerText 54 order_st = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("td")(5).innerText 55 order_check = objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("input")(0) 56 57 Data.Cells(i + rMaxRow, 1).Value = order_id 58 59 If InStr(order_st, "キャンセル") = 0 Then 60 61 Result = Filter(checkList, order_id) 62 63 If UBound(Result) <> -1 Then 64 objIE.document.getElementsByClassName("item-box")(1).getElementsByTagName("tr")(i).getElementsByTagName("input")(0).Checked = True 65 Data.Cells(i + rMaxRow, 2).Value = "承認済み" 66 Else 67 Data.Cells(i + rMaxRow, 2).Value = "未承認" 68 69 End If 70 71 Else 72 Data.Cells(i + 1, 2).Value = "未承認" 73 74 End If 75 76 77 Next 78 79 For Each Button In objIE.document.getElementsByClassName("item-box")(2).getElementsByTagName("input") 80 If Button.Value = "承認する" Then 81 Button.Click 'ボタンをクリックして 82 Call Wait(objIE) 83 Exit For '繰り返し処理を抜ける 84 End If 85 Next 86 87 Next 88 89 Next 90 91 objIE.Quit 92 93End Sub
あなたの回答
tips
プレビュー