VBA-makro Word-asiakirjojen tieteellisten nimien muotoilun päivittämiseen

VBA-makro Word-asiakirjojen tieteellisten nimien muotoilun päivittämiseen
VBA-makro Word-asiakirjojen tieteellisten nimien muotoilun päivittämiseen

Tieteellisen nimien muotoilun parantaminen VBA-makroilla

VBA-makrojen käyttäminen tieteellisten nimien muotoiluun Word-asiakirjoissa on tehokas työkalu, varsinkin kun haetaan tietoja Excelistä. Tässä artikkelissa käsitellään tiettyä VBA-makroa, joka on erinomainen lihavointi, kursivointi ja tieteellisten nimien fontin vaihtaminen, mutta jolla on vaikeuksia päivittää tekstiä isot ja pienet kirjaimet.

Huolimatta tehokkuudestaan ​​muissa muotoilunäkökohdissa, makro ei pysty muuttamaan tieteellisiä nimiä haluttuun lauseeseen. Tässä artikkelissa tarkastellaan ongelmaa ja mahdollisia ratkaisuja tavoitteena varmistaa, että kaikki tieteelliset nimet noudattavat asianmukaisia ​​muotoilustandardeja.

Komento Kuvaus
Application.FileDialog(msoFileDialogFilePicker) Avaa tiedoston valintaikkunan, jossa voit valita tiedoston, tässä tapauksessa Excel-työkirjan.
GetObject("", "Excel.Application") Hakee olemassa olevan Excelin esiintymän, jos se on jo käynnissä.
CreateObject("Excel.Application") Luo uuden Excelin esiintymän, jos se ei ole vielä käynnissä.
xlbook.Workbooks.Open(strSource) Avaa valitun Excel-työkirjan.
xlsheet.Range("A1").CurrentRegion.Value Hakee nykyisen alueen arvon alkaen solusta A1 Excel-taulukossa.
Selection.HomeKey wdStory Siirtää valinnan asiakirjan alkuun.
Selection.Find.ClearFormatting Tyhjentää kaikki aiemmat muotoiluasetukset hakutoiminnossa.
StrConv(rng.Text, vbProperCase) Muuntaa alueen tekstin oikeaan kirjainkoon (otsikon kirjainkoko).

VBA-makro tieteellistä nimien muotoilua varten

Mukana oleva VBA-makro on suunniteltu automatisoimaan tieteellisten nimien muotoiluprosessi Word-asiakirjassa käyttämällä Excel-arkin tietoja. Skripti alkaa avaamalla tiedostovalintaikkuna (Application.FileDialog(msoFileDialogFilePicker)), jotta käyttäjä voi valita Excel-työkirjan, joka sisältää muotoiltavat tieteelliset nimet. Sitten se yrittää muodostaa yhteyden olemassa olevaan Excel-esiintymään käyttämällä GetObject("", "Excel.Application") tai luo uuden ilmentymän, jos Excel ei ole jo käynnissä (CreateObject("Excel.Application")). Kun työkirja avataan, makro lukee tiedot määritetyltä alueelta (xlsheet.Range("A1").CurrentRegion.Value) ja tallentaa sen taulukkoon jatkokäsittelyä varten.

Jokaiselle taulukon tieteelliselle nimelle makro käyttää Selection.Find -objekti hakeaksesi termiä Word-asiakirjasta. Kun osuma löytyy, skripti käyttää tekstiin erilaisia ​​muotoiluvaihtoehtoja, kuten kursivoitu (rng.Font.Italic = True), lihavoitu (rng.Font.Bold = True), muuttaa fontin väriä (rng.Font.Color = RGB(200, 187, 0)) ja aseta kirjasintyypiksi Times New Roman (rng.Font.Name = "Times New Roman"). Tämän makron keskeinen osa on yrittää muuttaa tekstin kirjainkokoa käyttäen rng.Case = wdTitleSentence, joka ei valitettavasti toimi toivotulla tavalla. Käsikirjoitus sisältää myös vaihtoehtoisen lähestymistavan muuttamalla teksti manuaalisesti oikeaan kirjainkoon StrConv(rng.Text, vbProperCase).

VBA-makro tieteellisten nimien muotoilun päivittämiseksi Wordissa

Visual Basic for Applications (VBA) Wordille ja Excelille

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

VBA-komentosarja tapauksen perimiseksi Excel-tiedoista

VBA Excelin ja Wordin integrointiin

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

Kehittyneet VBA-tekniikat tekstin muotoiluun Wordissa

