Ostatnio dotknąłem się do programowania Worda. Nie było to przyjemne uczucie 😉
No ale w końcu jest to Akademia VBA a nie Akademia VBA Excel i Access 🙂
Po zaznaczeniu jakiegoś tekstu kod kopiuje aktywny plik pod nazwą jak zaznaczenie i od razu robi link do niego. Używa też fajnej funkcji do odczyszczania tekstu ze zbędnych znaków specjalnych i innych zabronionych w nazwach obiektów i plików
Sub UtworzKopiePliku_i_Link() Dim MojDokument As Word.Document Dim Kopia As Word.Document Dim ZaznTekst As String Dim SciezkaMojDokument As String Dim SciezkaFolder As String ZaznTekst = fnCzystyTekst(Selection.Range.Text) If Len(ZaznTekst) = 0 Then MsgBox "Brak zaznaczenia!" Exit Sub End If Set MojDokument = ThisDocument SciezkaMojDokument = MojDokument.FullName SciezkaFolder = MojDokument.Path & "\" MojDokument.Bookmarks.Add ZaznTekst, Selection MojDokument.Save MojDokument.SaveAs SciezkaFolder & ZaznTekst & ".docm" Set Kopia = MojDokument Set MojDokument = Documents.Open(SciezkaMojDokument) Selection.GoTo What:=wdGoToBookmark, Name:=ZaznTekst MojDokument.Hyperlinks.Add Anchor:=Selection.Range, _ Address:=Kopia.Name, TextToDisplay:=ZaznTekst Set MojDokument = Nothing Kopia.Close Set Kopia = Nothing End Sub Function fnCzystyTekst(Tekst As String) Dim Znak As String * 1, NrZnaku As Long For NrZnaku = 1 To Len(Tekst) Znak = Mid(Tekst, NrZnaku, 1) If Znak Like "[A-Z,a-z,0-9,Ć,Ę,Ł,Ó,Ś,Ż,Ź,ć,ę,ł,ó,ś,ż,ź]" Then fnCzystyTekst = fnCzystyTekst & Znak End If Next End Function |