見出し画像

3行マクロ リンクの解除

いつも見に来ていただきありがとうございます!
今回は、3行マクロ作りましたので共有したいと思います。


作成の背景

お客さんからExcelで仕事を貰う事が多いのですが、開いているExcel以外のところにリンクしていることが多々あります。
その時に、毎回検索機能を使ってリンク先を探したりして解除していのですが、凄く面倒なので、Excelのシートとして、リンクを解除するコードがあればいいなぁと思ってインターネットで検索して使えるようになりました。

だけど、保存するExcelは複数枚のシートで作成することがほとんどなので、ブック全体でリンクを解除できればいいな思い、チャットGPTに聞いたりして調整しながら作成しました。


リンクの解除 ブック全体

・機能
選択しているExcelブック全体でリンクを削除

・VBA

Sub リンク解除_選択ブック全体()

Dim ws As Worksheet
Dim astrLinks As Variant
Dim i As Long, a
Dim mycheck As Boolean

' アクティブなブック内の各シートに対して処理を行います
For Each ws In ActiveWorkbook.Worksheets
ws.Activate ' シートをアクティブにします

astrLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
mycheck = IsEmpty(astrLinks)
If mycheck = True Then
MsgBox ws.Name & " のリンクはありません"
Else
For Each a In astrLinks
ActiveWorkbook.BreakLink _
Name:=a, _
Type:=xlLinkTypeExcelLinks
Next
MsgBox ws.Name & " のリンクを解除しました"
End If
Next ws

End Sub

全然3行じゃないけど


リンクの解除 シートのみ

・機能
選択しているExcelシートでリンクを削除

・VBA

Sub リンク解除()

Dim astrLinks As Variant
Dim i As Long, a
Dim mycheck As Boolean

astrLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
mycheck = IsEmpty(astrLinks)
If mycheck = True Then
MsgBox "リンクはありません"
Exit Sub
Else
For Each a In astrLinks
ActiveWorkbook.BreakLink _
Name:=a, _
Type:=xlLinkTypeExcelLinks
Next
End If

End Sub


まとめ

あくまでも素人のVBAをよく分かっていないおっさんがマクロを作っているので完成度は低めです。
まぁ使えたらいいかなレベルです。

参考になりましたらスキやフォローよろしくお願いいたします。
次の記事の作成の励みになります。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?