訪問して頂きありがとうございます。まさふくろーです。
今回は、ハイパーリンクからURL情報を取得する方法をご紹介します。
目次
ハイパーリンクからURL情報を取得する
作成手順
VBEの起動
起動方法は、VBE(Visual Basic Editor)の起動手順まとめをご覧ください。
標準モジュールの作成
①「挿入」を選択⇒②「標準モジュール」を選択し、標準モジュールを作成します。
VBAコードの入力
VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。
入力するコードは以下になります。
1 2 3 4 5 6 7 |
Function GetHyperlink1(Target As range) As String If Target.Hyperlinks.Count > 0 Then GetHyperlink1 = Target.Hyperlinks(1).Address End If End Function |
1 | ユーザー定義関数の記述。 引数:セルの範囲(Range型)、戻り値:文字列型。 |
3 | 指定したセル範囲にハイパーリンクが設定されているかの判断を行う。 |
4 | ハイパーリンクが設定さている場合、URL情報を取得し、戻り値に返す。 |
関数の呼び出し
「C1」セルに「=GetHyperlink1(A1)」と入力します。
Enterキーを押します。
式をコピーする
「C1」セルを選択します。
セルの右端にフォーカスをあて「+」マークにしたのち、下にドラッグして式をコピーします。
解説
Functionプロシージャ
構文 | Function 関数名(引数1 As データ型1[,引数2 As データ型2,・・・]) As データ型 計算のための処理 関数名 = 戻り値 End Function |
解説 | Functionプロシージャは、戻り値(計算結果の値)を返すことができるプロシージャなので、関数として利用できる。 |
「関数名」には、自分で独自の名前を指定する。 | |
「()」の後ろのデータ型には、関数の戻り値のデータ型を指定する。 戻り値となるデータの種類から、適切なデータ型を選択する。 例えば、戻り値が整数なら「Integer」を選ぶ。 |
|
関数名の「()」の中では、関数内で用いる「引数」と、その「データ型」を指定し、関数で計算をする対象を決める。 引数名は独自の名前を設定してよい。 計算対象のデータの種類から、適切なデータ型を選ぶ。 引数とデータ型は、「,」(カンマ)で区切って複数指定できる。 |
|
「計算のための処理」には、引数を用いた計算の内容を記述する。 | |
「関数名=戻り値」では、「関数名」には指定した名前を、「戻り値」では計算結果の値を指定する。 | |
作成したFunctionプロシージャは、「ユーザー定義関数」としてワークシート上で使用できる。 | |
ユーザー定義関数として使用するには、Functionプロシージャを標準モジュールに作成する。 | |
例 | ハイパーリンクのURL情報を取得する関数。戻り値は、文字列型。 |
Function GetHyperlink1(Target As range) As String If Target.Hyperlinks.Count > 0 Then End Function |
Hyperlinksオブジェクト
解説 | ワークシートまたはセル範囲のハイパーリンクのコレクションを表す。 |
例 | ワークシート 1 上のハイパーリンクで "Microsoft" という単語を含むものを調べる。 |
For Each h in Worksheets(1).Hyperlinks If Instr(h.Name, "Microsoft") <> 0 Then h.Follow Next |
[Hyperlinks]Countプロパティ
構文 | Hyperlinks.Count |
解説 | コレクションに含まれるオブジェクトの数を返す。 |
例 | 指定したセルにハイパーリンクが含まれる場合は、メッセージを表示する。 |
If Target.Hyperlinks.Count > 0 Then MsgBox "ハイパーリンクです。" |
[Hyperlinks]Addressプロパティ
構文 | Hyperlinks(Index).Address |
引数 | Index:「1」と指定した場合:1番目に見つかったハイパーリンクを表す。 |
解説 | ハイパーリンクのURL情報を取得する。 |
例 | A2セルのURL情報を取得する。(セル範囲が単一セルの場合) |
GetHyperlink1 = Range("A2").Hyperlinks(1).Address | |
A1~A2セルの範囲から2番目のURL情報を取得する。(セル範囲が複数セルの場合) | |
GetHyperlink1 = Range("A1:A2").Hyperlinks(2).Address |
最後まで読んでいただき、ありがとうございました!
本のまとめ記事はこちら