[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
(すずき) 2023/07/26(水) 17:24:50
正しく表示されるブックを保存し、再度開きなおして編集とかすると、#VALUE! が返り、2度と正しく表示されなくなったりしませんか?
ほんとに謎です。
(同志) 2023/07/26(水) 17:45:37
(同志) 2023/07/27(木) 09:30:32
>これ以降どうやっても
式の入ったセルで F2 → Enter でもダメ?
個人的にはこれで直らなかったことないけど、環境によるのかな
(ufj) 2023/07/27(木) 11:29:00
新規のブックの段階では何回やっても正しく表示されるのに、一旦セーブしてしまうと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
(IT) 2023/07/27(木) 20:17:21
=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
ご提案有難うございます。
ご提示いただいた数式でやってみましたが、結果は同じでした。
やはり、新規ブックの段階では何の問題もなく動作しますが、一旦セーブして再読み込みして使うと、もうダメでした(#VALUE!表示)。
私もExcelを30年以上使っていますが、挙動不審現象としてはかなり上位ランクに位置する気がします。
(同志) 2023/07/28(金) 10:09:54
そうすると環境設定の問題か。外部コンテンツの設定とか。
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
試してみる価値はあると思いますよ。
(同志) 2023/07/26(水) 17:45:37 さんのも試してみましたが問題ありませんでした。
(IT) 2023/07/30(日) 16:06:12
ご提案有難うございます。
ご提案に従ってみましたが、効果なしでした。
やはり、#VALUE! が出たまま、全く考えていない(取得にいっていない)かんじです。
何の差なのでしょうか?
取得にいっていないようなので、ローカルの環境の差かなとは思うのですが(ネットワークの内側の範囲内の問題)。
質問者のすずきさんは試してみました? ほんで結果はどうでしたか?
(同志) 2023/07/31(月) 11:12:05
(IT) 2023/07/31(月) 12:37:19
(同志) 2023/07/31(月) 13:06:54
Range("B1") = "=WEBSERVICE(""http://api.excelapi.org/datetime/holiday?date=""&A5)"
でも、A5の日付を変えたり、B1を編集モードにするとすかさず#VALUE!が返されます(なぜか同じ日付ならエラー表示なし)。
ですが、再度上のマクロを実行すると、また正しく表示されるようになります。
うーむ。ますます分からなくなってしまいました。
(同志) 2023/08/01(火) 17:16:35
いろいろありがとうございました。
まず、「タスクマネージャーを起動してエクスプローラを選択して再開ボタンを押し実行」ですが、(右クリックで「再起動(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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.