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
- Kuinka avaan tiedostovalintaikkunan VBA:ssa?
- Käyttää Application.FileDialog(msoFileDialogFilePicker) Voit avata tiedostovalintaikkunan ja antaa käyttäjien valita tiedoston.
- Kuinka saan Excelin esiintymän VBA:ssa?
- Voit käyttää GetObject("", "Excel.Application") saada olemassa oleva Excel-esiintymä tai CreateObject("Excel.Application") luodaksesi uuden.
- Kuinka avaan Excel-työkirjan VBA:ssa?
- Käyttää xlbook.Workbooks.Open("filePath") avataksesi Excel-työkirjan määritetystä tiedostopolusta.
- Mikä on paras tapa lukea tietoja Excelistä VBA:ssa?
- Käyttämällä xlsheet.Range("A1").CurrentRegion.Value lukee arkin koko nykyisen alueen solusta A1 alkaen taulukkoon.
- Kuinka voin siirtää kohdistimen Word-asiakirjan alkuun VBA:ssa?
- Käsky Selection.HomeKey wdStory siirtää valinnan asiakirjan alkuun.
- Mitä Selection.Find.ClearFormatting tekee VBA:ssa?
- Se tyhjentää kaikki aiemmat hakutoiminnossa käytetyt muotoiluasetukset ja varmistaa uuden haun.
- Kuinka voin muuttaa tekstin oikeaan kirjainkoon VBA:ssa?
- Käytä StrConv(text, vbProperCase) toiminto muuntaa tekstin oikeisiin kirjaimiin.
- Kuinka voin käyttää useita muotoiluvaihtoehtoja tekstiin VBA:ssa?
- 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.