Excelシート間リンク設定の一括方法とは?

このQ&Aのポイント
  • エクセルでシート間のリンク設定を一括で行いたい場合、【シート(1)】のB列の各セルをクリックした際に、指定したシート(2)の特定のセルへリンクさせる方法があります。
  • 現状では、【シート(1)】のB列の各セルにハイパーリンクを設定しており、各セルごとにリンク先のシートとセルを指定していますが、一括で設定する方法をご教示いただきたいです。
  • 【シート(1)】のB列には注釈ありとなしのセルがランダムにあり、それぞれ連番順に【シート(2)】に記載されるようになっています。一括でリンク設定する方法があれば、ご教示ください。
回答を見る
  • ベストアンサー

シート間リンクの一括設定

エクセルで、下記のようなシート(1)「B列」からシート(2)へのリンク設定を 一括でおこないたいのですが、何かいい方法はありませんでしょうか? -----------------エクセル同一ファイル--------------------- 【シート(1)】 行番  A列        B列  1  あいうえお  2  かきくけこ    注釈(1)  3  さしすせそ  4  たちつてと    注釈(2)  5  なにぬねの    注釈(3) (以下続く 数千行) 【シート(2)】 行番   A列       B列  1   注釈(1)     注釈内容  2   注釈(2)     注釈内容  3   注釈(3)     注釈内容 (以下続く) --------------------------------------------------------------- ※【シート(1)】の“B2”セルをクリックすると、【シート(2)】の“B1”セルへリンク。 同様に【シート(1)】“B4”セルをクリックすると、【シート(2)】の“B2”セルへリンク・・・・と、 注釈内容を別シートへリンクさせたいのですが。 現状では、【シート(1)】のB列「空白以外のセル」のみを表示させて、各セルごとに ハイパーリンク先のシートとセルを一つずつ指定しています。 【シート(1)】B列の注釈あり/なしはランダムで、連番付けし、 【シート(2)】へは、それぞれ連番順に記載されます。 このリンクをなんらか一括で設定できればと思うのですが、ご指摘頂ければ幸いです。

  • genon
  • お礼率90% (9/10)

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

1回こっきりの作業みたいなので、あんまりスマートな方法ではありませんが・・・ とりあえず、『 【シート(1)】のB列と同じ文字が【シート(2)】のA列にあればそこへのリンクを張る 』 というマクロを作成してみました。(エクセル2000で動作確認) (シート1のB列の文字(注釈(1)など)と、シート2のA列の文字が完全に一致していることを条件にしています。A列の注釈番号と行番号が一致していると仮定せずに、全部を逐次比較をしているので若干時間がかかるはずです。) Sub test()  Dim i, j, k, v, tEnd, st1, st2  Const s1 = "シート(1)", s2 = "シート(2)"  Set st1 = Sheets(s1)  Set st2 = Sheets(s2)  tEnd = st2.Cells(65536, 1).End(xlUp).Row  For i = 1 To st1.Cells(65536, 2).End(xlUp).Row   v = st1.Cells(i, 2).Value   If v <> "" Then    j = 1    k = ""    While (k = "") And (j <= tEnd)     If st2.Cells(j, 1).Value = v Then      k = "'" & s2 & "'!B" & CStr(j)      st1.Hyperlinks.Add Anchor:=st1.Cells(i, 2), Address:="", SubAddress:=k     End If     j = j + 1    Wend   End If  Next i End Sub

genon
質問者

お礼

fujillinさん ご回答頂いた方法で、リンクを一括設定できました。 有難うございました。

