WEBAPIをエクセル上で取り扱う場合、標準関数としてWebService(URL)
を利用できることを知りました。
標準関数として利用する場合に、対象となるものがなくエラーとなる場合に、セルに#VALUE!を返してくれるのですが、これをvba上で取り扱う場合、here
のようにIsError
を利用しても特に識別することができません。
また、それが原因なのか、その後の条件分岐の最後で処理を終了するためにEnd
を付けると、全ての選択肢でセルは戻り値として#VALUE!を返してしまいます。
- VBAでこのエラーを判定する方法はあるのでしょうか?
- また、それぞれの分岐の選択でEndで処理を終了させる術はあるのでしょうか?
宜しくお願い申し上げます。
vba
1Function getId(reg As String, dat As String) 2Dim userid 3Dim Parse As Object 4Dim Band_Member As Variant 5Dim URL As String 6Dim parsedUrl As String 7 8 9userid = "XXXXX" 10URL = "https://web-api.invoice-kohyo.nta.go.jp/1/valid?id=" & userid & "&number=" & reg & "&day=" & dat & "&type=21" 11parsedUrl = WorksheetFunction.WebService(URL) '標準関数で対象のURLがない場合、#VALUE!を返す 12 13If IsError(parsedUrl) Then 'here 14 getId = "ERROR:01" 15Else 16 Set Parse = JsonConverter.ParseJson(parsedUrl) 17 If Parse("count") = 0 Then 18 Debug.Print (1) 19 getId = "ERROR:02" 20 'End 21 22 ElseIf Parse("count") = 1 Then 23 Debug.Print (2) 24 getId = "HIT!" 25 'End 26 27 Else 28 Debug.Print (3) 29 getId = "ERROR:03" 30 'End 31 32 End If 33 End If 34 35End Function 36

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/21 15:29
2022/04/21 19:35
2022/04/22 06:23
2022/04/22 06:25
2022/04/22 06:27