Avatar billede Falentin Seniormester
28. august 2018 - 00:21 Der er 1 løsning

fed skrift i alle tabeller i word?

Med følgende skript:

Sub test()

Dim lTbl As Long

For lTbl = 1 To ActiveDocument.Tables.Count
ActiveDocument.Tables(lTbl).Rows(1).Range.Font.Bold = True
ActiveDocument.Tables(lTbl).Rows(1).Range.Shading.ForegroundPatternColor = wdColorAutomatic
ActiveDocument.Tables(lTbl).Rows(1).Range.Shading.BackgroundPatternColor = -671039489
ActiveDocument.Tables(lTbl).Rows(1).Range.Font.ColorIndex = wdWhite
Next lTbl
End Sub

Kan jeg lave fed tekst i den første række i en tabel i word. men hvordan får jeg fed skrift i den første kolone i alle tabeller i et word doukument?
Avatar billede Lene Fredborg Ekspert
28. august 2018 - 01:25 #1
Forudsætningen for, at du kan ændre pr. kolonne, er, at tabellerne er ”uniform” i VBA-forstand, dvs. ikke noget med flettede celler eller andet, som gør tabellerne irregulære. Hvis man opererer på individuelle celler, undgås det problem.

Den makro, du har vist, vil også fejle, hvis der er lodret flettede celler, dvs. hvis de enkelte kolonner ikke har lige mange celler.

Jeg har lavet denne makro, som gør første kolonne i hver tabel fed:

Sub BoldColumn1_AllTables()
    Dim oTable As Table
    Dim oCol As Column
    Dim oCell As Cell
   
    For Each oTable In ActiveDocument.Tables
        'apply bold to all cells that have column index 1, i.e. first cell in row
        For Each oCell In oTable.Range.Cells
            If oCell.ColumnIndex = 1 Then
                oCell.Range.Font.Bold = True
            End If
        Next oCell
    Next oTable
           
End Sub


NB Den makro, du har vist, kan laves noget mere elegant. Desuden er det mere effektivt  at operere med For Each i stedet for at bruge en tæller (koden kører hurtigere), og at nøjes med at referere samme objekt én gang ved at bruge With og End With. Nedenfor er en version, som jeg har tilrettet. Den vil stadig fejle, hvis der er lodret flettede celler (kan ændres svarende til makroen ovenfor):

Sub TestRevised()

    Dim oTable As Table

    For Each oTable In ActiveDocument.Tables
        With oTable.Rows(1).Range
            .Font.Bold = True
            .Font.ColorIndex = wdWhite
            .Shading.ForegroundPatternColor = wdColorAutomatic
            .Shading.BackgroundPatternColor = -671039489
        End With
    Next oTable
End Sub

De to linjer med .Font kunne reelt også anvende With/End With. Det samme gælder  de to linjer med .Shading - men det er OK at gøre som vist her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester