プロが教えるわが家の防犯対策術!

エクセルであるサイトの検索結果を次々に窓を開いて表示させたいのですが、

A1~A10=検索文字、B1~B10==HYPERLINK("http://○○.com/?s="&A1~A10)

としたときに、B1のハイバーリンクをクリックするとエラーで
「サイトへのリクエストが正しくありません。」と出来ます。

これは、既定のブラウザがIEでない場合に表示されるらしいのですが、
コンパネから既定のブラウザをSleipnirからIE11に戻しましたが、
改善しません。

どうしたら良いのでしょうか?

質問者からの補足コメント

  • 以下の通り、質問文中段の文言を訂正します。

    誤:「サイトへのリクエストが正しくありません。」と出来ます。
    正:「サイトへのリクエストが正しくありません。」と出ます。

      補足日時:2020/11/30 17:29
  • うーん・・・

    ワードでも試しましたが、同じく
    「サイトへのリクエストが正しくありません。」と出ました。

    オフィスが悪いのでしょうか?

      補足日時:2020/11/30 18:10
  • うーん・・・

    他のサイトで2.3試しましたら、検索結果がIEで開きました。

    ということは、このサイトのあるサーバーの規制でしょうか。
    URLをそのまま打てば表示されるので規制はないものと思っていましたが、
    なんらかの規制があるのでしょうか。

    エクセルのエラーのコメント通りの症状でした。
    サイトが受け付けてくれないということなんでしょう。

    「サイトへのリクエストが正しくありません。」

      補足日時:2020/11/30 19:04
  • 現存する全てのサイトを試せる訳ではありません。
    2.3のサイトを試しただけです。
    対象のサイトは伏せさせて下さい。

    再度書きますが、
    検索結果を表示したいサイトで、サイトの検察窓に入力して表示されたURLは、
    以下の通りでした。
    http://○○.com/?s=○○(検索文字)

    だから、上記になるようにエクセルで作っています。
    A1が、検索文字
    B1が、=HYPERLINK("http://○○.com/?s="&A1)
    です。

    で、エラーの画像を付けておきます。

    「エクセルでハイバーリンクでWEBサイトを」の補足画像4
    No.4の回答に寄せられた補足コメントです。 補足日時:2020/12/01 13:27
  • 誤差も何も。
    検索結果を表示させたURLからコピーしていますし。
    また、他のサイトへのテストにしても、そのセルをコピーしてURL部分のみを
    他のサイト部分に変更してテストしてWEBが開けていますから。
    そもそもSYNTAXエラーならあのようなエラーメッセージにはなりませんよね。

    No.5の回答に寄せられた補足コメントです。 補足日時:2020/12/01 20:58
  • 仕方が無いので、別の方法でWEBを開いています。
    当該サイトでのエクセルのハイパーリンクでの作業は現状不可能と判断しました。

    No.7の回答に寄せられた補足コメントです。 補足日時:2020/12/07 18:40

A 回答 (10件)

No.9です。


いままでのご質問者のコメントで、ご質問者がアクセスしようとしているサイトは「cookieでのアクセス制御」は行われていないのではないかとの推測ができているようです。
しかし、No.7の回答でご説明したリファラーについての考察がコメントされていませんでした。
当方も、ご質問者の状況について他の要因を含めて再検討した結果、リファラーだけでなくuser agentが影響している可能性もあることが判りました。
ご質問者のEXCELのバージョンが不明ですが、もし、WEBタイプでないEXCELを利用されておられるなら、一度WEBタイプのMicrosoft 365(無料版)で同じことを試していただきたいと思います。
また、逆に現在WEBタイプのEXCELをご利用中で、本件の症状がでている場合、gmailやyahooメール等のWEBメールではない、いわゆるメーラーソフトで開くメールアドレスをお持ちなら、そのメールアドレス宛(自分宛)に「件名なし」本文は「アクセス対象のURL」というメールを送信し、受信したメール本文のURLリンクをクリックしたらどうなるか確認してみていただきたいと思います。
WEBタイプでないEXCEL、WEBタイプのEXCEL、メールからのアクセスとはリファラー情報やuser agentが異なると推測されるからです。
これで、今までと異なった状況が発現すれば、当該サイトがリファラーやuser agentによるアクセスコントロールを行っている可能性が高いと思われます。

