Excelファイルを軽量化してセキュリティを向上させるためにハイパーリンクを削除する方法

前回はアドインで無効化する方法を書きましたが、そもそも元ファイルからハイパーリンクを削除してしまえばいいのでは?

と思いプログラムを考えてみました。

Excelのセキュリティ強化につながる?外部リンクやハイパーリンクを無効化するアドインの作成方法

2023/3/11    ,

はじめに Excelの外部リンクやハイパーリンクに関する問題 Excelは、複数のファイル間でデータを共有するために、外部リンクやハイパーリンク機能を提供しています。これらの機能を使用することで、Ex ...

Excelに設定されたハイパーリンクを削除するメリット

ファイルサイズの軽減

ハイパーリンクはファイルサイズを増やす要因になります。削除することでファイルサイズを軽減することができます。

また、ファイルを開く際の起動時間も改善されます。

ファイルの見やすさの向上

イパーリンクが多く存在する場合、セル内の文字列が見づらくなることがあります。削除することでセル内の文字列の可読性を向上させることができます。

セキュリティ上の理由

ハイパーリンクは、外部のファイルやウェブサイトにリンクするため、悪意のあるリンクが含まれる可能性があります。

そのため、削除することでセキュリティ上のリスクを軽減することができます。

ハイパーリンク削除VBAについて

早速プログラムを掲載します。このVBAは、まず削除したいファイルのフルパスを「A1」セルに設定し、

VBAを実行すると、対象ファイルが開かれます。

その後、すべてのシートからハイパーリンクを削除し、強制的にハイパーリンクを削除したファイルに上書き保存をする。という流れです。

Sub deleteHyperLinks()

    Dim filePath As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim cell As Range
    Dim hl As Hyperlink
    
    ' A1セルからファイルパスを取得する
    filePath = Range("A1").Value
    
    ' 対象のExcelファイルを読み取り専用で開く
    Set wb = Nothing

    Set wb = Workbooks.Open(filePath, ReadOnly:=False, IgnoreReadOnlyRecommended:=True, Password:="", Editable:=False, WriteResPassword:="", UpdateLinks:=False)
    
    ' ワークシートのハイパーリンクを無効化する
    For Each ws In wb.Worksheets
        For Each cell In ws.UsedRange.Cells
            If cell.Hyperlinks.Count > 0 Then
                For Each hl In cell.Hyperlinks
                    hl.Delete
                Next hl
            End If
        Next cell
    Next ws
    
    ' 対象のExcelファイルを上書き保存するため、SavedプロパティをFalseに設定する
    wb.Saved = False
    
    Application.DisplayAlerts = False
    
    ' 対象のExcelファイルを強制的に上書き保存する
    wb.SaveAs Filename:=filePath, FileFormat:=wb.FileFormat, AddToMru:=False
    
    ' 対象のExcelファイルを閉じる
    wb.Close SaveChanges:=False
    
    Application.DisplayAlerts = True
     
End Sub

上書き保存する際、ダイアログが表示されるため、DisplayAlertsをFALSEに設定し、ダイアログを表示させないようにし、保存完了後に再びDisplayAlertsをTRUEに設定し、他Excel操作時に影響が出ないように設定を戻しています。

最後に

この記事では、Excelファイルに設定されたハイパーリンクをVBAを用いて削除する方法を紹介しました。

Excelファイルの起動が遅かったり、ハイパーリンクを削除したい場合はぜひ参考にしてみてください。

スポンサーリンク

-IT関連
-, ,