ماکروهای زیادی وجود دارد که من با هدف صریح "پاک کردن" متن قبل از انجام کار دیگری با آن نوشته ام. به عنوان مثال، درج آن در یک سند جدید یا ذخیره آن در یک فایل متنی. اغلب این فرآیند خسته کننده است، شامل بررسی هر کاراکتر در یک رشته متن و سپس تصمیم گیری در مورد اینکه اگر کاراکتر در محدوده ای از کاراکترهای قابل قبول نباشد، با آن چه باید کرد.
VBA شامل یک روش جالب است که می تواند برای کمک به پاکسازی متن استفاده شود. به طور مناسب، متد CleanString نامیده می شود. همانطور که در اینجا نشان داده شده است از آن استفاده می کنید:
sCleanedUp = Application.CleanString(Selection.Text)
این خط کد رشته sCleanedUp را برابر با یک نسخه پاک شده از متن انتخاب شده قرار می دهد. متد CleanString دقیقا چه کاری انجام می دهد؟ نویسههای غیرچاپی در محدوده ANSI 1 تا 29 را حذف میکند، به استثنای 7، 9، 10، و 13. در مورد نویسه ANSI 7، حذف میشود مگر اینکه قبل از نویسه 13 باشد، در این صورت آن را با یک زبانه (ANSI 9) جایگزین شده است. در مورد کاراکتر ANSI 10، با کاراکتر 13 جایگزین می شود، مگر اینکه قبل از کاراکتر 13 باشد، در این صورت حذف می شود. شخصیت های 9 و 13 تغییر نکرده اند.
تعدادی دیگر از کاراکترهای خارج از محدوده 1 تا 29 نیز تحت تأثیر متد CleanString قرار می گیرند. کاراکتر ANSI 31 (خط تیره اختیاری)، کاراکتر 172 (همچنین یک خط تیره اختیاری) و کاراکتر 182 (کاراکتر علامت پاراگراف) همگی حذف می شوند. کاراکتر ANSI 160 (فاصله بدون شکست)، کاراکتر 176 (یک فضای بدون شکست دیگر) و کاراکتر 183 (یک کاراکتر گلوله) هر کدام با فاصله جایگزین می شوند. همه شخصیت های دیگر بدون تغییر هستند.