لری یک سند 200 صفحه ای دارد که هر صفحه حاوی یک جعبه متن با متن است. او میخواهد محتویات تمام جعبههای متن را بدون نیاز به استخراج دستی متن از هر یک به یک سند جدید کپی کند. او فکر می کند که آیا می توان این کار را به راحتی انجام داد؟
اگر کادرهای متن در بدنه اصلی سند شما هستند، ممکن است سعی کنید از قابلیت های جستجوی Word برای استخراج متن استفاده کنید. با این حال، ابتدا یک سند کاملاً جدید ایجاد کنید. این جایی است که شما در نهایت متن را چسبانده اید.
اکنون، به سند اصلی خود برگردید و کمی متن را در کادرهای متن تجزیه و تحلیل کنید. به نظر من فهمیدن اینکه آیا متن از یک سبک رایج استفاده می کند مفید است. در مورد من، متوجه شدم که هر پاراگراف در جعبه متن من از سبک عادی استفاده می کند.
اکنون، در جایی از بدنه اصلی سند خود، خارج از کادرهای متنی کلیک کنید. سپس، این مراحل را دنبال کنید:
- Ctrl+H را فشار دهید . Word تب Replace را در کادر گفتگوی Find and Replace نمایش می دهد.
- برگه Find را در کادر محاوره ای نمایش دهید.
- اگر دکمه More در دسترس است، روی آن کلیک کنید تا کادر محاوره ای باز شود.
- با نقطه درج در کادر Find What، روی دکمه Format کلیک کرده و گزینه Style را انتخاب کنید. Word کادر محاوره ای Find Style را نمایش می دهد.
- سبک Normal را انتخاب کنید.
- روی OK کلیک کنید. این شما را به کادر گفتگوی Find and Replace برمی گرداند.
- روی دکمه Find In کلیک کنید و سپس Text Boxes را در Main Document انتخاب کنید. (اگر این گزینه در دسترس نباشد، به این معنی است که یا هیچ باکس نوشتاری در سند اصلی شما وجود ندارد، یا زمانی که این مراحل را شروع کردید، نقطه درج در سند اصلی نبوده است). انتخاب شد.
- کادر گفتگوی Find and Replace را ببندید. متن موجود در کادرهای متن همچنان باید انتخاب شود.
- Ctrl+C را فشار دهید . این متن انتخاب شده را در کلیپ بورد کپی می کند.
- به سند جدیدی که قبلا ایجاد کرده اید بروید.
- Ctrl+V را فشار دهید . Word محتویات کلیپ بورد (متن کپی شده) را به سند جدید می چسباند.
اگر جعبههای متن شما از سبک Normal برای متن خود استفاده نمیکنند، تنها کاری که باید انجام دهید این است که مشخص کنید از چه ویژگی رایج استفاده میکند و سپس آن ویژگی را در مراحل 4 تا 6 مشخص کنید.
این مراحل، همانطور که گفته شد، در صورتی که کادرهای متنی شما در بدنه اصلی سند شما باشند، عالی عمل می کنند. این امکان وجود دارد که جعبههای متن در مکانهای دیگری مانند سرصفحه، پاورقی یا پاورقی نیز باشند. بهعلاوه، اگر متن در جعبههای متن شما دارای ویژگی مشترکی نباشد که بتوانید تشخیص دهید، در این صورت این مراحل نتیجه رضایتبخشی ایجاد نمیکنند.
در این مورد، تنها راه واقعی که برای استخراج متن پیدا کردهایم، استفاده از ماکرو است. موارد زیر یک سند نسبتاً ساده است که یک سند جدید اضافه می کند و سپس هر داستان را در سند منبع گام می گذارد. (داستان بخشی از سند است مانند سرصفحه ها، پاورقی ها، پاورقی ها، یادداشت های پایانی، متن اصلی، و غیره. از آنجایی که جعبه های متن می توانند در هر یک از این موارد وجود داشته باشند، پردازش هر داستان منطقی است.) سپس به تمام اشکال نگاه می کند. در داستان و اگر شکل یک جعبه متنی باشد، متن را در رشته sText کپی می کند. سپس این در سند جدید "تایپ" می شود.
Sub XferTextBoxContents() Dim Source As Document Dim stry As Range Dim shp As Shape Dim sText As String Set Source = ActiveDocument Documents.Add DocumentType:=wdNewBlankDocumentThe newly added document is now the ActiveDocument For Each stry In Source.StoryRanges For Each shp In stry.ShapeRange If shp.Type = msoTextBox ThenCopy text to string, without last paragraph mark sText = Left(shp.TextFrame.TextRange.Text, _ shp.TextFrame.TextRange.Characters.Count - 1) If Len(sText) > 0 Then Selection.TypeText Text:=sText Selection.TypeParagraph End If End If Next shp Next stry Source.Activate End Sub
ماکرو سند اصلی را تغییر نمیدهد و پس از تکمیل، سند جدید فقط حاوی متنی خواهد بود که در جعبههای متن اصلی بود.
چند نکته وجود دارد که باید در مورد استفاده از یک ماکرو مانند این توجه داشته باشید. اول، نحوه ظاهر شدن جعبههای متن در سند اصلی نشاندهنده نحوه ذخیره و دسترسی واقعی آنها در یک ماکرو نیست. به عنوان مثال، بیایید بگوییم که شما چندین بخش مختلف در سند منبع خود دارید، و هر یک دارای یک سرصفحه و پاورقی است، و هر سرصفحه و پاورقی حاوی یک جعبه متن است. وقتی به سند روی صفحه نگاه می کنید، کادرهای متنی در سرصفحه ممکن است در صفحه بالاتر از کادرهای متنی در فوتر ظاهر شوند و ممکن است کادرهای متنی در بدنه اصلی سند وجود داشته باشد که بین آنها ظاهر می شود.
با این حال، ماکرو در هر داستان در سند قدم می گذارد و سپس هر جعبه متن را در آن داستان ها پردازش می کند. این بدان معناست که جعبههای متنی برای همه سرصفحهها ممکن است در سند هدف قبل از همه موارد موجود در پاورقی ظاهر شوند و ممکن است با جعبههای متنی از بدنه اصلی سند دنبال شوند. نکته اصلی این است که شما نباید انتظار داشته باشید که «ترتیب» متن در سند هدف با ترتیب ظاهری که ممکن است در سند منبع مشاهده کنید مطابقت داشته باشد.
نتیجه این درک این است که اگر سند اصلی شما توسط یک برنامه ایجاد شده باشد - به عنوان مثال، یک تبدیل سند PDF به Word - آن برنامه می توانست با چسباندن همه چیز در یک دسته از جعبه های متن، ظاهر سند اصلی PDF را حفظ کند. . من برخی از برنامه های مبدل را دیده ام که هر خط یا حتی هر کلمه را در یک جعبه متن جداگانه قرار می دهند. ماکرو را روی چنین سندی اجرا کنید و ممکن است از آنچه در سند هدف جدید ایجاد شده است ناراضی باشید. اگر اینطور باشد، تنها راه حل بالقوه گرفتن PDF اصلی و استفاده از یک برنامه مبدل متفاوت و با کیفیت بالاتر است که چندان به کادرهای متنی متکی نیست.