- ベストアンサー
EXCELでハイパーリンクの解除を行うと書式設定が失われる
ハイパーリンクの解除をおこなうと、セルの書式設定が解除されてしまいます。 ハイパーリンクとして必要なところと、必要ないところ(単に記号的な使い方をしています)と分けているため、設定でハイパーリンクを無効にすると不便になってしまいます 何か対処法はありますでしょうか? OSはMEでExcel2000にSR-1をあてています。
- みんなの回答 (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
お礼
いろいろ考えてくださったようで、ありがとうございました。 とりあえず私のマシンだけの現象ではないのですね。 マクロまで使うつもりではなかったのですが、使ってみると本当に便利ですね。 お作りになる時間をさいていただき、大変感謝しております。 マクロを使えるヒトは尊敬してしまいます。 私などデバックなどを考えるとゆううつになってしまいます(苦笑