この場合でも、

>一応、ブラウザ(IE11)にエクセルで出来ているB1のセル
>http://○○.com/?s=AAA(仮) を入れると検索結果を表示してくれます。

という状況であれば、VBAならエラーを回避できると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

どうしても他と同じ手順でその結果を出したいのではありません。

現在、ブラウザ側で同等以上の効率で
その作業ができることを確認しましたので、
その方法を取っています。

>WEBタイプでないEXCEL、WEBタイプのEXCEL、メールからのアクセスとはリファラー情報やuser agentが異なると推測されるからです。
これで、今までと異なった状況が発現すれば、当該サイトがリファラーやuser agentによるアクセスコントロールを行っている可能性が高いと思われます。

エクセルはオフィス2013か2016のものです。

>VBAならエラーを回避できると思います。

冒頭で書いたように、何が何でも同じ手順でそのサイトの検索結果を
表示したいわけではありません。

検索結果が表示できる簡単な方法が他にあるのなら、
そちらの方法を取ります。
それで、現在ブラウザ側で同等以上の作業成果を出せています。

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

お礼日時:2020/12/14 01:56

No.7、8です。


あまりに根本的な部分なので、思い込みで回答してしまいましたが、ご質問者がアクセスしようとしている「検索サイト」は、
「『メンバーがログインして利用するもの』ではない」という前提でよろしいのですよね?
例えば、この「教えて!goo」のようにログインして利用するものだと、ブラウザの状況(ログイン情報を保持しているか否か)により挙動が変わってしまうので。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

もちろん、ログインしなければならないサイトではありません。
誰もが検索できるサイトです。

お礼日時:2020/12/07 18:37

No.7です。

失礼しました。前回回答にタイプミスがありました。

