ハイパーリンクの更新
2015/11
2015/11
① Excelシートに複数のハイパーリンクを記述する。
② ハイパーリンクを含む領域を選択する。
③ ダイアログに検索したいハイパーリンクを入力する。
④ 次のハイパーリンクに新しい文字列を入力する。
⑤ ハイパーリンクの値が変わっている。
コードその1(Cellsを使う)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '' '' ハイパーリンクを検索して置換するVBA '' Cellsを使う '' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub ボタン1_Click() Dim i As Long '' 選択範囲業インデックス Dim j As Long '' 選択範囲列インデックス Dim finding As String '' 検索文字列 Dim changing As String '' 置換文字列 Dim found As Boolean '' 検索フラグ '' 検索フラグの初期化 found = False '' 検索したいハイパーリンクの文字列 finding = InputBox("検索したいハイパーリンクを入力して下さい。") '' 選択範囲の行分ループ For i = Selection(1).row To Selection(Selection.Count).row '' 選択範囲の列分ループ For j = Selection(1).column To Selection(Selection.Count).column '' セルの値にハイパーリンクが含まれるかどうか If Cells(i, j).Hyperlinks.Count > 0 Then If (finding = Cells(i, j).Value) Then '' 検索フラグを立てる found = True '' 置換文字列の取得 chaging = InputBox( _ "選択範囲にハイパーリンク「" & finding & "」を見つけました。" _ & vbCr & _ "何のハイパーリンクで置換しますか?") '' Valueを設定すると新しいValueがハイパーリンクとなる。 Cells(i, j).Value = chaging End If End If Next j Next i '' 検索文字列が見つからなかった場合はユーザに通知する。 If found = False Then MsgBox ("選択範囲にハイパーリンク「" & finding & "」は見つかりませんでした") End If End Sub
コードその2(Rangeを使う)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''
'' ハイパーリンクを検索して置換するVBA
'' Rangeを使う
''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub ボタン1_Click()
Dim i As Long '' 選択範囲業インデックス
Dim j As Long '' 選択範囲列インデックス
Dim finding As String '' 検索文字列
Dim changing As String '' 置換文字列
Dim found As Boolean '' 検索フラグ
Dim selectedRange As Range '' 選択範囲
Dim singleRange As Range '' 個々の検索用Range
'' 検索フラグの初期化
found = False
'' 検索範囲の取得
Set selectedRange = Selection
'' 検索したいハイパーリンクの文字列
finding = InputBox("検索したいハイパーリンクを入力して下さい。")
'' 選択範囲をループ
For Each singleRange In selectedRange
'' ハイパーリンクが含まれているかどうか
If singleRange.Hyperlinks.Count > 0 Then
'' 検索フラグを立てる
found = True
''置換文字列の取得
chaging = InputBox(
"選択範囲にハイパーリンク「" & finding & "」を見つけました。" _
& vbCr & _
"何のハイパーリンクで置換しますか?")
'' Valueを設定すると新しいValueがハイパーリンクとなる。
singleRange.Value = chaging
End If
Next singleRange
''検索文字列が見つからなかった場合はユーザに通知する。
If found = False Then
MsgBox ("選択範囲にハイパーリンク「" & finding & "」は見つかりませんでした")
End If
End Sub