Wpis z mikrobloga

Mam prośbę do ludzi zajmujących się #programowanie #vba o małe makro do Word-a. Pewnie sam bym je wymęczył, ale z moja nikłą wiedza trwało by to długo. Natomiast dla zawodowca to pewnie chwila.

Makro ma wstawić zakładkę w miejscu kursora czy aktualnego zaznaczenia, a nazwa zakładki ma być wzięta z aktualnie zaznaczonego tekstu (o ile coś jest zaznaczone) albo z czterech pierwszych słów wiersza (gdy nic nie jest zaznaczone)
Algorytm wyobrażam sobie tak:
1. zadeklaruj zmienią NazwaZakładki
2. sprawdź czy jest coś zaznaczone
2a jeśli tak przypisz do NazwaZakładki treść zaznaczenia
2b jeśli nie przypisz do NazwaZakładki 4 pierwsze słowa z wiersza
3 przekształć NazwaZakładki na mozliwoą nazwę zakładki - nie może zawierać spacji i nie może zaczynać się od cyfr
- preferowana nazwa dla mnie byłby to jeden ciąg znaków gdzie pierwsze znaki każdego słowa byłby dużą literą np. "To jest zakładka" -> ToJestZakładka
- o ile osiągnięcie preferowanej nazwy zakładki jest niemożliwe to podmieniłbym spację w zmiennej NazwaZakładki na "" czyli "To jest zakładka" -> Tojest_zakładka
4. wstaw zakładkę o nazwie NazwaZakładki w miejscu kursora czy zaznaczenia.
  • 2
@FreeSheep:
Żeby nie było że nic nie robię ;)

Sub WstawZakladka()
' makro wstawiające zakładkę
Dim NazwaZakladki As String
NazwaZakladki = Selection.Text
NazwaZakladki = Replace(NazwaZakladki, " ", "_")
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=NazwaZakladki
.DefaultSorting = wdSortByLocation
.ShowHidden = False
End With
End Sub

ale to chyba koniec moich możliwości proszę o pomoc #programowanie #vba
@FreeSheep:

Po dalszej męczarni ;)

Sub WstawZakladka()
' makro wstawiające zakładkę
' deklaracja zmiennych
Dim NazwaZakladki As String
Dim SugerowanaNazwa As String
Dim Cykl As Byte
' odczyt zaznaczenia
SugerowanaNazwa = Selection.Text
If Len(SugerowanaNazwa) < 3 Then
Selection.HomeKey Unit:=wdLine
Selection.MoveRight Unit:=wdWord, Count:=5, Extend:=wdExtend
SugerowanaNazwa = Selection.Text
End If
If Len(SugerowanaNazwa) > 255 Then
SugerowanaNazwa = "Zbyt długa nazwa"
End If
SugerowanaNazwa = InputBox("Podaj nazwę zakładki!", "Nowa zakładka", SugerowanaNazwa)
If Len(SugerowanaNazwa) <