重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ハイパーリンクの解除をおこなうと、セルの書式設定が解除されてしまいます。
ハイパーリンクとして必要なところと、必要ないところ(単に記号的な使い方をしています)と分けているため、設定でハイパーリンクを無効にすると不便になってしまいます
何か対処法はありますでしょうか?

OSはMEでExcel2000にSR-1をあてています。

A 回答 (1件)

回答がありませんね。



ハイパーリンクを設定したセルに対し、ハイパーリンク→ハイパーリンクの削除を行うと『セルの書式が解除されるのをどうにかしたい』ということで考えてみました。
ただ、『必要なところと、必要ないところ(単に記号的な使い方をしています)と分けているため』については、意味を理解できていません。見当違いの回答かもしれませんが、その場合はご容赦を。

通常方法では思いつきませんので、ハイパーリンクのみを解除するマクロを書いてみました。(Excel2000)

マクロでハイパーリンクを削除しても、セルの書式は初期化されてしまうみたいです。
『Style スタイル』でどうにかなるかと思いましたが、余り芳しくありませんでした。
また、セルの書式を配列に全部覚えておければ簡単ですが、コーディングが大変みたいでした。
コントロールのPropertiesコレクションのようなものがあれば楽ですが、Excelのセルに対してはないみたいです。
結局、セルの値または式を退避しておき、ハイパーリンクごと消去し、値または式を復元する事にしました。
アンダーラインについては、これがハイパーリンクのものか、意図的に引いたものか、または消してある場合もあるので、マクロを実行する時点のまま変更していません。

マクロ内部でエラー処理を行っていますが、これは結合セルがあると消去が普通にできないからです。
実際使ってみて、マクロをショートカットキーに登録しておけば便利かもしれません。

列全体、全シートを処理すると時間がかかります。ご注意を。(EscまたはCtrl+Breakで止まります)


ここから

Sub del_HyperLink()
  Dim rg As Range 'セル
  Dim rgVal 'マクロ操作前のセルの値
  Dim rgULine 'マクロ操作前のアンダーラインの招待

  On Error GoTo ErrorHandler 'エラー対応

  For Each rg In Selection
    rgULine = rg.Font.Underline 'アンダーライン
    'セルの内容が値か、または式か
    If Not rg.HasFormula Then
      rgVal = rg.Text
    Else
      rgVal = rg.Formula
    End If

    rg.ClearContents '消去
    rg.Font.Underline = rgULine 'アンダーラインを戻す
    rg = rgVal '値または式を戻す
  Next
  Exit Sub

ErrorHandler:
  '結合セルを操作しに行った時の対応
  If Err.Number = 1004 Then
    Resume Next
  End If
End Sub
    • good
    • 0
この回答へのお礼

いろいろ考えてくださったようで、ありがとうございました。
とりあえず私のマシンだけの現象ではないのですね。
マクロまで使うつもりではなかったのですが、使ってみると本当に便利ですね。
お作りになる時間をさいていただき、大変感謝しております。

マクロを使えるヒトは尊敬してしまいます。
私などデバックなどを考えるとゆううつになってしまいます(苦笑

お礼日時:2002/04/13 13:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!