Makro VBA za posodabljanje oblikovanja znanstvenih imen v Wordovih dokumentih

VBA

Izboljšanje oblikovanja znanstvenih imen z makri VBA

Uporaba makrov VBA za oblikovanje znanstvenih imen v Wordovih dokumentih je zmogljivo orodje, zlasti pri črpanju podatkov iz Excela. Ta članek obravnava poseben makro VBA, ki je odličen pri krepkem tisku, ležečem tisku in spreminjanju pisave znanstvenih imen, vendar ima težave s posodabljanjem besedila v velike in male črke.

Kljub svoji učinkovitosti v drugih vidikih oblikovanja makro ne uspe pretvoriti znanstvenih imen v želeno velikost črk. Ta članek raziskuje težavo in možne rešitve, s ciljem zagotoviti, da so vsa znanstvena imena v skladu s standardi pravilnega oblikovanja.

Ukaz Opis
Application.FileDialog(msoFileDialogFilePicker) Odpre pogovorno okno datoteke za izbiro datoteke, v tem primeru Excelovega delovnega zvezka.
GetObject("", "Excel.Application") Pridobi obstoječi primerek Excela, če se že izvaja.
CreateObject("Excel.Application") Ustvari nov primerek Excela, če se še ne izvaja.
xlbook.Workbooks.Open(strSource) Odpre izbran Excelov delovni zvezek.
xlsheet.Range("A1").CurrentRegion.Value Pridobi vrednost trenutne regije, začenši s celico A1 na Excelovem listu.
Selection.HomeKey wdStory Premakne izbor na začetek dokumenta.
Selection.Find.ClearFormatting Počisti vse prejšnje nastavitve oblikovanja v operaciji iskanja.
StrConv(rng.Text, vbProperCase) Pretvori besedilo v obsegu v prave velike in male črke (male in male črke).

Razumevanje makra VBA za oblikovanje znanstvenih imen

Priloženi makro VBA je zasnovan za avtomatizacijo postopka oblikovanja znanstvenih imen v Wordovem dokumentu z uporabo podatkov iz Excelovega lista. Skript se začne z odpiranjem pogovornega okna datoteke (), da uporabniku omogoči izbiro Excelovega delovnega zvezka, ki vsebuje znanstvena imena za oblikovanje. Nato se poskuša povezati z obstoječim primerkom Excela z uporabo ali ustvari nov primerek, če Excel še ni zagnan (). Ko je delovni zvezek odprt, makro prebere podatke iz podanega obsega (xlsheet.Range("A1").CurrentRegion.Value) in ga shrani v matriko za nadaljnjo obdelavo.

Za vsako znanstveno ime v matriki makro uporablja predmet za iskanje izraza v Wordovem dokumentu. Ko najde ujemanje, skript za besedilo uporabi različne možnosti oblikovanja, na primer ležeče (), krepko (), spreminjanje barve pisave (rng.Font.Color = RGB(200, 187, 0)) in nastavite vrsto pisave na Times New Roman (). Ključni vidik tega makra je poskus spreminjanja besedila v velike in male črke v stavku , ki pa žal ne deluje tako, kot je predvideno. Skript vključuje tudi alternativni pristop z ročno pretvorbo besedila v prave črke z .

Makro VBA za posodobitev oblikovanja znanstvenih imen v Wordu

Visual Basic za aplikacije (VBA) za Word in Excel

Sub format_scientific_names()
    Dim xlapp As Object
    Dim xlbook As Object
    Dim xlsheet As Object
    Dim myarray As Variant
    Dim FD As FileDialog
    Dim strSource As String
    Dim i As Long, lognum As Long
    Set FD = Application.FileDialog(msoFileDialogFilePicker)
    With FD
        .Title = "Select the workbook that contains the terms to be italicized"
        .Filters.Clear
        .Filters.Add "Excel Workbooks", "*.xlsx"
        .AllowMultiSelect = False
        If .Show = -1 Then
            strSource = .SelectedItems(1)
        Else
            MsgBox "You did not select the workbook that contains the data"
            Exit Sub
        End If
    End With
    On Error Resume Next
    Set xlapp = GetObject("", "Excel.Application")
    If Err Then
        bstartApp = True
        Set xlapp = CreateObject("Excel.Application")
    End If
    On Error GoTo 0
    Set xlbook = xlapp.Workbooks.Open(strSource)
    Set xlsheet = xlbook.Worksheets(1)
    myarray = xlsheet.Range("A1").CurrentRegion.Value
    If bstartApp = True Then xlapp.Quit
    Set xlapp = Nothing
    Set xlbook = Nothing
    Set xlsheet = Nothing
    For i = LBound(myarray) To UBound(myarray)
        Selection.HomeKey wdStory
        Selection.Find.ClearFormatting
        With Selection.Find
            Do While .Execute(FindText:=myarray(i, 1), Forward:=True, _
            MatchWildcards:=True, Wrap:=wdFindStop, MatchCase:=False) = True
                Set rng = Selection.Range
                Selection.Collapse wdCollapseEnd
                rng.Font.Italic = True
                rng.Font.Bold = True
                rng.Font.Color = RGB(200, 187, 0)
                rng.Font.Name = "Times New Roman"
                rng.Text = StrConv(rng.Text, vbProperCase)
            Loop
        End With
    Next i
End Sub

Skript VBA za dedovanje velikih in malih črk iz Excelovih podatkov

VBA za integracijo Excela in Worda

