Excelマクロでハイパーリンクを解除する方法

このQ&Aのポイント
  • Excelマクロを使用することで、ワークシート内のすべてのハイパーリンクを解除することができます。
  • 具体的には、マクロ内でClearHyperlinksメソッドを使用してハイパーリンクを解除し、文字のアンダーラインを解除し、文字色を自動設定することで解除することができます。
  • ただし、一部のコードが誤っている場合にはエラーが発生することがありますので、正しいコードを使用するように注意してください。
回答を見る
  • ベストアンサー

excelマクロですべてのハイパーリンク解除したい

excel2016で、ワークシート内のハイパーリンクをすべて解除したいと思います。 すべて削除するマクロは Sub Sample()  With ThisWorkbook.Worksheets("Sheet1")   .Hyperlinks.Delete 'ハイパーリンク削除  End With End Sub なのですが、これを解除の命令に変えて Sub Sample()  With ThisWorkbook.Worksheets("Sheet1")  .ClearHyperlinks 'ハイパーリンク解除  .Font.Underline = False '文字のアンダーライン解除  .Font.ColorIndex = xlAutomatic '文字色を自動設定  End With End Sub とするとエラーになってしまいます。 どのようにすれば良いでしょうか?

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

以下のようにしたらどうでしょう。 Sub Sample() With ThisWorkbook.Worksheets("Sheet1") .Cells.ClearHyperlinks 'ハイパーリンク解除 .Cells.Font.Underline = False '文字のアンダーライン解除 .Cells.Font.ColorIndex = xlAutomatic '文字色を自動設定 End With End Sub

ryou4649
質問者

お礼

素晴らしい。\(^_^)/ たったこれだけでできるとは。 目から鱗です。 ありがとうございました。

その他の回答 (1)

  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.2

Sub Sample() Worksheets("Sheet1").Hyperlinks.Delete End Sub これで・・・できないかな? >< 未確認の為、試してみて下さい m(_ _)m

