[[20230726164010]] 『WEBSERVICE関数のエラー #VALUE! について』(すずき) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『WEBSERVICE関数のエラー #VALUE! について』(すずき)

エラーが出るときと出ないときがあります。

ワークシートを作成し、最初のページの

 セル「A5」に、日付「2023/07/17」とし、
 セル「B5」に
「=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="A5)」
 とした場合、値は「海の日」が返ってきます。
 その後他のページを作成していき、最初のページに戻り、セル「A5」の日付を変更(例:2023/08/11)とすると、値が「#VALUE!」になってしまいます。  
 日付を最初の2023/07/17に戻してもエラーのままで値が正しく返って来ません。これ以降どうやってもエラーしか返ってきません。

 そこで、新しいシートを開き、同様に
 最初のページの 
 セル「A5」に、日付「2023/07/17」とし、
セル「B5」に
「=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="A5)」
とした場合、値は正しく「海の日」が戻ります。

 同じような現象のある方、いませんか?

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 =WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="&A5)
 ではなく?
(ねむねむ) 2023/07/26(水) 17:11:08

あ、すいません。そうですね。
ここに書き込むときに間違えました。
=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="&A5)
に間違いありません。セルには上記のとおりになっています。

(すずき) 2023/07/26(水) 17:24:50


私も同じ症状です。
すずきさんの関数でも同じ症状ですが、以前から以下の関数でも不思議な挙動なので気になってました。
郵便番号から都道府県・市区町村・町域 を取得するためのもので以下のような関数でしたが。
=FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=・・・・・

正しく表示されるブックを保存し、再度開きなおして編集とかすると、#VALUE! が返り、2度と正しく表示されなくなったりしませんか?
ほんとに謎です。

(同志) 2023/07/26(水) 17:45:37


>(例:2023/08/11)とすると
「山の日」と表示されました。
Excel2013です。
(IT) 2023/07/27(木) 09:18:30

その「山の日」と表示されるブックを保存してクローズ。再度オープンし、同じところにもう一度「2023/08/11」なり「2023/07/17」と入力すると、#VALUE! とはなりませんか?
こちらExcel365です。

(同志) 2023/07/27(木) 09:30:32


(同志)さんその通りになりました。
失礼しました。
(IT]) 2023/07/27(木) 10:26:48

ExcelAPIのFAQ
https://excelapi.org/faq/
Q. 「セキュリティの警告 Webサービス機能は無効になっています。」のメッセージが表示される
に記載の設定はどうなってるでしょう
(確認) 2023/07/27(木) 11:14:50

ExcelAPIについては#VALUE!が出る可能性があるってのはFAQにも書いてあるよね
そういうもんだと思って使ってる

>これ以降どうやっても
式の入ったセルで F2 → Enter でもダメ?
個人的にはこれで直らなかったことないけど、環境によるのかな
(ufj) 2023/07/27(木) 11:29:00


質問者を差し置いて途中から入ってきた(同志)ですが、セキュリティの設定は最大限ユルユルにしています。
あと、「#VALUE!が出る可能性」 とかではなく例外なく再現性があるので、1回#VALUE!が出ると、F2 → Enterやらダブルクリックやら再計算やら、何をやっても#VALUE!が消えることはありません。