誤:C1に「=text(B1,"@"」
正:C1に「=text(B1,"@")」

です。
お詫びして訂正いたします。
    • good
    • 0
この回答へのお礼

了解しました。

お礼日時:2020/12/07 18:37

No.1さんの回答でほぼ結論はででいると思いますが、


私の知る限りでは、IEを「既定のブラウザ」としている場合、このような症状がでるのは、基本的に検索サイト側の仕様の問題です。

>検索結果を表示したいサイトで、サイトの検察窓に入力して表示されたURLは、
>以下の通りでした。
>http://○○.com/?s=○○(検索文字)

ということは、ご質問者さんに試してみてもらいたいことが一つあります。
>B1~B10==HYPERLINK("http://○○.com/?s="&A1~A10
だとするならば
C1に「=text(B1,"@"」を記述して、C1セルに表示された「http://~」の文字列を、そのままIEのURLの窓に貼り付けてページを表示させたらどうなりますか?
おそらくページが正しく表示されないのではないでしょうか。

ご質問者さんがアクセスしようとしているURLの「?s=○○○・・・」という部分は一般にクエリパラメータとかURLパラメータなど呼ばれており、WEB閲覧ユーザーのリスクストに応じて、同じページフォームに異なるページ内容を表示したり、アクセス解析用のカウントに使用したりします。

同時に、このようなページはセキュリティー対策やサーバー負荷軽減のため、リファラーチェックやcookieでのタイムスタンプによる制御などを行っている可能性があります。

もし、上記のC1セル直接コピーでIEが正常にページを表示するなら、ご質問者の現在の症状を回避する方法を思いつきません。

しかし、上記のC1セル直接コピーでIEが当該ページを表示しない状況なら、ご質問者の現在の症状を回避するには、まず、当該サイトの検索ページを表示させてから、「キーワードを入れて」検索する必要があります。
VBAなら可能ですが、HYPERLINK関数では困難だと思います。
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>ということは、ご質問者さんに試してみてもらいたいことが一つあります。
>B1~B10==HYPERLINK("http://○○.com/?s="&A1~A10
だとするならば
C1に「=text(B1,"@"」を記述して、C1セルに表示された「http://~」の文字列を、そのままIEのURLの窓に貼り付けてページを表示させたらどうなりますか?
おそらくページが正しく表示されないのではないでしょうか。

これはどこかに書いたと思いますが、
正しく表示されます。
クッキー等の影響も考えて、検索文字というか物を特定するために、
正確にはコード(仮に、WEB-1234)とかですが、W-1235にしても
正しく表示されているのでクッキーの影響無しで正しく表示されていることを確認できます。

お礼日時:2020/12/07 18:36

サイト名が不明ですが 大手サイトでない限り「検索文字列」はエン


コードしておく必要があるかと思います。
https://dekiru.net/article/4482/
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

一つ勉強になりました。

しかし、今回の場合は、私の書き方が悪かった点もありますが、
検索文字と書いていますが、個を特定するために、
コードや記号で検索していますので、
エンコードを掛けても、コードはコード、記号は記号でした。

また、対象サイトで文字で検索した場合も補足で書いている通り、
http://○○.com/?s=山田太郎(例えば)と対象サイトのアドレス欄に
表示されているので対象サイトでは、文字列のエンコードの必要は無いようです。

コードや記号で検索した場合も、下記の様にそのままのURLが表示されていました。
http://○○.com/?s=W12(例えば)

お礼日時:2020/12/03 18:22

サイトへのリクエストが正しくありません。

というのが、文字通りであるとすれば、
ハイパーリンクの編集にした時にリンクが表示されているか?
そのリンクのテキストと、本来のサイトのテキストを
上下並べても誤差が無いかを確認してみる。とかはやってみました?
この回答への補足あり
    • good
    • 0

その際ととは、全部OKだけど、ひとつだけダメということですか?


サイト自体が死んでる?もしくは、余計なスペースとか入ってない?
画像貼ってみて。
この回答への補足あり
    • good
    • 0

=HYPERLINK("

https://www.google.com/search?q="&(A1))
開くけど?
    • good
    • 0
この回答へのお礼

そうですよね。開きますよね。

既に補足で書いたようにグーグルを含め他のサイトで試したところ、
きちんと開きました。

検索結果を表示したいサイトで、検察窓に入力して表示されたURLは、
以下の通りでした。
http://○○.com/?s=○○(検索文字)

このようになるようにエクセルで、A行に検索文字、B行にHYPERLINKを入れていますが、そのサイトだけ(?)が「サイトへのリクエストが正しくありません。」とエラーになってしまうのです。

お礼日時:2020/12/01 13:10

ブラウザは、Chromeでも普通に開きます。


リンクが、反映認識されていないのではないでしょうか?
計算式が合っていても、青くなっていますか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>ブラウザは、Chromeでも普通に開きます。

そうなんですね。
Chromeは過去に情報漏れの疑いがある危険なブラウザと記事を見てから、
インストはしているものの、特別な時しか基本的に使っていませんのでしりませんでした。

>リンクが、反映認識されていないのではないでしょうか?
計算式が合っていても、青くなっていますか?

もちろんそうですよ。
青くなっていなければ(ただの文字列ならば)、クリックしたとき質問のエラーは出るはずがありませんから。

お礼日時:2020/12/01 11:27

こんにちは



ご質問文だけからではよくわかりませんが、エクセルのハイパーリンクは、
アドレスが間違っている場合には
 「リクエストしたアイテムが見つかりませんでした」
といったエラーになるようです。

一方で、検索サイトのリクエストの仕様は、基本的に検索サイト依存です。
正しい構文でリクエストすれば、ご質問のように関数を利用して文字列の連結で検索結果を表示させることは可能です。

また、普通の検索サイト(yahooやgoogleなど)では、検索のsearch部分がおかしな構文になっていても、無視をして、検索サイトのトップページを表示すると思います。(この対応は検索サイトに依存します)

想像するところ、ご利用なさろうとしているサイトの仕様に合っていないリクエストをして、何らかのエラーになっているのではないでしょうか?
そのままをブラウザに直接アドレスとして指定した場合に、正しく表示できるのでしょうか?(できないのではなかろうかと推測します)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

一応、ブラウザ(IE11)にエクセルで出来ているB1のセル
http://○○.com/?s=AAA(仮) を入れると検索結果を表示してくれます。

したがって、エクセルとブラウザとの関連性のエラーかと思っています。

エクセルもオフィス2016のエクセルなので問題無いと思っています。

お礼日時:2020/11/30 17:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!