آنتونی به طور منظم چندین گزارش را در فایل های متنی (به عنوان مثال filename.txt) به Word وارد می کند. سپس از ماکروها برای قالب بندی این اطلاعات وارد شده استفاده می کند. پس از تکمیل ماکرو قالببندی، آنتونی بهصورت دستی از «Save As» برای هر گزارش استفاده میکند تا آن را بهعنوان یک سند Word ذخیره کند. او به این فکر می کند که چه دستوراتی را باید به ماکرو خود اضافه کند تا آخرین مرحله ذخیره داده ها را خودکار کند. آنتونی مایل است که ماکرو فایل را با استفاده از همان نام اصلی فایل متنی ذخیره کند و فقط آن را به فرمت Word تغییر دهد، مانند filename.docx.
مراحل ذخیره واقعی فایل نسبتا آسان است. قطعه کد زیر را در نظر بگیرید که یک سند را در قالب Word ذخیره می کند:
ActiveDocument.SaveAs FileName:=sDocName, _ FileFormat:=wdFormatDocument
نام فایل در متغیر sDocName ذخیره می شود و تنظیمات مربوط به ویژگی FileFormat نشان می دهد که می خواهید سند در قالب Word ذخیره شود. در یک ماکرو موجود، تنها کاری که باید انجام دهید این است که sDocName را با نام فایل مورد نظر تنظیم کنید.
با فرض اینکه نام فایل متنی اصلی خود را در متغیر sOrigName ذخیره کرده اید، می توانید از کد زیر برای تغییر پسوند به .doc و سپس ذخیره فایل استفاده کنید:
sDocName = Left(sOrigName, Len(sOrigName) - 4) sDocName = sDocName & ".docx" ActiveDocument.SaveAs FileName:=sDocName, _ FileFormat:=wdFormatDocument
کد فرض میکند که چهار کاراکتر آخر sOrigName حاوی پسوند نام فایل (دوره به اضافه سه کاراکتر) است. اینها حذف شده و پسوند ".docx" اضافه می شود. اگر مطمئن نیستید که پسوند نام فایل برای فایل اصلی چقدر خواهد بود، در صورت تمایل میتوانید به تابع Split برای جدا کردن آن تکیه کنید:
sNameParts = Split(sOrigName, ".") sDocName = sNameParts(0) & ".docx" ActiveDocument.SaveAs FileName:=sDocName, _ FileFormat:=wdFormatDocument
برای اینکه این ماکرو کار کند، مطمئن شوید که sNameParts را به عنوان یک آرایه رشته ای اعلام کرده اید.