SSブログ

EXCEL2000 VBA ハイパーリンクの有るセルを選択出来ないようする 実験(失敗)その2 [Excel2000 VBA独習]

EXCEL2000 VBA ハイパーリンクの有るセルを選択出来ないようする 実験(失敗)その2

http://telstar.blog.so-net.ne.jp/2012-10-17-1  のつづき

ハイパーリンクの設定文字列に [']を一文字目に付加し選択するとエラーダイアログを表示する(表示したくはないが)。
ハイパーリンクが不適切なので開く事は無い。
もう一度マクロを実行すると有効にできる。

excel_select_3.png

 

Sub ハイパーリンクを有効無効()
'ハイパーリンクが設定されてるセルの値に「’」シングルクオーテーションを付加して
'無効にする。(エラーにする)警告ダイアログがでる
'有効にするには、「’」シングルクオーテーションを削除する

'
Dim HLcount As Long                                 'ハイパーリンクの個数
Dim Raddress As String     'ハイパーリンクのあるセルアドレス
Dim HL_address As String              'ハイパーリンク内容
Dim i As Long                                              'カウンター用


'選択シートに設定されているハイパーリンクの個数を調べる
    HLcount = ActiveSheet.Cells.Hyperlinks.Count
'ハイパーリンクが無ければ終了、
    If HLcount = 0 Then Exit Sub
'ハイパーリンクの文字列の最初の文字が[']か調べる

    If Left((ActiveSheet.Hyperlinks(1).Address), 1) = "'" Then GoTo 有効 Else GoTo 無効
無効:
'ハイパーリンクの値に「 ' 」を文字列の先頭つける
    For i = 1 To HLcount
        Raddress = ActiveSheet.Hyperlinks(i).Range.Address
        HL_address = "'" & ActiveSheet.Hyperlinks(i).Address
        ' [']を付加した文字列をハイパーリンクに設定
        ActiveSheet.Hyperlinks.Add Anchor:=Range(Raddress), Address:=HL_address
    Next i
    Exit Sub
有効:
'ハイパーリンクを調べる
    For i = 1 To HLcount
        Raddress = ActiveSheet.Hyperlinks(i).Range.Address
        ' 付加した[']を削除
        HL_address = Right(ActiveSheet.Hyperlinks(i).Address, Len(ActiveSheet.Hyperlinks(i).Address) - 1)
        ActiveSheet.Hyperlinks.Add Anchor:=Range(Raddress), Address:=HL_address
    Next i

End Sub

感想

まぁいいか~ ← 子供みたいだねぇ (小倉さん風)

追記

Sub ハイパーリンクを有効無効()
'ハイパーリンクが設定されてるセルの値に「’」シングルクオーテーションを付加して
'無効にする。(エラーにする)警告ダイアログがでる
'有効にするには、「’」シングルクオーテーションを削除する
'
Dim HLcount As Long          'ハイパーリンクの個数
Dim Raddress As String       'ハイパーリンクのあるセルアドレス
Dim HL_address As String   'ハイパーリンク内容
Dim i As Long                      'カウンター用
Dim mymesse As String       'メッセージ文字列

'選択シートに設定されているハイパーリンクの個数を調べる
    HLcount = ActiveSheet.Cells.Hyperlinks.Count
'ハイパーリンクが無ければ終了、
    If HLcount = 0 Then Exit Sub
'ハイパーリンクの文字列の最初の文字が[']か調べる
    If Left((ActiveSheet.Hyperlinks(1).Address), 1) = "'" Then GoTo 有効 Else GoTo 無効
   
無効:
'ハイパーリンクの値に「 ' 」を文字列の先頭つける
    For i = 1 To HLcount
        Raddress = ActiveSheet.Hyperlinks(i).Range.Address
        HL_address = "'" & ActiveSheet.Hyperlinks(i).Address
        ' [']を付加した文字列をハイパーリンクに設定
        ActiveSheet.Hyperlinks.Add Anchor:=Range(Raddress), Address:=HL_address
    Next i
        mymesse = "ハイパーリンクを不正にしました"
        MsgBox mymesse
    'ステータスバーに状態表示
        Application.StatusBar = mymesse
    Exit Sub
有効:
'ハイパーリンクを調べる
    For i = 1 To HLcount
        Raddress = ActiveSheet.Hyperlinks(i).Range.Address
        ' 付加した[']を削除
        HL_address = Right(ActiveSheet.Hyperlinks(i).Address, Len(ActiveSheet.Hyperlinks(i).Address) - 1)
        ActiveSheet.Hyperlinks.Add Anchor:=Range(Raddress), Address:=HL_address
    Next i
        mymesse = "ハイパーリンクを戻しました"
        MsgBox mymesse
        MsgBox mymesse
    'ステータスバーに状態表示
        Application.StatusBar = mymesse

End Sub

 

 


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。