質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.75%

  • Excel

    1403questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

エクセルのHYPERLINK関数

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 265

ExcelVBAer

score 917

同Excelアプリ内で開かれている別ブックの特定セルに対して、
HYPERLINK関数で参照できるようにしたいのですが、
正しい設定方法が分からず困っています。

開かれていない別ブックに関しては、
以下のようにすれば参照できたのですが、
毎回セキュリティ確認ダイアログが表示されるので、
ブックを開いた状態からリンクで参照できればと思います。

構文:=HYPERLINK([BookPath]'SheetName'!Address)
例文:=HYPERLINK("[C:\Users\UserName\Downloads\Book1.xlsx]'Sheet1'!B2","link")
URL:https://goo.gl/nrrNrw

同Excelアプリ内で開かれている別ブックの特定セルに対して、
HYPERLINK関数で参照できる方法を、
ご存知でしたら教えて頂けますと助かります。


【追記1】
同Excelアプリ内で開かれている別ブックに対して、
数式で単なる参照をした場合に「='[Book1.xlsx]Sheet1'!$A$1」となりますが、
該当ブックを閉じると「='ブックのパス[Book1.xlsx]01'!$B$8」と、
数式内のパスの部分が調整されるので、
HYPERLINK関数でも同様にパスの指定方法が違うのだと推測しています。

ただ、数式と同じ調整ではHYPERLINK関数が認識してくれず、
特有の調整が必要なんだろうと思います。

できそうで出来ないもどかしさと、
やはり該当セルをクリックすることで該当箇所に移動できる利便性から、
なんとかならないのか、と悩んでおります。

また、セキュリティ上、信頼できる場所が変更できない環境という事もあり、
ダイアログが出ないよう設定を調整する方法は難しいと思っております。


【追記2】参考までにHYPERLINK関数の分かっている事を記載します
・同じブックの別シートのセルを参照する場合
=HYPERLINK("#'Sheet1'!A1","link")

・閉じている別ブックを参照する場合
=HYPERLINK("[ブックパス\Book1.xlsx]'Sheet1'!B2","link")

・開いている別ブックを参照する場合
※これが分かりません。
NG:=HYPERLINK("[ブックパス\Book1.xlsx]'Sheet1'!B2","link")
⇒毎回セキュリティのダイアログが出てきます

NG: =HYPERLINK("[Book1.xlsx]#'Sheet1'!A1","link")
⇒参照が正しくないとおこられます

NG: =HYPERLINK("#[Book1.xlsx]'Sheet1'!A1","link")
⇒参照が正しくないとおこられます

・・・分かってしまえば的なものだと思うのですが、どうすればよいやら。。。

どうぞ宜しくお願い致します。


【追記3】解決方法
・開いている別ブックを参照する場合
OK: =HYPERLINK("#'[Book1.xlsx]Sheet1'!A1","link")

セキュリティに関するダイアログが出なくなり、
画面遷移の挙動もスムーズになりました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

check解決した方法

+2

ご回答頂いた皆様、ありがとうございました!

色々なパターンを試して、ようやく分かりました!

=HYPERLINK("#'[Book1.xlsx]Sheet1'!A1","link")

この書き方で参照できました!

