• 締切済み

Hyperlink関数をクリックしてくれるマクロ

どなたか詳しい方教えていただけないでしょうか? ExcelのセルA1に以下のhyperlink関数を入れています。 =HYPERLINK(″#C″&MATCH(B1,C:C),″クリック″) 隣のB1に入れた数字を元にC列に存在する同じ数字先にジャンプするように関数を作ってます。 A1にできたリンクをクリックしたは、B1に入力されているものと同じ数字先のC列に飛ぶようにマクロを組みたいのですが、どうしたらいいでしょうか? ハイパーリンク関数がマクロに組み込めないのと色々調べてみましたがうまくいかないのでお手上げです。 どなたか詳しい方教えていただければと思います。 どうぞよろしくお願いします!

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.3

B1セルが書き換わったら、 B1に埋まった値と同じ値をC列の最終行から上方向に探し 最初に見つかったセルにリンクするHYPERLINKを A1セルに書き込む という動作でよければ、添付のようなコードでいかがでしょうか? Private Sub Worksheet_Change(ByVal Target As Range)    Dim HitRow As Long  Dim HitFlg As Boolean  Dim LastRow As Long  Dim i As Long    If ((Target.Row <> 1 Or Target.Column <> 2)) Then Exit Sub    LastRow = Cells(Rows.Count, 3).End(xlUp).Row  HitFlg = False    For i = LastRow To 1 Step -1   If Target.Value = Cells(i, Target.Column + 1).Value Then    HitFlg = True    Exit For   End If  Next i    If HitFlg = False Then   MsgBox "該当行が見つからない"   Exit Sub  End If    Hyperlinks.Add Anchor:=Cells(Target.Row, Target.Column - 1), Address:="", SubAddress:= _   "C" & Format(i, "0"), TextToDisplay:="クリック"   End Sub

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

ここへ質問しなくても、Googleで「vba followhyperlink」で照会すれば、関連記事がたくさん出るのではないか?

  • kkkkkm
  • ベストアンサー率65% (1614/2452)
回答No.1

A1が選択されたらB1に入力されているものと同じ数字先のC列に飛ぶということでいいでしょうか。 該当するシートのシートモジュールに Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Fr As Range If Target.Address <> Range("A1").Address Then Exit Sub End If Set Fr = Range("C:C").Find(What:=Range("B1").Value, LookIn:=xlValues, lookat:=xlWhole) If Not Fr Is Nothing Then Fr.Select Else MsgBox "見つかりません" End If End Sub

関連するQ&A

  • Hyperlink関数をクリックしてくれるマクロ

    こんにちわ! どなたか教えてくださいませんか? EXCELのセル“A1”にHyperlink関数が入れてありまして、 隣のセル“B1”に入れた文字を組み込んで、URLを生成し、リンクを作るようになっています。 こんな感じです。   =Hyperlink("http://●●●"&[B1]&"●●●/") それで、B1に文字を入れたら、自動的にそのリンク先を開くように、 つまりは、A1にできたリンクをわたしの代わりにクリックしてくれるようなマクロを作りたい のですが、どうすればいいでしょうか? いろいろやってみたのですが、どれもエラーになってしまいまして。 どうかよろしくお願いいたします。

  • Hyperlink関数 元データ削除

    Excel2010 Hyperlink関数で以下のようにハイパーリンクを設定しました。  A列:(パス入力)  B列:(別名入力)  C列:=Hyperlink(A列,B列) C列に作成されたハイパーリンクを有効な状態で、 元データ(A列、B列)を削除する事は可能でしょうか?

  • マクロにてHYPERLINKのアドレスの取得方法を教えてください。

    マクロにてHYPERLINKのアドレスの取得方法を教えてください。 HYPERLINK関数を駆使してリンクを作っています。 =HYPERLINK(CELL("address",INDEX([○○○.xls]△△△シート!$1:$65536,MATCH("文字列",[○○○.xls]△△△シート!$B:$B,),MATCH("文字列",[○○○.xls]△△△シート!4:4,))),表示文字) という感じで別Excelファイルの行と列をMATCH関数を使いアドレスを作成しています。 出来たセルにマウスカーソルを持っていくと [○○○.xls]△△△シート!$AJ$114 アドレスが表示されます。 クリックするとちゃんと飛べます。 アドレスの表示を調べてみたところ Range("A1").Hyperlinks(1).Address というように記述する事で取得出来ると書かれていたので早速試してみたのですが インデックスが有効範囲にありません。と表示されてしまいます。 アドレスを取得するにはどうしたらいいのでしょうか?

  • INDEX MATCH HYPERLINK 

    こんにちは。 エクセル表で社員の勤怠を入力しています。 表はA1からL10までの範囲で、A1は空欄、B列は日付、C1からL1までは10/1から10/10までの日付が入力されています。A2はCODE、B2は氏名の列の項目名、C2からL10までは曜日が入力されています。A3から下にA10までの列はそれぞれ社員コードとなる数字が、B3から下にB10までは社員名が 入力されています。C3からL10までは特に何も入力されていない状態ですが、入力規則でリストから、項目を選ぶ形式です。また、C3からL10までは検索スペースという名前をつけてあります。入力作業の補助のために、N4のセルに日付を入力し、N7に社員コードを入力して、N12をクリックすると、表の該当の箇所にジャンプする関数を作成したいのですが、うまくいきません。 式は、=IF(ISERROR(HYPERLINK("#検索スペース"&INDEX($B$2:$L$10,MATCH(N4,$C$1:$L$1,0),MATCH(N7,$A$3:$A$10,0)),"検索")),"値を入力してください!",HYPERLINK("#検索スペース"&INDEX($B$2:$L$10,MATCH(N4,$C$1:$L$1,0),MATCH(N7,$A$3:$A$10,0)),"検索"))です。 N12をクリックすると「参照が正しくありません」とエラーメッセージが現れます。どこがおかしいのか、教えてくださえるかた、お願いします。 説明が悪いようでしたら補足いたしますので、ご質問ください。 よろしくお願いします。

  • EXCELのHYPERLINK関数の”文字列”について教えてください!

    HYPERLINK関数の「文字列」について 調べましたがさっぱりわからず、悩んでいます。 現在Sheet1のB1に =HYPERLINK("#Sheet"&ROW(A2)&"!A1",Sheet2!A1)  というように、Sheet2のA1にジャンプし、 Sheet2のA1が表示されるように、式を入力しました。 Sheet2のA1には文字が書かれています。 Sheet1のA1には何も書かれていません。 その式を連続コピーして、 B2を押すとSheet3のA1にジャンプし、Sheet3のA1の文字を表示する、 B3を押すとSheet4のA1にジャンプし、Sheet4のA1の文字を表示する、 というようにしたいのですが、 コピーすると =HYPERLINK("#Sheet"&ROW(A3)&"!A1",Sheet2!A2) =HYPERLINK("#Sheet"&ROW(A3)&"!A1",Sheet2!A3) このように、Sheet2のA2の値を返す というように コピーされてしまいます。 理想としては =HYPERLINK("#Sheet"&ROW(A3)&"!A1",Sheet3!A1) =HYPERLINK("#Sheet"&ROW(A3)&"!A1",Sheet4!A1) このように、A1は変わらず、シートの数字が1つずつ増えてほしいのです。 多少の関数はわかりますが、マクロはさっぱりわかりません。 関数を使うことで、こんなことは可能なんでしょうか? 説明が下手なんですが、どなたかわかられる方、教えてください(@_@)

  • HYPERLINKと関数の組み合わせ

    ここでハイパーリンクの使い方を教わって色んな応用が利くことが分かり、欲が出てきてしまいました。 ハイパーリンクとVLOOKUPが組み合わせられればセルの値からリンク先に飛べるように出きれば色んな表に使えるとおもい、NETで少し調べてみましたが例題がどれも少し違っており、自分で試行錯誤するもどうにもこうにもで、お助けください。 添付のような日報があります。 (1)B2をクリックすると、today関数で、 (2)B3に任意の日付を入れるとVLLOKUPでA列の同じ日付のセルに飛ぶようにしたいのですが。 (2)はVBAでないと無理な気もするのですが。。。。

  • EXCEL HYPERLINKの関数表示を文字に変える方法?

    EXCEL2002を使っています。 現在A1のセルに=HYPERLINK("C:\My Documents\1.xls")という式を入れています。A2のセルには左記式と同じでファイル名が2.xls、以降順番にA2000(2000.xls)まで同様の式を入れています。 現在、A1からA2000のセルまで関数の式が表示されてしまっているのですが、できれば関数の式は見せずに任意の文字を表示させ、さらにその文字をクリックすればリンクがはられるようにしたいのです。 文字を先に入力してメニューの挿入→ハイパーリンクとやれば希望通りの物ができるのですが、2000件ものマニュアル作業は避けたいと思います。 HYPERLINKの式を先に入力した場合でクリックのできる文字表示にする良い方法はないでしょうか?

  • エクセル関数のハイパーリンクについて

    初めて質問します。よろしくお願いします。 エクセル2000を使っています。 A列に商品番号 B列にハイパーリンクを下記の関数で入力しています。 =HYPERLINK("c:\windows\デスクトップ\○○\"&A1&".jpg") デスクトップの○○というフォルダ内に商品の画像を商品番号の名前で保存してあります。 B列のハイパーリンクをクリックすればその名前の商品の画像が見れるようになっています。 商品が1000個ほどあるため、B列の関数はコピーしたのですが、今現在、どの商品の画像があるのかないのかわからない状態です。 そこで、C列にリンク先が存在するかどうかを関数で入力したいのです。そのような方法はあるでしょうか?出来ればマクロではなく関数でお願い致します。 また、その方法はエクセル2003でも問題ないかどうかもお願い致します。

  • HYPERLINKのリンク先のセル範囲指定がうまくいきません。

    リンク先の範囲を指定したいのですが、ハイパーリンクを挿入にして、参照先をたとえば、『A5:A6』とするとちゃんとできます。 =HYPERLINK("#A"&MATCH(A1,A19:A30,0)+18:"#O"&MATCH(A1,A19:A30,0)+30),"ここをクリック!" と応用を効かせたのですが、これではできません。行列はAとMATCHによって得られた数値で表されて、コロンの前のみのセルを指定するとうまくいきます。

  • EXCEL HYPERLINKジャンプ先を間接指定

    常に最初の空白セルへジャンプさせたくてHYPERLINK関数を使おうと思い、 ジャンプ先を間接指定したいのですがその方法を教えてください。 R1C1形式で記述します。  R1C1=ADDRESS(5+COUNTA(R6C9:R36C9),9,1,FALSE) R1C1はジャンプ先であるR33C9の計算結果が出ています。 R1C2をクリックするとR33C9へジャンプして欲しいのですが、  R1C2=HYPERLINK("#R1C1", "入力セルへジャンプ")  R1C2=HYPERLINK("#INDEX(R1C1,1,1)", "入力セルへジャンプ") などではR1C1へジャンプしてしまいます。間接してするにはどうしたら良いでしょうか。 それとも外に、1クリックでジャンプさせる方法がありますか。

専門家に質問してみよう