TOP >> 情報系メモ >> Java
ハイパーリンクの更新
2015/11

① Excelシートに複数のハイパーリンクを記述する。

Excel イメージ


② ハイパーリンクを含む領域を選択する。

Excel イメージ
 

③ ダイアログに検索したいハイパーリンクを入力する。

Excel イメージ

④ 次のハイパーリンクに新しい文字列を入力する。

Excel イメージ

 

⑤ ハイパーリンクの値が変わっている。

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


有限会社コスギデンサン