新規のブックの段階では何回やっても正しく表示されるのに、一旦セーブしてしまうと2度とそのブックは使えない(#VALUE!が出てしまう)という状態です。
そんなことってあります? ほんま意味分からん。
新規ブックとセーブ後のブックの何の違いでこのようなことが起きるのか、どなたかお分かりではないでしょうか?

(同志) 2023/07/27(木) 13:58:58


 2016で試してみた。

 午前に試していた時は不規則にエラーが発生、一度エラーが発生しても日付を入れなおせばエラーがなくなるといった状況。

 この時気付いたことはエラーになる場合は日付を入力してエラーが出るまでほんの少し時間がかかっていたということ。
 エラーにならない場合はすぐに表示されていた。

 で、午後になってからは一度もエラーになっていない。

 一応保存して読み直すも何度かしているが午前午後とも上記の状況で変わりなし。

(ねむねむ) 2023/07/27(木) 14:14:33


 もしかしてエラーになるときって
 http://api.excelapi.org/datetime/holiday
 のサイトがタイムアウトしてる?
(ねむねむ) 2023/07/27(木) 15:05:16

ねむねむさん

症状としては、新規ブックの際、正しく表示される場合は少し時間がかかるときがあります。
ですが、エラーが出る場合(ブック再読み込み時)はすぐさま#VALUE!が表示され、全く考えていない(取得にいっていない)ようなかんじです。

(同志) 2023/07/27(木) 15:47:12


 これって使ってるPCの再起動で変わってくることはあるのだろうか?

(ねむねむ) 2023/07/27(木) 16:03:54


 本事象の事例を検索してみましたけど、他に1件みつかりました
 Webservice function not working anymore
https://www.excelforum.com/excel-formulas-and-functions/1395388-webservice-function-not-working-anymore.html

 で、解決方法が
 A security setting in Excel was blocking this function. I thought I disabled all these security settings.
 でした

 365特有 & セキュリティの設定の問題のような気がしていて

 WEBSERVICE関数を使ったブックを保存して、次回最初に開く場合は、
 セキュリティの警告 Webサービス機能は無効になっています とでて
 コンテンツの有効化のボタンが表示されますが(これは設定次第ですが)

 警告なしで無効になっる設定になってるのではというのが私の推測(たぶん正解確率5%くらい?)
(´・ω・`) 2023/07/27(木) 16:21:51

>365特有 & セキュリティの設定の問題のような気がしていて
でもなさそうです。
Office 2013 でもそうなります。

(IT) 2023/07/27(木) 20:17:21


他の WebAPIを使った場合はどうですか?

 =LET(
     x,WEBSERVICE("https://holidays-jp.github.io/api/v1/"&YEAR(A1)&"/date.csv"),
     y,WRAPROWS(SUBSTITUTE(TEXTSPLIT(x,CHAR({10,44}),,TRUE),"""",""),2),
     VLOOKUP(TEXT(A1,"yyyy-mm-dd"),y,2,FALSE)
 )

クエリで Web.Contentsを使って読み込むと特に不具合がないので 何となく ExcelAPI
と数式との相性の問題の気がします。
(d-q-t-p) 2023/07/28(金) 08:53:18


d-q-t-pさん

ご提案有難うございます。

ご提示いただいた数式でやってみましたが、結果は同じでした。
やはり、新規ブックの段階では何の問題もなく動作しますが、一旦セーブして再読み込みして使うと、もうダメでした(#VALUE!表示)。

私もExcelを30年以上使っていますが、挙動不審現象としてはかなり上位ランクに位置する気がします。

(同志) 2023/07/28(金) 10:09:54


>ワークシートを作成し、最初のページの
ページって何ですかね。
(わからん) 2023/07/28(金) 11:13:12

> ご提示いただいた数式でやってみましたが、結果は同じでした。
あらダメですか。「Holidays JP API」で不具合が出たことはなかったんですが……

そうすると環境設定の問題か。外部コンテンツの設定とか。
https://excelapi.org/faq/#q-%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E8%AD%A6%E5%91%8A-web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E6%A9%9F%E8%83%BD%E3%81%AF%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%AE%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B
(d-q-t-p) 2023/07/28(金) 11:36:06


わからんさん
すいません。その事項は関係ないのでしょうか。あまり使いこなしていないので表現の仕方がおかしかったらすいません。

同志さん
「エラーが出る場合(ブック再読み込み時)はすぐさま#VALUE!が表示され」ますよね。
そこで昨日、新規で作成し正常に動作するのを確認してから、日付のセルを削除してみました。すると違うエラー(日付が入ってないとかなんとか)が出てました。ですがそれ以降は更新すると#VALUE!エラーになってました。

本日再現しようとしましたが、今日は何度新規で作成しても、最初から #VALUE! エラーになってしまい、再現できていません。

みなさん、ありがとうございます。
(すずき) 2023/07/28(金) 11:59:49


#VALUE!が表示されたままの状態で
タスクマネージャーを起動してエクスプローラを選択して再開ボタンを押し実行したら
不具合は解消されました。(023/07/28(金) 08:30ごろ実行)
新規に保存して開いてみるとコンテンツ有効化は表示がでるけどこれをこれを押して消し
上書き保存すると次回から表示されない。
数10回、新規保存開くをしても #VALUE! 表示は出ないし日付を変更しても #VALUE! は出ません。
今日も試行してみましたが不具合は出ません。

試してみる価値はあると思いますよ。

(同志) 2023/07/26(水) 17:45:37 さんのも試してみましたが問題ありませんでした。

(IT) 2023/07/30(日) 16:06:12


ITさん

ご提案有難うございます。
ご提案に従ってみましたが、効果なしでした。
やはり、#VALUE! が出たまま、全く考えていない(取得にいっていない)かんじです。
何の差なのでしょうか?
取得にいっていないようなので、ローカルの環境の差かなとは思うのですが(ネットワークの内側の範囲内の問題)。
質問者のすずきさんは試してみました? ほんで結果はどうでしたか?

(同志) 2023/07/31(月) 11:12:05


>質問者のすずきさんは試してみました?
もちろん試しましたよ。
不具合は出ませんです。
本日も試行してみましたが問題ありませんけど。
>何の差なのでしょうか?
PC環境が違うんですかね。

(IT) 2023/07/31(月) 12:37:19


すずきさん=ITさん なのかな?
(ん?) 2023/07/31(月) 12:54:30

そうでなくても混乱してんのに、よく分からない回答はさらなる混乱の元。
単なるいたずら?
なんぼなんでも「すずきさん」=「ITさん」はないと思うけど・・・。

(同志) 2023/07/31(月) 13:06:54


>すずきさん=ITさん なのかな?
ITです。
>質問者のすずきさんは試してみました?
これは「すずきさん」に対してのことでしたね。
てっきり私宛のことだ思い込みしていました。
迷惑かけました。
(IT) 2023/07/31(月) 14:48:25

しつこくてすいません。
症状が出ない人には何にも興味がないのは分かってるんですが、ちょっとした発見があったんで一応ご連絡までと思いまして・・・。
B1に#VALUE!が表示された状態で、以下のようにマクロで数式を入力すると正しく表示されました。

 Range("B1") = "=WEBSERVICE(""http://api.excelapi.org/datetime/holiday?date=""&A5)"

でも、A5の日付を変えたり、B1を編集モードにするとすかさず#VALUE!が返されます(なぜか同じ日付ならエラー表示なし)。
ですが、再度上のマクロを実行すると、また正しく表示されるようになります。

うーむ。ますます分からなくなってしまいました。

(同志) 2023/08/01(火) 17:16:35


昨日発言しましたが、憶測に基づくものでしたので削除しました。
閲覧されたかたを混乱させてしまったとしたら済みません。失礼しました。
(xyz) 2023/08/02(水) 08:01:15

質問者です。

いろいろありがとうございました。

まず、「タスクマネージャーを起動してエクスプローラを選択して再開ボタンを押し実行」ですが、(右クリックで「再起動(R)」)しましたが解決しませんでした。

次に、「B1に#VALUE!が表示された状態で、以下のようにマクロで数式を入力する」では(同志)さんと同じ状況です。

すみません。(同志)さんのマクロで色々試しました。1時間ほどかかりましたが、わたくしの望む結果が得られるようになったのでご報告させていただきます。

セル上の演算のみでは「 #VALUE! 表示」が回避できないと思いました。

そこで、メインのシートに何月かを入力して他のシート(下記では「祝日判定」)の1日から末日に祝日を反映させるマクロ(VB?)を作りました。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = 3 And Target.Column = 6 Then
        Dim sht As Worksheet
        Set sht = Sheets("祝日判定")

        For dateCounter = 1 To 31
            sht.Range("c" & dateCounter) = "=WEBSERVICE(""http://api.excelapi.org/datetime/holiday?date=""&b" & dateCounter & ")"
        Next dateCounter

    End If

End Sub

おおむねこんな感じです。
みなさん、本当に有難うございました。
(すずき) 2023/08/02(水) 12:50:30


dateCounter 変数がセットされていませんよ。
(ききか) 2023/08/02(水) 20:54:06

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.