背景・目的
ExcelのセルにWebサイトのURLをコピペすると、そのページのタイトルが青字で、かつ下線が引かれて自動で表示される。例えば、TOHOシネマズのURL(https://www.tohotheater.jp/)をセルB2に貼り付けると、下図のようになる。

サイトへのリンクも自動で設定されるので、このセルをクリックすると、Edgeなどのブラウザが起動して、TOHOシネマズのサイトが開く。とても便利だ。
ただ、コピペすると強制的にフォントサイズが11になり、また下線も有無を言わさず引かれてしまうのが気になる。
ExcelにURLを貼り付けることが多いのだが、フォントは指定のサイズにしたいし、個人的に下線は好みじゃないので消したい。けれども、それを手作業でやるのは面倒だ。
そこで、VBA(マクロ)を使用し、ExcelにURLがペーストされたら、自動でフォントサイズを11→8とし、下線も削除されるようにしたい。
方法
VBEを開いて、プロジェクトエクスプローラーで目的のシートを選択し、右クリックして「コードの表示」をクリックする。

表示された画面上部の左側のリスト(「(General)」となっている)から「Worksheet」を選択する。

すると、自動で「Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub」が入力される。

このコードは不要なのだが、ひとまずそのままにしておく。
(ここで削除すると、リストが「(General)」に戻ってしまうため)
画面上部の右側のリストから「Change」を選択する。

すると、自動で「Private Sub Worksheet_Change(ByVal Target As Range) End Sub」が入力される。

不要な「Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub」の方は削除する。
「Private Sub Worksheet_Change(ByVal Target As Range) End Sub」の方に、以下のコードを入力する。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Font
If .Color = RGB(5, 99, 193) And .Underline <> xlUnderlineStyleNone Then
.Size = 8
.Underline = xlUnderlineStyleNone
End If
End With
End Sub
「Target」が変更されたセル、ここでいうURLがコピペされたセルになる。
もし、「Target」のフォントの色が、URLを貼り付けた時に自動設定されるこの青っぽい色で、かつ下線が引いてあれば、目的の処理が実行される。
ここでは、フォントサイズを8にして、アンダーラインをなくすようにしている。
試しに、コードを書いたシートに戻り、TOHOシネマズのURLを今度はセルB3にペーストしてみる。すると、処理が実行されて、セルB2と比較してフォントサイズが小さくなり、下線もないことがわかる。

もっとうまいやり方があるかもしれないが、一応これで目的は達成できた。
投稿時の環境
- Windows11 Home Ver. 24H2
- Excel for Microsoft 365 Ver. 2504