関連するQ&A

  • エクセル:複数シートの一括処理

    お世話になります。 エクセルで1つのブックに複数のシートがあります。 書式は同じですが行数がそれぞれ違います。 A列で、データが入力されている一番下のセルの次の行から、エクセルの最終行である65536行までの行を全て選択して「削除」をしたいのです。(行の削除)しかも全シート一括で。 A列でデータが入っている一番下のセルがA550だった場合、551行~65536行までを全て選択→削除を行う。 これらの作業をするためのマクロを教えてください。

  • エクセルのシート間のリンクの設定について

    エクセル2000を使っているのですが、質問があります。シート1に横(列ごと)にオートサムで合計が集計されているセルをシート2に縦(行ごと)にリンクさせて貼り付けることは出来ないでしょうか?ひとつひとつ貼り付けていけばいいとは思うのですが、数が多いのでまとめて出来る方法があれば教えていただけませんか?解りづらい質問ですみません。

  • Excelシート上のハイパーリンクの一括削除

    Excelシート上にあるハイパーリンクの一括削除はできるのでしょうか? 現在、ある列にハイパーリンクされたデータがあります。 これを、列全体を一括でリンク解除したいのです。 セル毎に、右クリック→ハイパーリンク(H)→ハイパーリンクの削除 で一つずつ解除出来ますが、これを列単位で一括して行いたいです。 よろしくお願いいたします。

  • Excelチェックボックスのリンクするセル一括

    Excelでチェックボックスのリンクするセルを一括設定したいです。 sheet1に複数のチェックボックスを作成し、それぞれのリンクするセルをsheet2に入れたいのですが、チェックボックスが数10個あるので、1つづつやっていると手間がかかります。 例 sheet1のB2のリンクするセルをsheet2のB2 sheet1のB3のリンクするセルをsheet2のB3 sheet1のB4はsheet2のB4 … 一括でやる方法(多分VBA)はわかりますか。

  • シート名を参照して、そのシートにリンクを貼るには?

    エクセル2003を使っています。 シート名をまとめて1つシートに表示し、表示したものをクリックすると、 該当するシートのA1セルに飛ぶようにしたいのですが、どうすればよいでしょうか? 例えば、シート名「シートA」~「シートG」というシートがあるとして、 シートZのA1に「シートA」、A2に「シートB」、、、と表示させて、 シートZのA1をクリックするとシートAのA1に飛ぶ、A2はシートBのA1に飛ぶ、といった具合にしたいのですが。 シートの数が多いので目次のように使いたいと思っています。シート名は文字列で、連番のようにはなっていません。 よろしくお願いします。

  • 複数シートを通して連番を振るマクロ

    マクロ初心者です エクセルワークシートが6枚あります。 シート1枚目のA列にB列データがある行まで連番を振ります(可変)1-100 シート2枚目のA列にはB列データがある101-195 シート3枚目のA列には196-305など ...... となるようにしたいです。 1枚目の最終行を取得して連番を振ることは出来たのですが、2枚目の始まりをどのように書いたらよいのか分かりません。 宜しくお願いします。

  • エクセルのハイパーリンクの設定方法

     早速ですが困っています。。。 質問)エクセルシート(1)のA列のセル毎に1~3000までの数字を入力しました。 エクセルシート(2)のA列のセルに上からランダムに数字を入力した際、その数字をクリックするとシート(1)のA列に入力した同じ数字のセルにリンクする様(例えばシート(2)A13のセルに『234』を入力 → シート(1)のA列記載の『234』のセルにリンク)、シート(2)のA列に一括でリンクを設定したいのですがどの様に良いのか教えて下さい。  宜しくお願い致します。

  • VBAでB列のファイルパスにリンクを貼りたい

    いつもお世話になっております。 特定のフォルダ内にエクセルファイルが毎月増えていくのですが、このフォルダに入っているエクセルファイルのフルパスの一覧を別のエクセルシートのB列に毎月コピペしています。 月10-20のエクセルファイルがリストに追加されていきます。 この増分のパス(B列)にリンクを貼りたいのです。 B列には既に400件以上のファイルパスが入っているので、毎回上からB列の全部のセルにリンクを貼り直すのではなく、増分(B列の最下行+1行目)以下のセルにリンクを張るBVAを教えて頂きたいのです。 当方教えて頂いたコードとマクロの記録の組み合わせがどうにか出来るレベルなので宜しくお願いします。 但し、B列の140行目迄には空白を含むパス以外の文字が入っています。 パスは141行目以降に空白なく入っていきます。

  • Excel2000:複数シート同座標セルから、別シート一覧を連番で参照するには?

    同一のExcelファイル中に、30シートあるとします。 これらはどれも同じフォームで、全てのシートの同座標セルに連番をとりたいとします。 その連番のナンバーは、31番目のシートに一覧になっています。 この30ものシートの同座標セルから、31番目の一覧にひとつずつズレて参照させるには、どうしたらいいでしょうか。 例) 1シートA1に、31番目シートA1の「No.1-1」 2シートA1に、31番目シートA2の「No.1-2」 ※ちなみに、30シート分のフォームが既にあり、後で一覧のシートを追加するという前提です。 今は一つずつのシートを開けて、31番目シートの一覧へ、一つ一つリンクさせているだけです。 でも、これをやってるとシートが多くなると面倒なんですよね。 多分一括で出来るやり方がExcelにはあると思うんです。 ただし、私はVBはまったくの素人なので、表示形式や関数で教えていただけると嬉しいです。 また、なぜそういうやり方になるのかも、お勉強のために解説していただけると尚嬉しいです。 よろしくお願い致します。

  • Excelのシートへのリンク

    Excelのブックにあるシート名をA列のセルに入れてあります。これをシートにリンクさせたいのですが、マクロで簡単にできませんか?現状は、1つ1つ、ハイパーリンクしています。

専門家に質問してみよう