- ベストアンサー
Excel_VBAでハイパーリンクの削除時の書式
いつもお世話になっております。 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 "メールアドレス"範囲を別の所にコピーしておき、値だけ削除して元に戻して・・・なども考えてみましたが・・・?←これは、余計かも? 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- 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 というようにしたいところなのですが・・・ 良いアイデアをご教授ください。 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- エクセルVBA 双方向での書式のリンク方法
エクセルVBAにて双方向での書式のリンクをさせたいと考えています。 具体的にはセルの背景色の双方向リンク方法について教えていただきたいです。ここで双方向での背景色のリンクとは別々のシート上のセルの背景色をどちら側の変更であっても、もう一方に変更を反映させることです。 【シート1】 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Sheets("Sheet2").Range("$A$1").Value = Sheets("Sheet1").Range("$A$1").Value Sheets("Sheet2").Range("$A$1").Interior.ColorIndex = Sheets("Sheet1").Range("$A$1").Interior.ColorIndex End If End Sub 【シート2】 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Sheets("Sheet1").Range("$A$1").Value = Sheets("Sheet2").Range("$A$1").Value Sheets("Sheet1").Range("$A$1").Interior.ColorIndex = Sheets("Sheet2").Range("$A$1").Interior.ColorIndex End If End Sub 上記のコードを記述しています。値のリンクはできているのですが背景色のリンクがどうしてもうまくできません。どちらかの変更と同時にもう一方の背景色も変更されるようにするにはどうすればよいでしょうか? どんな方法でもかまいませんのでお詳しい方よろしくお願いします。
- 締切済み
- Visual Basic
- excel2000vba ハイパーリンク
excel2000のVBAのプロシージャを教えてください。 写真にあるとおり、sheet1の A1からA200セルまでに、 フルパスのアドレス、0、空白 が入っています。 ここで、フルパスが入っているセルを 下記の条件でハイパーリンクに置きかえたい。 1.フルパスの入っているセルをハイパーリンクのセルに変更する。 2.ハイパーリンクは、ハイパーリンクでも、ハイパーリンク関数でもいい 3.そのフルパスをハイパーリンクのリンク先アドレスにする。 4.表示文字列を ★ としたいです。 また、0が入っているセルは、空白に変更させたい。 以上がやりたいことです。そして下記プロシージャでトライしてみましたがエラーとなりうまくいきません。 プロシージャの修正もしくは、最適なプロシージャがあれば教えて欲しいです。 よろしくお願いします。 Sub test() Dim trange As Range Dim i As Long For i = 1 To 200 trange = ("A" & i) If trange.Value = "" Or "0" Then trange.Value = "" Else Worksheets("Sheet2").trange.Hyperlinks.Add anchor:="★", Address:=trange.Value End If Next i End Sub
- ベストアンサー
- オフィス系ソフト
- excel2000のvbaハイパーリンク
excel2000のvbaユーザーフォームで ラベルをクリックしたら、ハイパーリンクで別のファイルを開くのですが、リンクが切れていた場合、リンクが切れているという風に警告してもらいたいです。 リンクさせるアドレスを、sheet1のA1セルに格納していますが、下記のままだと、リンク切れしていたばあい、エラーとなってしまいます。Private Sub テストラベル_Click()ThisWorkbook.FollowHyperlink Address:=Worksheets(”Sheet1”).Range("A1").TextEnd Subどう修正すればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelシート上のボタンでセルの背景色を設定する
シート上のボタンを押したときにセルの値と背景色を設定したいのですが、エラーになります。 原因・解決策が分かる方お願いいたします。 Private Sub CommandButton1_Click() With Range("A1") .Value = "Yellow" .Interior.ColorIndex = 6 '実行時エラー1004:InteriorクラスのColorIndexプロパティを設定できません。 End With End Sub 環境 Excel97/Win98
- ベストアンサー
- Visual Basic
- エクセルのハイパーリンクについて
エクセルでsheet1の任意のセルをクリックすると、sheet2の任意のセルにハイパーリンクするようにしています。 その際に、ハイパーリンク先の該当箇所に色がつくようにVisual Basicでプログラムを組み込みました。ひとつのハイパーリンク元にひとつのハイパーリンク先を作っていましたが、ひとつのハイパーリンク元に複数のハイパーリンク先を作り、ハイパーリンク先の該当箇所に色をつけたいのですが、どのようにすればよいのでしょうか?(2つハイパーリンク先があるときは、2つの該当セルに色がつくようにしたいです) Visual Basicで作ったプログラムは以下のとおりです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlColorIndexNone End Sub Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) ActiveCell.Interior.ColorIndex = 3 End Sub このプログラムを修正する必要がある場合は、Visual Basic初心者なので具体的にどのようにすればよいか教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL マクロ 条件によるセルの色付け
お世話になります。 マクロは初心者です。 C列の数値1~6によって、E列に色付けしたく、ネットで色々検索して、 下記のように組んだのですがコマンドボタンクリックでは上手く動かない のですが、どのように修正すればよいのでしょうか。教えて下さい。 宜しくお願いします。 Private Sub CommandButton4_Click() Dim i As Range Dim r As Range Dim c As Range Dim myColor As Long Set i = Worksheets("マスタ").Range("C:C") Set r = Worksheets("マスタ").Range("E:E") If Intersect(Target, i) Is Nothing Then Exit Sub For Each c In Intersect(Target, i) With c Select Case .Value Case "1" myColor = 22 Case "2" myColor = 44 Case "3" myColor = 6 Case "4" myColor = 43 Case "5" myColor = 41 Case "6" myColor = 24 Case Else myColor = xlColorIndexNone End Select Intersect(c.EntireRow, r).Interior.ColorIndex = myColor End With Next End Sub
- ベストアンサー
- その他MS Office製品
- ハイパーリンクの表示で質問の続きです。
これで大丈夫かな? Sub test() Dim i As Long For i = 1 To Range("A65536").End(xlUp).Row Cells(i, 1).Hyperlinks(1).TextToDisplay = Cells(i, 1).Hyperlinks(1).Address Cells(i, 2).Value = Cells(i, 1).Hyperlinks(1).Address Next i End Sub ------------------- 有難うございました。完璧ですが、 ハイパーリンクのないセルのところでエラーになります。 ハイパーリンクのないセルは無視(エラーを無視)して次のセルの作業を指示したいのですが、・・・お願いします。 しばらくVBAを離れていまして思い出せません。すみません。
- ベストアンサー
- Visual Basic
- 複数のコマンドボタン(VBAで)を一つにまとめたい。
複数のコマンドボタン(VBAで)を一つにまとめたい。 Private Sub CommandButton1_Click() Application.Goto Reference:=Range("A7"), Scroll:=True End Sub Private Sub CommandButton2_Click() Application.Goto Reference:=Range("A29"), Scroll:=True End Sub Private Sub CommandButton3_Click() Application.Goto Reference:=Range("A51"), Scroll:=True End Sub Private Sub CommandButton4_Click() Application.Goto Reference:=Range("A73"), Scroll:=True End Sub Private Sub CommandButton5_Click() Application.Goto Reference:=Range("A95"), Scroll:=True End Sub Private Sub CommandButton6_Click() Application.Goto Reference:=Range("A117"), Scroll:=True End Sub Private Sub CommandButton7_Click() Application.Goto Reference:=Range("A139"), Scroll:=True End Sub Private Sub CommandButton8_Click() Application.Goto Reference:=Range("A161"), Scroll:=True End Sub Private Sub CommandButton9_Click() Application.Goto Reference:=Range("A183"), Scroll:=True End Sub Private Sub CommandButton10_Click() Application.Goto Reference:=Range("A205"), Scroll:=True End Sub Private Sub CommandButton11_Click() Application.Goto Reference:=Range("A227"), Scroll:=True End Sub 上記のように複数のコマンドボタンを関数化して一つにすることは出来るでしょうか?
- ベストアンサー
- Visual Basic
- セルに入力されているアドレスでハイパーリンクを開き
http://officetanaka.net/excel/vba/tips/tips42.htm これを同じようにしてるのですが Sub test() Range("a1").Value = "http://www.goo.ne.jp/" Range("a1").Hyperlinks(1).Follow NewWindow:=True End Sub これだとエラーになるのですがどうしてでしょうか? 「インデックスが有効範囲にありません。」 と言われます。 セルに入力されているアドレスでハイパーリンクを開きたいです。
- ベストアンサー
- オフィス系ソフト