• ベストアンサー

ハイパーリンクの参照セルのズレは防げるか?

Excel 2002 を使用しています。 1.Sheet1 のセル C3 および Sheet2 のセル A40 に文字列 CRCN-40094 が入力されてい   ます。 2.Sheet1 のセル C3 をアクティブにして、[挿入]→[ハイパーリンク]→[このドキュメ   ント内]を選択 3.[またはドキュメント内の場所]窓内の“Sheet2”を選択した後で、[セル参照を入力し   てください]ボックス内に A40 を入力して[OK]をクリック 此れで、Sheet1!C3 は Sheet2!A40 にハイパーリンクされた状態になります。 同様の操作で、Sheet1 のセル C4、C5 を Sheet2のセル A56、A70 にそれぞれハイパーリンクさせます。ここで… 4.Shee2 の1行目に1行挿入 この場合、Sheet1 のセル C3、C4、C5 のハイパーリンク先も Sheet2 の セル A41、A57、A71 にそれぞれ1行(ステップ4で挿入した行数分)下に移動して欲しいのですが、そうはなりません。何か簡単な方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#262398
noname#262398
回答No.4

#3のNNAQです。 HYPERLINK関数のヘルプを良くお読み頂ければお解かりになると思いますが、 リンク先は、ブック名から指定して「" "」で囲むか、 またはリンク先が入力されたセルを参照させなければなりません。 =HYPERLINK("[Book1.xls]Sheet2!A40","CRCN-40094") のようになります。 同一ブックの場合は特殊記号の「#」を使って =HYPERLINK("#Sheet2!A40") 同一シートなら =HYPERLINK("#A40") で、OKです。 でもこれだと文字列ですから、関数じゃなくてハイパーリンクの挿入と同じで、リンク先は移動しませんよね。 ですので、セル参照を文字列で返すCELL関数を使えば、行の挿入等の影響は受けません。 CELL関数を使うと、ブック名から指定してしなくても良いみたいですし。 応用で、例えば =HYPERLINK(CELL("address",INDEX(Sheet2!A:A,MATCH("CRCN-40094",Sheet2!A:A,))),"CRCN-40094") とかすれば、任意の文字列に対して、或いはそのセル番地が不明でも リンクさせることが出来ます。

noname#204879
質問者

お礼

ブック名の「.xls」を付け忘れておりました。 特殊記号の「#」が使えることも知りませんでした。 有益な情報をありがとうございました。

その他の回答 (3)

noname#262398
noname#262398
回答No.3

HYPERLINK関数を使うのはダメですか? =HYPERLINK(CELL("address",Sheet2!A40),"CRCN-40094") こんな感じで・・・

noname#204879
質問者

補足

HYPERLINK関数なるものを知りませんでした。 ヘルプ文の最後に「同じブックの別のワークシートにジャンプするには、…」に従ってみたつもりですが、首尾良くは動作しませんでした。 また、=HYPERLINK(Sheet2!A40,"CRCN-40094") だと動作せず、お示しの =HYPERLINK(CELL("address",Sheet2!A40),"CRCN-40094") だと希望通りの動作をするのはなぜなのかが理解できません。解説いただけないでしょうか?

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 通常、そういう場合は、Sheet2 側のA40 に文字列 CRCN-40094 のセルを、名前-定義 例えば、「JUMP1」で登録します。そして、ハイパーリンクで、「定義された名前」で、「JUMP1」にすれば、行が挿入されても、目的の場所に移動してくれます。 もともと、ハイパーリンクの中の登録先は、文字列なので、文字列自体を書き換えるのは、マクロなどでないと難しいのです。だから、最初から、名前-定義にしておくのが簡単だと思います。 見当はずれでしたら、また、考えてみます。

noname#204879
質問者

お礼

なるほど。範囲名という手段に思い至りませんでした。 ステップ3において、「“Sheet2”を選択した後で、[セル参照を入力してください]ボックス内に A40 を入力して」を「“定義された名前”の配下にある該当する“名前”を指定して」に読み替えると希望通りになることを確認しました。 適切なアドバイスをありがとうございました。

回答No.1

sheetが異なれば、あるsheetに対して行った操作の結果が他のsheetに反映されないのは当然だと思いますが… sheetの複数選択で同じ結果を反映させる事は可能ですが、mike_gさんがやりたいことはそういうことではないですよね?

noname#204879
質問者

補足

》 他のsheetに反映されないのは当然だと思いますが… 当該現象は同じシートでも発生します。当該現象は当然かも知れないと承知しているつもりです。しかし… Sheet1!C3 に式 =Sheet2!A40 あるいは =Sheet2!$A$40 を入力した場合、Sheet2 の1行目から40行目の間に1行を挿入したとき、Sheet1!C3 の式は自動的に =Sheet2!A41 あるいは =Sheet2!$A$41 に変化しますよね。それと同様の現象がハイパーリンク式でもあっても好いかなぁと。なければ、複数のハイパーリンク式を簡単に一括修正する方法でも良いのですが… 既にお気付きと思いますが、「sheetの複数選択で同じ結果を反映させる事」とは違います。

関連するQ&A

専門家に質問してみよう