Excel VBA テクニック集
ハイパーリンク削除





Excel VBA テクニック集
選択範囲とハイパーリンクの位置がかさなる場合、削除します。

この場合、Excel関数Intersectを使います。

使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。
    Dim Range_Obj As Object
    Dim Object_Obj As Object

    Set Range_Obj = Excel_App.ActiveSheet.Cells
    又は
    Set Range_Obj = Excel_App.ActiveSheet.Range("A2:D20")
                
    For Each Object_Obj In Excel_App.ActiveSheet.Hyperlinks
        If Not (Application.Intersect(Object_Obj.Parent, Range_Obj) Is Nothing) Then
            Object_Obj.Delete
            End If
        Next Object_Obj

    Set Range_Obj = Nothing
    Set Object_Obj = Nothing
Object_Obj.Parentとは、ハイパーリンクが登録されているセルになります。


Application.Intersect(Object_Obj.Parent, Range_Obj)とは、例えば具体的に下図でApplication.Intersect("B2:F7", "E5:H10")の場合、 2つの領域B2:F7,E5:H10の共通領域E5:F7を示します。なお、共通領域がなければNoThingになります。


したがって
If Not (Application.Intersect(Object_Obj.Parent, Range_Obj) Is Nothing) Then
とは、「リンクが登録されているセルとRange_Objとの間に共通領域があるならば」という意味になります。

「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|