コンボボックスの値を取得する方法は、Webサイトの実装によって異なります。
提供された情報だけでは、エラーが出る原因が特定できませんが、いくつかの可能性があります。
以下はいくつかの考えられる原因です。
#1.HTMLSelect12のselectedプロパティが表示されないように変更されている可能性があります。
この場合、代わりにvalueプロパティを使用して、選択された項目の値を取得することができます。
#2.選択された項目の数が多い場合、B変数が配列の境界を超えてしまい、エラーが発生する可能性があります。
代わりに、ループを使用して選択された項目のインデックスを取得することができます。
以下は、上記の問題を解決するための可能性がある改良されたコード例です。
Dim combo As Object
Dim selected As String
Dim items As Variant
Dim i As Long
Set combo = ThisWorkbook.Sheets("シート名").OLEObjects("HTMLSelect12").Object
selected = combo.selected
items = Split(combo.DisplayValue, ";")
If UBound(items) >= 0 Then
For i = 0 To UBound(items)
If InStr(selected, ";true;", vbTextCompare) > 0 Then
' 該当の項目が見つかった場合
ThisWorkbook.Sheets("シート名").Range("A1").Value = items(i)
Exit For
End If
Next i
End If
このコードでは、まずOLEObjectを使用してコンボボックスオブジェクトを取得します。
次に、selectedプロパティとDisplayValueプロパティを使用して、選択された項目と表示されている項目を取得します。
ループを使用して、選択された項目のインデックスを見つけ、その項目の値をA1セルに書き込みます。