Kun työskentelet VBA-makrojen kanssa tekstin muotoiluun Word-asiakirjoissa, on otettava huomioon useita näkökohtia yksinkertaisten muotoilukomentojen lisäksi. Yksi ratkaiseva tekijä on varmistaa, että tekstin kirjainkokoa käsitellään oikein, varsinkin kun käsitellään tiettyä nimikkeistöä, kuten tieteellisiä nimiä. Makro, joka integroi tiedot Excelistä ja käyttää Wordin erilaisia ​​muotoiluvaihtoehtoja, voi yksinkertaistaa asiakirjan valmistelua merkittävästi. Kuitenkin oikean tekstin kirjainkoon, kuten lauseen kirjainkoon, saavuttaminen voi olla haastavaa. Tämä ongelma ilmenee usein, koska oletusarvoiset VBA-toiminnot kirjainkoon vaihtamiseen, kuten wdUpperCase ja wdLowerCase, eivät aina täytä vaatimuksia vivahteikkaampien tekstin kirjainten säätöjen osalta.

Toinen lähestymistapa sisältää mukautettujen funktioiden käyttämisen tai Excelin ominaisuuksien hyödyntämisen tekstin kirjainkoon hallinnassa ennen tietojen siirtämistä Wordiin. Esimerkiksi sen varmistaminen, että tieteelliset nimet on muotoiltu oikein Excelissä ennen Word-makron suorittamista, voi säästää aikaa ja vähentää virheitä. VBA:t StrConv toiminto, joka muuntaa merkkijonot eri tapauksiin, voi olla hyödyllinen, mutta vaatii huolellista toteutusta. Lisäksi ymmärrystä, kuinka manipuloida Selection.Find Objekti tehokkaasti on välttämätöntä tekstin tarkan paikantamisen ja korvaamisen kannalta. Virheenkäsittelyn sisällyttäminen ja sen varmistaminen, että makro pystyy käsittelemään erilaisia ​​tekstiskenaarioita, johtaa vankempaan ja luotettavampaan automaatioon.

Yleisiä kysymyksiä VBA-makroista tekstin muotoiluun

  1. Kuinka avaan tiedostovalintaikkunan VBA:ssa?
  2. Käyttää Application.FileDialog(msoFileDialogFilePicker) Voit avata tiedostovalintaikkunan ja antaa käyttäjien valita tiedoston.
  3. Kuinka saan Excelin esiintymän VBA:ssa?
  4. Voit käyttää GetObject("", "Excel.Application") saada olemassa oleva Excel-esiintymä tai CreateObject("Excel.Application") luodaksesi uuden.
  5. Kuinka avaan Excel-työkirjan VBA:ssa?
  6. Käyttää xlbook.Workbooks.Open("filePath") avataksesi Excel-työkirjan määritetystä tiedostopolusta.
  7. Mikä on paras tapa lukea tietoja Excelistä VBA:ssa?
  8. Käyttämällä xlsheet.Range("A1").CurrentRegion.Value lukee arkin koko nykyisen alueen solusta A1 alkaen taulukkoon.
  9. Kuinka voin siirtää kohdistimen Word-asiakirjan alkuun VBA:ssa?
  10. Käsky Selection.HomeKey wdStory siirtää valinnan asiakirjan alkuun.
  11. Mitä Selection.Find.ClearFormatting tekee VBA:ssa?
  12. Se tyhjentää kaikki aiemmat hakutoiminnossa käytetyt muotoiluasetukset ja varmistaa uuden haun.
  13. Kuinka voin muuttaa tekstin oikeaan kirjainkoon VBA:ssa?
  14. Käytä StrConv(text, vbProperCase) toiminto muuntaa tekstin oikeisiin kirjaimiin.
  15. Kuinka voin käyttää useita muotoiluvaihtoehtoja tekstiin VBA:ssa?
  16. Voit käyttää erilaisia ​​muotoiluja, kuten kursivoitua, lihavointia ja fontin väriä rng.Font.Italic = True, rng.Font.Bold = True, ja rng.Font.Color = RGB(200, 187, 0).

Johtopäätös ja seuraavat vaiheet

Yhteenvetona voidaan todeta, että VBA-makron luominen tieteellisten nimien muotoilemiseksi Word-asiakirjoissa sisältää useita vaiheita, kuten tietojen hakemisen Excelistä ja useiden muotoiluvaihtoehtojen käyttämisen. Vaikka makro voi muuttaa tehokkaasti kirjasinten tyylejä ja värejä, lauseiden kirjainkoon muotoilu on edelleen haaste. Tulevat parannukset voivat sisältää mukautettuja toimintoja tai tietojen esimuotoilua Excelissä johdonmukaisuuden varmistamiseksi. Tekstin asianmukainen käsittely parantaa tieteellisten asiakirjojen luettavuutta ja ammattimaisuutta.