Sub format_scientific_names_inherit_case()
    Dim xlapp As Object
    Dim xlbook As Object
    Dim xlsheet As Object
    Dim myarray As Variant
    Dim FD As FileDialog
    Dim strSource As String
    Dim i As Long, lognum As Long
    Set FD = Application.FileDialog(msoFileDialogFilePicker)
    With FD
        .Title = "Select the workbook that contains the terms to be italicized"
        .Filters.Clear
        .Filters.Add "Excel Workbooks", "*.xlsx"
        .AllowMultiSelect = False
        If .Show = -1 Then
            strSource = .SelectedItems(1)
        Else
            MsgBox "You did not select the workbook that contains the data"
            Exit Sub
        End If
    End With
    On Error Resume Next
    Set xlapp = GetObject("", "Excel.Application")
    If Err Then
        bstartApp = True
        Set xlapp = CreateObject("Excel.Application")
    End If
    On Error GoTo 0
    Set xlbook = xlapp.Workbooks.Open(strSource)
    Set xlsheet = xlbook.Worksheets(1)
    myarray = xlsheet.Range("A1").CurrentRegion.Value
    If bstartApp = True Then xlapp.Quit
    Set xlapp = Nothing
    Set xlbook = Nothing
    Set xlsheet = Nothing
    For i = LBound(myarray) To UBound(myarray)
        Selection.HomeKey wdStory
        Selection.Find.ClearFormatting
        With Selection.Find
            Do While .Execute(FindText:=myarray(i, 1), Forward:=True, _
            MatchWildcards:=True, Wrap:=wdFindStop, MatchCase:=False) = True
                Set rng = Selection.Range
                Selection.Collapse wdCollapseEnd
                rng.Text = myarray(i, 1)
                rng.Font.Italic = True
                rng.Font.Bold = True
                rng.Font.Color = RGB(200, 187, 0)
                rng.Font.Name = "Times New Roman"
            Loop
        End With
    Next i
End Sub

Napredne tehnike VBA za oblikovanje besedila v Wordu

Ko delate z makri VBA za oblikovanje besedila v Wordovih dokumentih, morate poleg preprostih ukazov za oblikovanje upoštevati še številne vidike. Eden od ključnih elementov je zagotavljanje pravilnega ravnanja z velikimi in malimi črkami besedila, zlasti ko gre za specifično nomenklaturo, kot so znanstvena imena. Makro, ki integrira podatke iz Excela in uporablja različne možnosti oblikovanja v Wordu, lahko bistveno poenostavi pripravo dokumenta. Vendar pa je doseganje pravilne velikosti besedila, kot je na primer stavek, lahko izziv. Ta težava se pogosto pojavi, ker privzete funkcije VBA spreminjajo velike in male črke, npr in , ne izpolnjujejo vedno zahtev za bolj niansirane prilagoditve velikih in malih črk besedila.

Drug pristop vključuje uporabo funkcij po meri ali izkoriščanje Excelovih zmogljivosti za upravljanje malih in malih črk besedila pred prenosom podatkov v Word. Če na primer zagotovite, da so znanstvena imena pravilno oblikovana v Excelu, preden zaženete Wordov makro, lahko prihranite čas in zmanjšate napake. VBA funkcija, ki pretvarja nize v različne male in male črke, je lahko uporabna, vendar zahteva skrbno izvajanje. Poleg tega razumevanje, kako manipulirati z Učinkovito lociranje in zamenjava besedila je bistvenega pomena za natančno iskanje in zamenjavo besedila. Vključitev obravnavanja napak in zagotavljanje, da lahko makro obravnava različne besedilne scenarije, bo privedlo do robustnejše in zanesljivejše avtomatizacije.

  1. Kako odprem pogovorno okno datoteke v VBA?
  2. Uporaba da odprete pogovorno okno datoteke in omogočite uporabnikom, da izberejo datoteko.
  3. Kako lahko dobim primerek Excela v VBA?
  4. Lahko uporabiš da dobimo obstoječo instanco Excela oz ustvariti novo.
  5. Kako odprem Excelov delovni zvezek v VBA?
  6. Uporaba da odprete Excelov delovni zvezek z podane poti datoteke.
  7. Kateri je najboljši način za branje vrste podatkov iz Excela v VBA?
  8. Uporaba prebere celotno trenutno območje lista, začenši od celice A1 v matriko.
  9. Kako lahko premaknem kazalec na začetek Wordovega dokumenta v VBA?
  10. Ukaz premakne izbor na začetek dokumenta.
  11. Kaj počne Selection.Find.ClearFormatting v VBA?
  12. Počisti vse prejšnje nastavitve oblikovanja, uporabljene za operacijo iskanja, in tako zagotovi novo iskanje.
  13. Kako v VBA spremenim besedilo v pravilne velike in male črke?
  14. Uporabi funkcijo za pretvorbo besedila v prave črke.
  15. Kako uporabim več možnosti oblikovanja za besedilo v VBA?
  16. Uporabite lahko različno oblikovanje, na primer poševno, krepko in barvo pisave , , in .

Zaključek in naslednji koraki

Če povzamemo, ustvarjanje makra VBA za oblikovanje znanstvenih imen v Wordovih dokumentih vključuje več korakov, vključno s pridobivanjem podatkov iz Excela in uporabo več možnosti oblikovanja. Čeprav lahko makro učinkovito spremeni sloge in barve pisave, ostaja oblikovanje velikih in malih črk v stavku izziv. Prihodnje izboljšave lahko vključujejo funkcije po meri ali predhodno oblikovanje podatkov v Excelu, da se zagotovi doslednost. Pravilno ravnanje z velikimi in malimi črkami bo povečalo berljivost in strokovnost znanstvenih dokumentov.