اگر کارهای زیادی با اسناد افراد دیگر انجام می دهید، ممکن است نیاز به حذف کادرهای متنی در آن اسناد داشته باشید. اگر فقط یک یا دو جعبه متن در سند وجود داشته باشد، انتخاب آنها و حذف آنها چندان دشوار نیست. اگر 30، 40 یا بیشتر جعبه متن وجود داشته باشد، چه؟ حذف آنها به صورت جداگانه می تواند به سرعت خسته کننده شود.
یک راه حل بالقوه، روش «نیروی بی رحم» است. این مراحل را دنبال کنید:
شکل 1. کادر محاوره ای Paste Special.
- در سند خود، Ctrl+A را فشار دهید. کل سند انتخاب شده است.
- Ctrl+C را فشار دهید. سند اکنون در کلیپ بورد است.
- یک سند جدید و خالی باز کنید.
- مطمئن شوید که تب Home نوار نمایش داده می شود.
- روی فلش رو به پایین زیر ابزار Paste (در سمت چپ نوار) کلیک کنید و Paste Special را انتخاب کنید. Word کادر محاوره ای Paste Special را نمایش می دهد. (شکل 1 را ببینید.)
- در لیست فرمت ها، متن Unformatted را انتخاب کنید.
- روی OK کلیک کنید.
متن سند، منهای کادرهای متن، اکنون در سند جدید است. اشکال آشکار این رویکرد این است که قالب بندی دیگر سند اصلی نیز از بین رفته است و شما باید کل سند را دوباره فرمت کنید. (من به شما گفتم که این یک روش brute force بود.)
اگر می خواهید فقط از شر جعبه های متن خلاص شوید، سریع ترین راه حل استفاده از ماکرو است. ماکرو زیر به سرعت تمام کادرهای متنی سند شما را حذف می کند:
Sub RemoveTextBox1() Dim shp As Shape For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then shp.Delete Next shp End Sub
باید توجه داشته باشید که این ماکرو تمام کادرهای متن و محتویات آنها را حذف می کند. به عبارت دیگر، اگر از یک جعبه متن برای قرار دادن متن استفاده شود، متن آن جعبه متن به همراه خود جعبه متن حذف می شود.
اگر ترجیح می دهید متن را از جعبه های متنی به سند منتقل کنید، قبل از حذف کادر متن، یک تغییر جزئی در ماکرو فوق کار خواهد کرد:
Sub RemoveTextBox2() Dim shp As Shape Dim oRngAnchor As Range Dim sString As String For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Thencopy text to string, without last paragraph mark sString = Left(shp.TextFrame.TextRange.Text, _ shp.TextFrame.TextRange.Characters.Count - 1) If Len(sString) > 0 Thenset the range to insert the text Set oRngAnchor = shp.Anchor.Paragraphs(1).Rangeinsert the textbox text before the range object oRngAnchor.InsertBefore _ "Textbox start <> Textbox end" End If shp.delete End If Next shp End Sub
وقتی این ماکرو تمام شد، میتوانید «Textbox start» را جستجو کنید و در ابتدای متنی خواهید بود که قبلاً در جعبههای متنی وجود داشت که اکنون از سند شما حذف شدهاند. سپس می توانید متن را طوری ویرایش کنید که همانطور که می خواهید ظاهر شود. همچنین درک کنید که هر چیزی "خاص" در متن - مانند جداول - توسط ماکرو به متن معمولی تبدیل می شود. این بدان معنی است که ماکرو ممکن است منجر به مقدار مناسبی از کار شود که باید در قالب بندی متن منتقل شده انجام شود.