![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっております。
ExcelのVBAで、ハイパーリンクを削除すると、一緒に書式もクリアーされてしまいます。
罫線と、背景色を残す方法ってあるのでしょうか?
一応、背景色だけ保存しておいて、後で、復帰させようと考えましたが、罫線も一時待避させるとなると、ちょっと大げさになるので、何か?知恵をお借り出来ないでしょうか?
Private Sub CommandButton11_Click()
'リンク解除
Dim MyColor As Integer
MyColor = maillist.Range("メールアドレス").Range"A1").Interior.ColorIndex
maillist.Range("メールアドレス").Hyperlinks.Delete
maillist.Range("メールアドレス").Interior.ColorIndex = MyColor
End Sub
"メールアドレス"範囲を別の所にコピーしておき、値だけ削除して元に戻して・・・なども考えてみましたが・・・?←これは、余計かも?
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは。
> "メールアドレス"範囲を別の所にコピーしておき、値だけ削除して元に
> 戻して・・・
仕様から見れば、元に戻すのは書式の方が都合が良いでしょう。
ただ、PasteSpecial で書式を戻すとしても複数のセルブロックが選択された
状態が想定できますから、PasteSpecial をエラーなく実行するためには、
Areas プロパティーで選択ブロック毎の処理になると思います。完全に一括で
はありませんが、止むを得ないかと...
' // 書式を残したままハイパーリンクを一括削除
Sub DeleteHyperLinks()
If Not TypeOf Selection Is Range Then Exit Sub
If Selection.Hyperlinks.Count = 0 Then Exit Sub
Dim wb As Workbook
Dim sh As Worksheet
Dim rTarget As Range
Dim r As Range
Application.ScreenUpdating = False
Set rTarget = Selection
Set wb = Workbooks.Add
Set sh = wb.Worksheets(1)
For Each r In rTarget.Areas
If r.Hyperlinks.Count > 0 Then
r.Copy Destination:=sh.Cells(1)
r.Hyperlinks.Delete
With sh.Cells(1).Resize(r.Rows.Count, r.Columns.Count)
.Copy
r.PasteSpecial xlPasteFormats
.Clear
End With
End If
Next
Set rTarget = Nothing
Set sh = Nothing
wb.Close SaveChanges:=False
Set wb = Nothing
End Sub
No.3
- 回答日時:
こんにちは
こんな感じのことだと思うのですが・・・
Dim vntB
With Range("メールアドレス")
vntB = .Formula
.ClearContents
.Formula = vntB
'.Font.ColorIndex = xlColorIndexAutomatic
'.Font.Underline = xlUnderlineStyleNone
End With
Range("メールアドレス") が矩形範囲であることが条件です。
(それ以外なら、ループにして下さい。)
コメントにした部分は、どうしたいか判らないので仮にしていますが、
このままだと、見た目上、リンクが残っているみたいになるので、
何かしら工夫して下さい。
(書式を)いじらない方向で書いても、結局いじる必要があるみたいですね。
わりと攻め込んだコードです。バックアップをお願いします。
No.1
- 回答日時:
こんばんは。
コードとしては、よく分からないし、maillist って、シート名だとしたら、CommandButton とは、違うシートでしょうか?
maillist.Hyperlinks.Delete
このように一括でするとなると、それを、一旦、Range をどこかに確保しなければならないから、結果的には、最初は一括でしても、後が、一括では出来そうな気がしません。
ひとつずつ、以下のようなコードにすればよいと思います。
Hyperlinkから、ただの、Range への切り替えをします。ただ、以前のバージョン(2000)は、Hyperlinkオブジェクトを削除しても色が残った気がします。今は、色と下線は、仮にオブジェクトのRangeにつけても、Hyperlink の削除とともに消えるようですね。
Sub Test1()
Dim v As Variant
Dim r As Range
For Each v In ActiveSheet.Hyperlinks
Set r = v.Range
v.Delete
r.Font.Underline = xlUnderlineStyleSingle
r.Font.ColorIndex = 5
Next v
Set r = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ハイパーリンクの削除について 2 2022/11/10 07:32
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタの捨て垢で友達のスト...
-
インスタのアカウントの消し方...
-
インスタの乗っ取り解除につい...
-
YouTubeが毎回ログインしないと...
-
LINE TCBというところからLINE...
-
URLとメールアドレス
-
TikTokで知り合いかもってバレ...
-
カカオで退会せずに、アプリだ...
-
メールアドレスからどこまで分...
-
ログアウトのないサイトからロ...
-
Yahooアカウントにログインでき...
-
メールアドレスから個人を特定...
-
steam版 apexのログアウト方法...
-
カカオトークを退会せずにアン...
-
YahooIDをパスワード形式にした...
-
メールアドレスで上付きのハイフン
-
存在しないアドレスにメールを...
-
星の王子さまというアプリで、 ...
-
インスタグラムでブロックされ...
-
携帯電話を解約してもSMSの受信...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
大学定期試験過去問サイト「過...
-
LINE TCBというところからLINE...
-
メールをパスワードつきで送る方法
-
メールを返信したら、英語のメ...
-
メールのマナー編
-
インスタの捨て垢で友達のスト...
-
YouTubeが毎回ログインしないと...
-
メールアドレスで上付きのハイフン
-
メールアドレス 上バーの入力...
-
メールエラー
-
CSVファイルを添付するときにパ...
-
メールアドレスから個人を特定...
-
カカオで退会せずに、アプリだ...
-
インスタのアイコンについてるN...
-
email.ne.jpのメールアドレスを...
-
ユニクロやGUのシフト管理アプ...
-
メールアドレスを人に教えるの...
-
星の王子さまというアプリで、 ...
-
「@」(アットマーク)の無いメ...
おすすめ情報