Ten samouczek VBA obejmuje różne sposoby pracy z hiperłączami w VBA.
Hiperłącza VBA
Dzięki VBA możesz dodawać hiperłącza, usuwać hiperłącza, tworzyć wiadomości e-mail za pomocą hiperłączy i otwierać pliki za pomocą hiperłączy w VBA.
Dodaj hiperłącze za pomocą VBA
Metoda Hyperlinks.Add dodaje hiperłącze do komórki przy użyciu języka VBA.
Poniższy kod doda hiperłącze do komórki A1:
123 | Sub DodajHiperłączeDoKomórki()ActiveSheet.Hyperlinks.Add Range("A1"), Adres:="https://www.automateexcel.com/excel/"Napis końcowy |
Wynik to:
Dodawanie tekstu do wyświetlania za pomocą VBA
Możesz dodać zgrabny, przyjazny dla użytkownika tekst do wyświetlenia do hiperłącza za pomocą VBA. Jeśli korzystasz z funkcji arkusza roboczego, wstawiasz hiperłącze, a następnie dodajesz tekst do wyświetlenia w wyświetlonym oknie dialogowym.
Poniższy kod pokazuje, jak dodać tekst do wyświetlenia do hiperłącza za pomocą VBA:
123 | Tekst podrzędny do wyświetlenia dla hiperłącza()ActiveSheet.Hyperlinks.Add Range("A1"), Adres:="https://www.automateexcel.com/excel/", TextToDisplay:="Automatyzacja programu Excel"Napis końcowy |
Wynik to:
Dodawanie etykietki ekranowej za pomocą VBA
Do hiperłącza możesz dodać etykietkę ekranową, którą zobaczy widz po najechaniu na łącze.
Poniższy kod pokazuje, jak dodać etykietkę ekranową do hiperłącza za pomocą VBA:
123 | Podpowiedź ekranowa dla hiperłącza()ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/", TextToDisplay:="Automate Excel", ScreenTip:="To jest łącze do automatyzacji programu Excel"Napis końcowy |
Wynik to:
Usuń hiperłącze za pomocą VBA
Metoda Hyperlinks.Delete może służyć do usuwania hiperłącza z komórki.
Poniższy kod usunie hiperłącze z komórki A1 i tekst w komórce.
Zauważ, że samo usunięcie hiperłącza nie powoduje usunięcia samego tekstu, dlatego jeśli chcesz usunąć tekst, musisz również użyć metody Clear.
1234 | Sub UsuńHiperlinkinCell()Zakres("A1").Hiperłącza.UsuńZakres ("A1"). WyczyśćNapis końcowy |
Usuń wszystkie hiperłącza w arkuszu
Możesz również usunąć wszystkie hiperłącza w arkuszu za pomocą metody Hyperlinks.Delete.
Poniższy kod usunie wszystkie hiperłącza w pierwszym arkuszu w skoroszycie:
123 | Sub Usuń wszystkie hiperłącza w arkuszu()ThisWorkbook.Sheets(1).Hyperlinks.DeleteNapis końcowy |
Śledź hiperłącze witryny za pomocą VBA
Poniższy kod umożliwia otwarcie adresu witryny w nowym oknie w przeglądarce przy użyciu metody FollowHyperlink w skoroszycie:
123 | Sub ObserwujHiperłączeDlaWitryny()ActiveWorkbook.FollowHyperlink Adres:="https://www.automateexcel.com/excel", NewWindow:=TrueNapis końcowy |
Podążaj za hiperłączem do folderu na dysku
Poniższy kod otworzy folder o nazwie ExcelFiles na pulpicie przy użyciu metody FollowHyperlink:
123 | Sub FollowHyperlinkForFolderOnDrive()ActiveWorkbook.FollowHyperlink Adres: = "C:\Desktop\ExcelFiles"Napis końcowy |
Postępuj zgodnie z hiperłączem do pliku na dysku
Poniższy kod otworzy plik Excel o nazwie WorkbookOne w folderze o nazwie ExcelFiles na pulpicie przy użyciu metody FollowHyperlink:
123 | Sub FollowHyperlinkForFile()ActiveWorkbook.FollowHyperlink Address:="C:\Desktop\ExcelFiles\WorkbookOne.xlsx", NewWindow:=TrueNapis końcowy |
Przejdź do komórki w innym arkuszu w tym samym skoroszycie
Możesz dodać hiperłącze do komórki w jednym arkuszu, które przeniesie Cię do innego arkusza, w tym samym skoroszycie z VBA. Załóżmy, że znajdujesz się w arkuszu Sheet1, komórka A1 skoroszytu i chcesz wstawić hiperłącze do Sheet2, komórka B2 tego samego skoroszytu, możesz w tym celu użyć właściwości SubAddress.
Poniższy kod pokazuje, jak to zrobić:
123 | Sub IdźDoInnej KomórkiWInnymArkuszuWTym Samym Skoroszycie()ActiveSheet.Hyperlinks.Add Range("A1"), Address:="", SubAddress:="'" & Sheet2.Name & "'!B2", TextToDisplay:="Kliknij tutaj, aby przejść do arkusza2, komórka B2 ten sam skoroszyt"Napis końcowy |
Wyświetl wszystkie hiperłącza w arkuszu
Możesz uzyskać dostęp do kolekcji hiperłączy i wyświetlić wszystkie hiperłącza w arkuszu w Okno pośrednie w edytorze VBA. Musisz najpierw nacisnąć CTRL+G na klawiaturze lub przejdź do Widok>Okno pośrednie w edytorze VBE, aby wyświetlić okno pośrednie.
Poniższy kod pokazuje, jak wyświetlić hiperłącza w arkuszu w oknie pośrednim:
1234567891011 | Sub Pokaż wszystkie hiperłącza w arkuszu roboczym()Dim ws As WorksheetUstaw ws = ThisWorkbook.Sheets(1)Dla każdego linku w ws.HyperlinksDebug.Drukuj lnk.AdresNastępny linkNapis końcowy |
Wyniki są pokazane w oknie pośrednim.
Wyświetl wszystkie hiperłącza w skoroszycie
Możesz uzyskać dostęp do kolekcji hiperłączy, aby przeglądać i wyświetlać wszystkie hiperłącza w skoroszycie w oknie wiadomości.
Poniższy kod pokazuje, jak to zrobić, i wykorzystuje zagnieżdżoną pętlę, aby to osiągnąć:
1234567891011 | Sub Pokaż wszystkie hiperłącza w skoroszycie()Dim ws As WorksheetDla każdego ws In ActiveWorkbook.WorksheetsDla każdego linku w ws.HyperlinksMsgBox Lnk.AdresNastępny linkNastępnyNapis końcowy |
Używanie metody FollowHyperlink do tworzenia wiadomości e-mail
Możesz także tworzyć e-maile za pomocą metody FollowHyperlink.
Poniższy kod pokaże Ci, jak tworzyć wiadomości e-mail za pomocą metody FollowHyperlink w VBA:
12345678 | Sub Wyślij e-mail za pomocą hiperłącza()Dim msgLink jako ciągmsgLink = "mailto:" & "[email protected]" & "?" & "temat=" & "Cześć" & "&" & "ciało=" & "Jak się masz?"ActiveWorkbook.FollowHyperłącze (msgLink)Napis końcowy |
Wynik to:
Dodawanie hiperłącza do autokształtu w programie Excel
Możesz dodać hiperłącze do autokształtu w programie Excel, aby po kliknięciu przez użytkownika kształtu został przeniesiony na adres witryny internetowej.
Poniższy kod tworzy zaokrąglony prostokąt, dodaje tekst do prostokąta i dodaje hiperłącze do prostokąta:
12345678910111213 | Sub DodawanieHiperłącza do Kształtu()Przyciemnij myShape jako kształtUstaw mójDokument = Arkusze("Arkusz1")Ustaw myShape = myDocument.Shapes.AddShape(msoShapeRoundedRectangle, 100, 100, 90, 30)Z myShape.TextFrame.Characters.Text = "Automatyzacja Excela"Kończyć zActiveSheet.Hyperlinks.Add Anchor:=myShape, Address:="https://www.automateexcel.com/excel"Napis końcowy |
Wynik to:
Wstawianie formuły hiperłącza do komórki za pomocą VBA
Załóżmy, że masz tytuł posta w komórce A4 i link do posta w komórce B4, jak pokazano na poniższym obrazku.
Szybkie przypomnienie składni formuły hiperłącza arkusza roboczego to:
HIPERLINK(lokalizacja_linku, [przyjazna_nazwa])
link_location - to jest łącze do dokumentu, pliku, miejsca w skoroszycie lub witrynie internetowej.
przyjazne imię - (Opcjonalny) - tekst lub wartość liczbowa wyświetlana w komórce.
W komórce C4 chcesz dodać hiperłącze z przyjaznym tekstem do wyświetlenia, teraz zwykle wpiszesz formułę = HIPERLINK (B4, A4) w C4, aby uzyskać następujące informacje:
Zamiast tego możesz użyć VBA, aby osiągnąć ten sam wynik, i wstawić tę formułę do komórki w arkuszu Sheet1 z następującym kodem:
123 | Sub Wstaw formułę hiperłącza w komórce()ActiveWorkbook.Worksheets("Arkusz1").Range("C4").Formula = "=hiperłącze(B4,A4)"Napis końcowy |
Dodawanie hiperłącza do przycisku w programie Access
VBA umożliwia również pracę z hiperłączami w programie Access. Załóżmy, że mamy przycisk na formularzu i gdy użytkownik kliknie ten przycisk, chcemy, aby został przeniesiony na stronę internetową. Jednym ze sposobów, w jaki możesz to zrobić, jest użycie metody Application.FollowHyperlink.
Mamy nasz przykładowy formularz z przyciskiem o nazwie buttonOne pokazany poniżej.
Kod tego przycisku to:
12345 | Prywatny przycisk podrzędnyJedno kliknięcie()Application.FollowHyperlink ("https://www.automateexcel.com/excel/")Napis końcowy |
Tworzenie hiperłącza z zaznaczenia w programie Word
Możesz również pracować z hiperłączami w programie Word VBA.
Powiedzmy, że mamy tekst w Słowo z napisem „Kliknij tutaj, aby zostać przeniesionym do witryny Automate Excel”, który jest wybrany, jak pokazano poniżej.
Aby zamienić ten tekst w hiperłącze za pomocą VBA, możesz użyć następującego kodu:
123 | Prywatna podrzędna TurnASelectionIntoAHyperlink()ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="https://www.automateexcel.com/excel/", ScreenTip:="Kliknij tutaj, proszę", Target:=NewWindowNapis końcowy |
Wynik to: