Excelのハイパーリンクからアドレスを抽出するマクロ

Excelのハイパーリンクからアドレスを隣に取り出してハイパーリンクは削除するマクロです。

Excelのハイパーリンクからアドレスを抽出するコード

Sub Hyperlink_extraction()
    Dim link As Hyperlink
    For Each link In Selection.Hyperlinks
        link.Range.Offset(0, 1).Value = link.Address
        link.Delete
    Next link
End Sub

Excelのハイパーリンクからアドレスを抽出するコード の解説

  1. プロシージャの書式
  2. 変数の宣言
  3. For Each ~ Next構文の書式
  4. 個々のリンクのアドレスを取り出す。
  5. アドレスを隣に取り出す。
  6. ハイパーリンクを削除

プロシージャの書式

Sub プロシージャ名()
 処理の内容
End Sub

プロシージャは「Sub」で始まり「End Sub」で終わります。

この間に処理の内容を記述します。

変数の宣言をする

Sub プロシージャ名()
 Dim 変数名 As データ型
End Sub

変数をデータ型で宣言します。

データ型

int(整数型)String(文字列型)等

For Each ~ Next構文の書式

特定のコレクションや配列に対して一括して同じ処理を行いたい場合に利用されます。

Sub プロシージャ名()
 Dim 変数名 As データ型
  For Each 変数 In コレクション
   実行したい処理
  Next 変数名
End Sub
コレクション

同じ種類のオブジェクトをまとめたもの。
その個々のオブジェクトの名前の複数形になっていることが多い。

個々のリンクのアドレスを取り出す

ハイパーリンクのコレクション から個々のリンクのアドレスを取り出します。

Sub プロシージャ名()
 Dim 変数名 As データ型
  For Each 変数 In Selection.Hyperlinks
    実行したい処理
  Next 変数名
End Sub
Selection

現在選択されている箇所をオブジェクトとして返します。

Hyperlinks

ワークシートまたはセル範囲のハイパーリンクのコレクション

アドレスを隣に取り出す

Rangeプロパティでハイパーリンクが設定されているセルを表すRangeオブジェクトが取得できます。

Sub プロシージャ名()
  Dim 変数名 As データ型
  For Each 変数 In Selection.Hyperlinks
        変数.Range.Offset(0, 1).Value = 変数.Address
     Next 変数名
End Sub
Address

セルのアドレスを取得する。

Offset

指定されたセル範囲(Rangeオブジェクト)をオフセット(移動)します。
Rangeオブジェクト.Offset(行方向, 列方向)

ハイパーリンクは削除

Range.Delete メソッドでセルを削除します。

Sub プロシージャ名()
  Dim 変数名 As データ型
  For Each 変数 In Selection.Hyperlinks
        変数.Range.Offset(0, 1).Value = 変数.Address
        変数.Delete
     Next 変数名
End Sub

コメント

タイトルとURLをコピーしました