• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAからのHYPERLINK関数のアドレス取得法)

VBAからのHYPERLINK関数のアドレス取得法

mt2008の回答

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

かなり強引だけどこんなのを作ってみました。 ・セルA999をWORK用に使っています。 ・対象となるセル式中に「HYPERLINK(」が一回しか出て来ない事が条件です。 Function GetURL(rTarget As Range) As String   Dim sStr1, sStr2, i   Dim sStr3 As String   If rTarget = "" Then Exit Function   sStr1 = Split(Range("A2").Formula, "HYPERLINK(")   sStr2 = Split(sStr1(1), ",")   For i = 0 To (UBound(sStr2) - 1)     sStr3 = sStr3 & sStr2(i) & ","   Next i   sStr3 = Mid(sStr3, 1, Len(sStr3) - 1)   Range("A999").Formula = "=" & sStr3   GetURL = Range("A999").Value   Range("A999").Clear End Function

lack124
質問者

お礼

度々のご回答ありがとうございます。 そのままでは動かなかったので、下記の通り改造すると期待通りの動作をしました。 Function GetURL(rTarget As Range) As String Dim sStr1, sStr2, i Dim sStr3 As String If rTarget = "" Then Exit Function sStr1 = Split(rTarget.Formula, "HYPERLINK(") '←A2をrTargetに変更 sStr2 = Split(sStr1(1), ",") For i = 0 To (UBound(sStr2) - 1) sStr3 = sStr3 & sStr2(i) & "," Next i sStr3 = Mid(sStr3, 1, Len(sStr3) - 1) Sheet1.Range("A999").Formula = "=" & sStr3 '←念のためシートの明確化 GetURL = Sheet1.Range("A999").Value '←念のためシートの明確化 Sheet1.Range("A999").Clear '←念のためシートの明確化 End Function Excel 2010では動作未確認ですが、おそらく期待通りの動作をするだろうと思います。 こちらの結果は補足にてご報告させて頂きます。 アルゴリズムまで考えて頂き、本当にありがとうございました。 個人的にはもっとお手軽な方法があれば良いなと思っていたのですが、 やはり力技で行くしかないんですね(--;

lack124
質問者

補足

Excel 2010でも動作することを確認しました。 ありがとうございました。

関連するQ&A

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

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

  • エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか?

    エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか? ハイパーリンクを作成する関数は、=HYPERLINK("URLアドレス", "表示名称")で可能ですが、この逆で、"URLアドレス"を取得する関数を探しています。 例えばこのセルが、A1にあったとして、B1に =A1とすると、B1には「表示名名称」が表示されます。 C1に「URLアドレス」を表示させるVBAでなく関数が知りたいです。 無ければ、VBAでも構いません。 よろしくお願いいたします。

  • マクロにて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 というように記述する事で取得出来ると書かれていたので早速試してみたのですが インデックスが有効範囲にありません。と表示されてしまいます。 アドレスを取得するにはどうしたらいいのでしょうか?

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

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

  • Excell:ユーザー定義関数で、HyperLinkを返したい

    エクセルで、ユーザー定義関数を作成しています。 戻り値をHyperLinkにしたいのですが、可能でしょうか? 指定したセルの値を参照して、動的にURLを 作成するところまでは、できたのですが、HyperLinkとして セルに書き戻す事ができません。 下記のように文字列になってしまいます。 =HyperLInk("http://hoge.php?var=10","●") ↑を、リンクとして機能させるには、どうすれば 良いかご存知でしたら、教えて下さい。 ※一旦URLだけを文字として表示させ、  その上に、HyperLink関数をかぶせれば、  目的が達成できることはわかっていますが、  それでは、使い勝手が悪いのです。 どうぞ、よろしくお願い致します。

  • エクセルのhyperlink関数を使って、次のように入力したいと思って

    エクセルのhyperlink関数を使って、次のように入力したいと思っています。 =HYPERLINK("http://www.aaa.com/1",1) =HYPERLINK("http://www.aaa.com/2",2) =HYPERLINK("http://www.aaa.com/3",3) こういった感じで、連続いくつも入力します。 関数のカンマの後ろの数字については、A1+1 と入力して、セルの右下にマウスを移動させそこからドラッグすればすぐに入力できますが、カンマの前のURLの数字の部分についても連動させたいのです。 どの様にすればいいのでしょうか?

  • エクセルVBAで関数が入った空白セルの取得

    エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です)   A  B  C  D  E  F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。

  • VBA セル内の関数の参照先

    あるExcel2000のファイル セル A1に20 A2に30 A3に50 A4に10 A5に60 セル B1に30 と表示されています B1の中は =Average(A2:A4) となっています 私はVBAでこのB1の中のAverage関数の参照先を取得したいのですがその方法が分かりません 例えば A=Cells(1,2)や A=Range(B1) としても変数Aは当然ですが30となってしまいます EXCELの関数でセルの中にある関数や参照先を抽出出来るものがないかと探して見ましたが私には見つける事が出来ませんでした。 セルの中にある関数、もしくはその関数の参照先を抽出する方法は無いのでしょうか よろしくお願いします。

  • エクセルマクロのVBAでINDEX関数を使う。

    エクセルマクロのVBAでINDEX関数を使って値を取得しています。 値を取得したセル番地を取得したいと考えています。 ネットで調べましたが、なかなか思うような内容をヒットできません。 VBAに詳しいかた、ご教授お願い致します。

  • Excel VBAのVLOOKUP関数について

    Excel VBAのVLOOKUP関数について VBAでのVLOOKUPで他のブックを使用する場合の方法がわかりません。 ブックαにて参照したい他のブックβのパスやファイル名、シート、セルは保持しております。 同一ファイル内では取得することができたのですが、他のブックではうまくいきません。 また、VLOOKUP関数にて取得できた場合、取得したセルの下に1段、左に1段目のセルを取得したい場合どうすればいいのでしょうか? 環境はEXCEL2003です。 ご存知の方がいれば教えてください!