関連するQ&A

  • Excelマクロ教えてください。

    いつも大変お世話になっております。 あるシートにあるフォントのすべてをMSゴシックにしたいのですが、 マクロ記録→全選択してフォント変更→記録解除 で下記のマクロができました。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/11/21 ユーザー名 : TEST ' ' Cells.Select With Selection.font .Name = "MS ゴシック" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub 全選択せずに、あるシートすべてのフォントを変更する方法はありますか? シートのフォントを変更するだけの目的です。 よろしくお願いします。

  • Excel2000 ハイパーリンクを削除するマクロ

    どなたか教えてください。 Excel2000で、URLやメールアドレスを入力すると勝手にハイパーリンクにされてしまいます。 これをハイパーリンクとならないようにするマクロを作りたいのです。 具体的には、特定のセルにだけ、URLやメールアドレスを入力する可能性が あるという条件で、 下記のようにしました。 Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False nowcell = ActiveCell.Address Target.Hyperlinks.Delete With Range("O14:AI14,L41:AI41") .IndentLevel = 1 .VerticalAlignment = xlCenter .Font.Name = "Arial" .Font.Size = 16 End With Range(nowcell).Activate Application.ScreenUpdating = True End Sub セルが変更されるたびに、O14:AI14,L41:AI41のハイパーリンクを削除して、勝手に 変更された書式を特定の書式に戻すという処理をしています。 ただ、特定の書式を設定しているため異なる書式のセルに同じマクロを使うと、 書式が乱れてしまいます。 それで、ハイパーリンクが削除される前のセル書式を保存しておいて、ハイパーリンクを削除した後に、 復元するということをしたいのですが、どうすればよいでしょうか? イメージ的には、 org_format=target.font nowcell.font=org_format というようにしたいところなのですが・・・ 良いアイデアをご教授ください。 宜しくお願い致します。

  • マクロを使ってハイパーリンクを作りたい

    エクセルで下記作業をマクロで行いたいのですが、 途中までつくれたのですが、うまくいきません (1)sheet2をコピーしてsheet2(2)を作る (2)sheet2(2)のsheet名を任意の名前(例222)にかえる (3)sheet1の任意のセルから新しく作った222へハイパーリンクを張る 下記のようなマクロを作りましたが ハイパーリンクを張るとことでうまく行きません どうすればよいのでしょうか。。。 助けてください sub 新しいシートの追加() 'dim sheet名 as string シート名 = InputBox("新しいシート名を入力してください", "シート名の指定") If シート名 <> "" Then Sheets("Sheet2").Select Sheets("Sheet2").Copy After:=Sheets("Sheet2") ActiveSheet.Name = シート名 Sheets("Sheet1").Select Range("A3").End(xlDown).Offset(1).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ シート名 TextToDisplay:=シート名 Selection.Hyperlinks(1).SubAddress = シート名 End If End Sub

  • ハイパーリンクがうまくできません。

    エクセルのマクロを使って、ハイパーリンクで同じブック内のシートに飛べるようなものをつくりたいと思っています。 まず、「全体」というシートに目次みたいに各シートのタイトルが書かれたページがあり、 そのタイトルがシート名になったものが大量にあります。 「全体」シートのタイトルをクリックするとそのシートに飛べるようにしたいのですがうまくいきません。 下のマクロはネットで探して使えると思ったものなのですが、 リンクをクリックしても「参照できません」とでて目的のシートに飛ぶことができません。 助言のほどよろしくお願いします。 Sub link123() Dim ws As Worksheet, r As Range With Worksheets("全体") For Each ws In Worksheets Set r = .Cells.Find(ws.Name, after:=.Range("A1"), LookAt:=xlWhole) If Not r Is Nothing Then .Hyperlinks.Add Anchor:=r, Address:="", SubAddress:=ws.Name & "!A1" End If Next ws End With End Sub

  • excelのifステートメントのテストで…

    御観覧ありがとうございます。 スパテクという本を買って、excelを勉強しようと、 サンプルを打ち込んでいて、何度かエラーになったりしましたが、 調べることや、入力ミスの確認で回避出来ていたのですが、 本通りに打っているのに、 「エラー438、オブジェクトは、このプロパティまたはメソッドをサポートしてません。」 と出ます。 エクセル2007です。入力したプロシージャは、 Option Explicit Dim nSample1_12 As Integer Sub Sample1_12() nSample1_12 = nSample1_12 + 1 ThisWorkbook.Worksheets("sheet1").Range("A1") = nSample1_12 End Sub Sub Sample1_13() Dim sA2 As String sA2 = ThisWorkbook.Worksheets("sheet1").Range("A2") If sA2 = "" Then ThisWorkbook.Worksheets("sheet1").Renge("A2") = "Sample1_13" ElseIf sA2 = "Sample1_13" Then ThisWorkbook.Worksheets("sheet1").Range("A2") = "基本の文法 ifステートメント" Else ThisWorkbook.Worksheets("sheet1").Range("A2") = "" End If End Sub このサンプル13を実行すると、A2にsample1_13と出るはずなそうなんですが…エラーになります。

  • エクセルでシート毎にスタイルを変えたい(マクロで記述)

    一つのブックに複数のフォーマットの異なるワークシートを作ります。基本のフォントサイズを変えたいので、 シートAでは、 With ActiveWorkbook.Styles("Normal").Font   .Name = "MS 明朝"   .Size = 14   .Bold = False   .Italic = False   .Underline = xlUnderlineStyleNone   .Strikethrough = False   .ColorIndex = xlAutomatic End With と記述し、次にシートBでフォントサイズのところを   .Size = 11 とした場合、スタイルを変えてしまうことになり、シートAのフォーマットが崩れてしまいます。 シート毎にスタイルを持たせるようなことはできないでしょうか?それともすべての文字のフォントサイズを指定し、列幅、行高を明示的に指定するしかないのでしょうか?

  • シート上のすべての画像を削除するには?

    エクセルのシート上のすべての画像を削除するには? 図のようにヤフーのトップページをコピーしてエクセルに貼り付けました。 その際画像も一緒に張り付いてしまいますが、 その画像をすべて消すVBAコードを教えてください。 Sub シートの全てのハイパーリンクを削除する() ActiveSheet.Hyperlinks.Delete End Sub これで、ハイパーリンクは消えるので、画像バージョンが知りたいです。 よろしくお願いします。

  • Excel VBA With ~ End With

    Excel VBA With ~ End Withを使わずに記述するには Sheet1シートのセルA1,A2,B1,B2にA,B,75,25の値を入力して、 Sub test1()  With ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart.Chart   .ChartType = xlBarStacked100   .SetSourceData Source:=Sheets("Sheet1").Range("A1:B2"), PlotBy:=xlRows  End With End Sub を実行すると横棒グラフが1個表示されますが、 これを、With ~ End Withを使わずに記述すると Sub test2()  ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart.Chart.ChartType = xlBarStacked100  ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B2"), PlotBy:=xlRows End Sub というようになると思いますが、 実行すると縦棒が2個表示されてしまって同じ結果になりません。 なぜなのでしょうか。 test1を、With ~ End Withを使わずに記述するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。(Windows10,Excel2016)

  • エクセルで置換リストを別ブックにおいたマクロを作りたい

    置換専用につくったワークシートに A列に検索文字 B列に置換文字を入力したリスト(例えば"Book2.xls"の"sheet1")を作りました。 このリストを使って別のブック内(例えば"Book1.xls")の複数のシート内を一括して置換えがしたいです。 自分で調べてみて下記で置換えはできたのですが、その都度、各シートを選択しなければだめでした。 一括で同ブック内の複数シート内を置換えさせるには、どこを修正したらいいのでしょうか? 見よう見まねの初心者です。 どうぞよろしくお願いします。 Sub 置換()  With ThisWorkbook   If ActiveSheet Is .Worksheets(1) Then Exit Sub   For i = 1 To .Worksheets(1).Range("A65536").End(xlUp).Row    ActiveSheet.Cells.Replace _      What:=.Worksheets(1).Range("A" & i).Value, _      Replacement:=.Worksheets(1).Range("B" & i).Value, _      LookAt:=xlPart, SearchOrder:=xlByColumns   Next  End With End Sub

  • このマクロを少し修正したい

    先日、こちらのサイトで下記のマクロを作っていただきました。 エクセルの置換えシートを使って、別のエクセルシートを一括置換えするマクロです。 ただ、置換えしたいシートのセルが結合していたり、文字の前に空欄が入っていると変換されません。 上記も認識しての置換えは、下記のマクロを修正して可能でしょうか? 修正したマクロを教えていただけると助かります。  With ThisWorkbook   If ActiveSheet Is .Worksheets(1) Then Exit Sub   For i = 1 To .Worksheets(1).Range("A65536").End(xlUp).Row    ActiveSheet.Cells.Replace _      What:=.Worksheets(1).Range("A" & i).Value, _      Replacement:=.Worksheets(1).Range("B" & i).Value, _      LookAt:=xlPart, SearchOrder:=xlByColumns   Next  End With End Sub

専門家に質問してみよう