• ベストアンサー

EXCELでハイパーリンクの解除を行うと書式設定が失われる

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

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

d_bot
質問者

お礼

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