2016-09-07 4 views
0

各シートのハイパーリンクテキストを置き換えるExcel VBAコードがあります。 問題は、ブックが約30枚を持っているということですすべてのシートのハイパーリンクアドレスを変更する(Mac 2011を使用)

' Only change Hyperlinks in the active sheet 
Sub FixHyperlinks() 

    Dim wks As Worksheet 
    Dim hl As Hyperlink 
    Dim sOld As String 
    Dim sNew As String 

    Set wks = ActiveSheet 
    sOld = "%5C" 
    sNew = "/" 
    For Each hl In wks.Hyperlinks 
     hl.Address = Replace(hl.Address, sOld, sNew) 
    Next hl 

End Sub 

以下のコードをチェックしてください!!

このマクロをアクティブなブックのすべてのシートで実行するにはどうすればよいですか? ThisWorkbook.Worksheets内のすべてのシートをループするループごとに

答えて

1

ユースA:あなたのケースで非常に

Dim ws As Worksheet 

For Each ws In ThisWorkbook.Worksheets 
    'do something 
Next ws 

は:

For Each ws In ThisWorkbook.Worksheets 

    For Each hl In ws.Hyperlinks 

     hl.Address = Replace(hl.Address, sOld, sNew) 
    Next hl 
Next ws 
1

追加する必要がある唯一のものはワークブックループにありますすべてのシートについて、下記の変更されたコードを参照してください。

Sub FixHyperlinks() 

Dim wb As Workbook 
Dim wks As Worksheet 
Dim hl As Hyperlink 
Dim sOld As String 
Dim sNew As String 

Set wb = ThisWorkbook 

' loop ThisWorkbook all Sheets 
For Each wks In wb.Worksheets 
    sOld = "%5C" 
    sNew = "/" 
    For Each hl In wks.Hyperlinks 
     hl.Address = Replace(hl.Address, sOld, sNew) 
    Next hl 
Next wks 

End Sub 
+0

申し訳ございませんが、変更を加えます。私はExcel 2011 for Mac 2011を使っています。 –

+0

ok、私はPCからMacに必要なコード変更に慣れていません。それはOffice 2010 for PCで動作します。 –

関連する問題