هنگامی که یک جدول را در Word وارد می کنید، یک حاشیه به طور خودکار برای هر سلول در جدول ایجاد می شود. این حاشیه یک خط است و وزن آن یک و نیم نقطه است. متأسفانه، Word هیچ راهی برای تغییر عرض خط پیشفرض که هنگام ایجاد جدول استفاده میکنید، فراهم نمیکند. در حالی که درست است که میتوانید یک عرض خط را در کادر محاورهای Borders and Shading انتخاب کنید، اما وقتی جدول جدیدی را وارد میکنید، این وزن به یک نقطه بازنشانی میشود.
اگر عرض خط دیگری مانند سه چهارم نقطه می خواهید، مشکل دارید. شما باید به صورت دستی هر جدول جدیدی را انتخاب کنید و حاشیه ها را قالب بندی کنید، بنابراین عرض مورد نظر آنها باشد. اگر با میزهای زیادی کار می کنید، این می تواند به سرعت تبدیل به یک دردسر شود. البته می توانید یک سبک جدول ایجاد کنید، اما اگر تنها کاری که می خواهید انجام دهید تغییر پهنای خط است یا اگر با سندی کار می کنید که در آن قالب بندی صریح زیادی روی آن اعمال شده است، اعمال سبک جدول می تواند نتایج ناهمواری به همراه داشته باشد. میزها.
شاید بهترین راه حل این مشکل نوشتن یک ماکرو باشد. اگرچه این ممکن است ایده آل ترین راه حل نباشد، اما مطمئناً راحت تر از تغییر دستی هر جدول در سند است.
ماکرو زیر، FixCellBorders، از هر سلول در هر جدول در سند شما عبور میکند و مطمئن میشود که حداقل وزن خط سه چهارم نقطه باشد. این کار را با بررسی تنظیمات خط فعلی انجام می دهد و سپس فقط در صورت لزوم تنظیمات را انجام می دهد.
Sub FixCellBorders()
On Error Resume Next
" Work through all tables in document
For Each objTable In ActiveDocument.Tables
" Work through all cells in each table
For Each objCell In objTable.Range.Cells
" Work through all borders in each cell
For Each objBorder In objCell.Borders
" Check if line weight is less than 0.75 pt
If objBorder.LineWidth = wdLineWidth025pt _
Or objBorder.LineWidth = wdLineWidth050pt Then
" too thin, change it
objBorder.LineWidth = wdLineWidth075pt
End If
Next objBorder
Next objCell
Next objTable
End Sub
همانطور که می توانید تصور کنید، ماکرو خیلی سریع نیست زیرا به هر چهار مرز برای هر سلول در هر جدول سند شما نگاه می کند. با این حال، مزیت این است که ماکرو فقط وزن هر مرز سلولی را که در یک چهارم یا یک دوم نقطه قرار دارد، تغییر میدهد. این بدان معناست که هر قالب بندی دستی که برای عرض خطوط مختلف انجام داده اید تغییر نخواهد کرد.
اگر به دنبال ماکرو کمی سریعتر هستید، موارد زیر (FixTableBorders) این کار را انجام میدهند. به جای نگاه کردن به سلول های جداگانه، روی کل جداول کار می کند. با این حال، تفاوت این است که با استفاده از یک خط، هر مرز هر جدول را به سه چهارم نقطه بازنشانی میکند. با این حال، اگر این با نیازهای شما مطابقت دارد، قطعاً راه آسانتر (سریعتر) است.
Sub FixTableBorders()
On Error Resume Next
For Each objTable In ActiveDocument.Tables
With objTable
With .Borders(wdBorderLeft)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth075pt
End With
With .Borders(wdBorderRight)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth075pt
End With
With .Borders(wdBorderTop)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth075pt
End With
With .Borders(wdBorderBottom)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth075pt
End With
With .Borders(wdBorderHorizontal)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth075pt
End With
With .Borders(wdBorderVertical)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth075pt
End With
End With
Next objTable
End Sub