ممکن است مواقعی وجود داشته باشد که در حال کار با یک سند هستید که نیاز به حذف علائم پاراگراف اضافی داشته باشید. این امر به ویژه اگر با یک فایل ASCII یا فایلی کار می کنید که ممکن است در ابتدا با یک واژه پرداز دیگر فرمت شده باشد، صادق است. این فرآیند حذف دستی علائم پاراگراف اضافی می تواند بسیار زمان بر باشد.
روش سنتی مدیریت چنین موقعیتهایی استفاده از Find و Replace برای جستجوی دو علامت پاراگراف (^p^p) و جایگزینی با یک علامت پاراگراف (^p) است. این عالی کار می کند، به جز در یک موقعیت - زمانی که دو پاراگراف متفاوت قالب بندی شده اند. در این صورت، یک Find and Replace ساده می تواند قالب بندی سند شما را به هم بزند.
اگر در این موقعیت قرار گرفتید، ممکن است این کلان مورد علاقه را پیدا کنید. با استفاده از رویکرد دو مرحله ای، علائم پاراگراف اضافی را از یک سند حذف می کند. وقتی کامل شد، نباید حتی دو علامت پاراگراف پشت سر هم در سند شما وجود داشته باشد.
Sub ReplacePara() Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting With Selection.Find .Text = "^p^p" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute While Selection.Find.Found Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeBackspace Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.Find.Execute Wend End Sub
این ماکرو دو بخش دارد. بخش اول - که متکی به روش Selection.Find است - از قابلیت های Find and Replace داخلی Word برای یافتن تمام نمونه های دو علامت پاراگراف به ترتیب استفاده می کند. (همانطور که در روش سنتی Find and Replace که قبلا توضیح داده شد انجام می شود.) با این حال، ماکرو جایگزین علامت های پاراگراف متوالی نمی شود. به سادگی آنها را پیدا می کند. سپس قسمت دوم ماکرو شروع می شود - با استفاده از ویژگی Selection.Find.Found برای حذف دومین علامت از دو علامت پاراگراف متوالی.
دلیل اتخاذ این رویکرد این است که قالب بندی را روی علامت پاراگراف باقیمانده درست می گذارد. به عنوان مثال، اگر دو علامت پاراگراف متوالی از قالب بندی متفاوتی از یکدیگر استفاده کنند، قالب بندی علامت پاراگراف اول بدون تغییر باقی می ماند. اگر به سادگی علامتهای پاراگراف متوالی را با یک علامت پاراگراف جایگزین کنید، ممکن است پس از اتمام جایگزینی، قالببندی را دقیقاً آنطور که میخواهید نداشته باشید.
توجه داشته باشید که Selection.Find.Found به عنوان یک "پرچم" برای حلقه while استفاده می شود. این ویژگی وضعیت آخرین عملیات Find را نشان می دهد. اگر درست باشد، جستجو با موفقیت انجام شد. اگر False باشد، پس چیزی پیدا نشد (و بنابراین، چیزی برای تغییر وجود ندارد).