ポイントとしては3点です。
・パスの最初に「#」
・ブック名は[]で囲む
・ブック名+シート名を[']で囲む

色々なアドバイスを頂き、
本当にありがとうございました!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/07 16:27

    質問の追記殆ど見てなくて、別アプローチでの回答になってましたね。スミマセン。
    手動でも自動でも、とにかくブックを開いておきさえすれば、解決した記述でメッセージは出ないってことですね。

    キャンセル

  • 2018/06/07 16:33

    コメント欄でもお知らせすればよかったです汗
    なんかスミマセン。。。

    解決した方法ではメッセージも出ないですし、
    画面遷移の挙動も異なります。

    手動・自動は計算方法の事でしょうか??

    キャンセル

  • 2018/06/07 16:40

    >手動・自動は計算方法の事でしょうか?
    いえ、複数ブック開いておくってことではないのですか?

    キャンセル

  • 2018/06/07 16:40 編集

    もちろん、複数ブックを開いて参照を試しています。

    確認した手順としては、以下の2通りで、どちらも同じく解決できてました。
    ・手動でブックを開く ⇒ 解決方法で参照
    ・フルパス指定のHYPERLINKでブックを開く ⇒ 解決方法で参照

    キャンセル

  • 2018/06/07 16:43

    リンクした方法は試していますが、ブックを開くのには特に問題なかったので、ネットワーク共有先のファイルを開く時などには使えそうだと思いました。

    キャンセル

  • 2018/06/07 16:43

    あ、参照先が新規ブックだと、参照が正しくない、とおこられちゃうみたいですね(汗)

    キャンセル

  • 2018/06/07 16:44

    成程、フルパスでもOKなんですね。

    キャンセル

  • 2018/06/07 16:48

    フルパスでも開けますが、セキュリティダイアログは出ちゃいます(汗)
    言葉足らずですみません! !
    フルパスHYPERLINK ⇒ ダイアログでOK ⇒ ブックが開く ⇒ 解決HYPERLINKで参照
    というケースです(万が一というレベルの確認です...)

    キャンセル

  • 2018/06/07 16:48 編集

    あ、両方開いているときだけ動作すればよかったのですね。(この回答のだとBook1が閉じているときは動きませんよね?)
    自分の中で勝手に「開いていないときは新たに開く」も要件にしてしまって難しく考えすぎていました^^;
    なにはともあれ解決してよかったです!

    キャンセル

  • 2018/06/07 16:51

    フルパスの場合どのような記述ですか?
    =HYPERLINK("#C:\XXX\'[Book1.xlsx]Sheet1'!A1","link")
    とかだと駄目でした。

    キャンセル

  • 2018/06/07 16:52 編集

    >ladybird さん
    Book1, Book2 と開いた状態で、 Book1のシートAにHYPERLINK関数を設置し、
    Book2のセルを参照する事が目的でした。
    説明不足で申し訳ないです(大汗)

    キャンセル

  • 2018/06/07 16:55

    >sazi さん
    閉じている別ブックを参照する場合は、
    =HYPERLINK("[パス\Book1.xlsx]'Sheet1'!B2","link")
    という記述でブックを開く+該当セルへ移動 ができますよ~
    ※#の記述とか、[']の記述が異なるのが面倒です。。。

    キャンセル

  • 2018/06/07 16:57

    ああ、質問に書いてありましたね。。orz

    キャンセル

+1

残念ながら、同じアプリで開いていようと開いていまいと、EXCELシートからすれば「別ブックを参照する」というルートは同じです。
「セキュリティ確認ダイアログを出したくない」という要望であれば、ダイアログが出ている原因によっては出さないようにできるかもしれません。なんというメッセージが表示されますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/07 12:30

    「参照する」という言葉が適切でなかったようで、念の為に捕捉させてください。
    HYPERLINK関数はハイパーリンクを数式で作成できるもので、
    選択する事で該当セルへ移動できるできるようになります。

    ご質問の回答としましては、以下のようなメッセージです
    *****************************************************
    タイトル:Microsoft Excel のセキュリティに関する通知
    内容 :セキュリティに影響を及ぼす可能性のある問題が検知されました。
    この場所は安全ではない可能性があります。
    ---[リンク先のパス]---
    ハイパーリンクは、コンピュータとデータに被害を与える場合があります。
    コンピュータを保護するためには、リンク先が信頼できる場合のみハイパーリンクをクリックしてください。

    続行しますか? YES / NO
    *******************************************************

    使うのが自分だけなら良いのですが、不特定な環境に配布するもので、
    また、セキュリティの設定で信頼できる場所が変更できないようになっています。

    自ブックの別シートを参照したり、
    他ブック(閉じた状態)の別シートを参照したりできているので、
    パスの指定について何らかの調整すれば、
    ダイアログが出ないですむのではと推測しております。

    どうぞ宜しくお願い致します。

    キャンセル

  • 2018/06/07 13:15 編集

    コメント・追記ありがとうございます。
    「リンクを押すたび」だとしても内部では新たに開くのと同じ動きになっているのではないかと思っての回答でした。

    いまのところはsaziさんが追記されている方法しかないでしょうか・・・
    パスの部分の調整を試してみてできそうなら追記します。

    ---追記
    絶対⇔相対を切り替えても、結局は開くような処理が走るのは変わらないかもしれませんが;

    キャンセル

  • 2018/06/07 13:19

    そうなんです!フルパス指定だと、毎回開く処理が走ってダイアログが出ている感じです。

    自分もパスを調整して、もう少し色々試してみます!

    キャンセル

  • 2018/06/07 15:13

    自分の環境がExcel2010なので試せないのですが、
    2013以降なら、FORMULATEXT関数を使ってパスを取得できないでしょうか?
    =HYPERLINK(FORMULATEXT(開きたいセルを単純参照するセル))
    みたいなイメージです

    キャンセル

+1

(ハックされないように)セキュリティの観点から、VBAでセキュリティを無効にすることはできないようです。
取り敢えずは、作業するブックでの設定等で回避するしか無いのではないかと。
2回目からはマクロの警告しません

追記

こちらが参考になるかもしれません。
Excelのハイパーリンクで警告を出さない方法

上記とは別に、Worksheet_FollowHyperlinkイベントでイベントキャンセルできるかなと思いましたが、イベント発生前にメッセージが出るので、駄目でした。
ハイパーリンク形状のセルにして、イベントでは自前でファイル開くとかも考えましたが、似せた形状にするのが面倒そう。

後は、セキュリティセンターのレジストリをVBEで弄るのが最後の手段ですかね、。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/07 11:35

    お言葉ですが、まだマクロが原因とは決まっていないのでは・・・(ネットワーク上のファイル等)
    うっかりモジュールが作られてしまった系ならモジュールを解放すれば解決しますし。

    キャンセル

  • 2018/06/07 11:51

    断言してるつもりはなくて、情報提供的な回答です。
    ExcelVBAerさんは経験豊富な方ですし。

    キャンセル

  • 2018/06/07 12:32

    すみません。。。「参照する」という言葉が適切でなかったようで、念の為に捕捉させてください。
    HYPERLINK関数はハイパーリンクを数式で作成できるもので、
    選択する事で該当セルへ移動できるできるようになるものです。

    要望としては、セキュリティを無効化するという方向ではなく、
    HYPERLINK関数で、開いている別ブックのセルを参照(セル選択時に該当箇所へ移動)できるようにしたい、という内容になります。

    どうぞ宜しくお願い致します。

    キャンセル

  • 2018/06/07 12:42

    質問するのに慣れておらず、また説明不足ですみません。
    質問内容を追加しましたが、不足ありましたらご指摘頂けますと幸いです。
    どうぞ宜しくお願い致します。

    キャンセル

  • 2018/06/07 13:18

    >saziさん
    質問者の方がそう判断できることを見越して、だったのですね。失礼しました。

    キャンセル

  • 2018/06/07 13:20

    saziさん 追記ありがとうございます!
    VBAのハイパーリンクにこんな方法があったとは!

    キャンセル

  • 2018/06/07 13:24

    URL説明の中で、『「ScreenTip」は通常のハイパーリンクを設定する画面では設定できない』とありますけど、
    設定画面の右上の「ヒント設定」ボタンでできそうですね~

    キャンセル

  • 2018/06/07 13:26

    開く動作は自前なのでどのみちイベントは作らないと駄目ですね。

    キャンセル

  • 2018/06/07 13:27

    こちらの環境でも、「Worksheet_FollowHyperlink」の前にダイアログが出てしまいました。。。

    VBAを使うなら、該当セルをハイパーリンク的な色にしておいて、SelectionChangeイベントで拾ってなんとかするか。。。

    けど、HYPERLINK関数で出来るハズなんで、
    もう少し頑張ってみます。。。

    キャンセル

  • 2018/06/07 13:28

    >ハイパーリンクを設定していますが、「address」は””にします。
    は行ってます?

    キャンセル

  • 2018/06/07 13:34

    しまった!忘れてました(^^;) なんかハッカー的ですね!

    キャンセル

0

他の回答で色々やりとりしてますが、実質的な質問としては以下でよいのですよね?

同Excelアプリ内で開かれている別ブックの特定セルに対して、
HYPERLINK関数で参照できるようにしたいのですが、
正しい設定方法が分からず困っています。

質問にある以下で問題なく参照できましたが、どのようになってしまうのでしょうか?

例文:=HYPERLINK("[C:\Users\UserName\Downloads\Book1.xlsx]'Sheet1'!B2","link")

追記
HYPERLINK関数を使わないといけない理由があるのでしょうか?
メニューから挿入するハイパーリンクであれば、開いてあるブックであれば警告は出ないようですが。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/07 15:52

    ご質問にあるパスの指定だと、セキュリティに関する通知、というダイアログが毎回(ハイパーリンクで開いた後も)表示されてしまうのです。
    ※ttyp03 さんの環境で出ていないのであれば、該当ブックが信頼できる場所に指定されている可能性が考えられます。

    あちこち参照するので、毎回ダイアログが出ると作業効率が悪いので、
    ダイアログが出ない方法を模索している次第です。

    HYPERLINK関数の挙動から察するに、
    フルパス指定だと、該当ブックが開かれてようが、開かれてなかろうが、
    同様の処理になってダイアログが出てしまうのだと思います。

    また、数式(「=A1」等)で外部ブックを参照した場合に、
    該当ブックが開かれている時と、
    該当ブックが閉じている時とで、
    数式内部の参照パスが変動しているので、
    HYPERLINK関数でもパスを調整(フルパスではなく、ブック名のみ等)をすれば、ダイアログが出ずに参照(該当セルに移動)ができる可能性が高いと考えております。

    キャンセル

  • 2018/06/07 16:01

    なるほど。詳しい説明ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.75%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Excel

    1403questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。