مارینوس با فایل های CSV زیاد کار می کند. در مورد او، فایلهای CSV توسط یک برنامه سفارشی ایجاد میشوند و او متوجه شد که حتی میتواند فرمولهایی را در آنها قرار دهد. بنابراین اگر یک خط از فایل CSV حاوی "،،،Total:,=SUM(D5:D13)،،،" باشد، فرمول ارزیابی می شود و همه چیز خوب است. با این حال، یکی از کارهایی که مارینوس میخواهد انجام دهد، این است که در فایل CSV نشان دهد که سلولهای جداگانه چگونه باید پس از وارد شدن به اکسل توجیه شوند. به نظر می رسد او به یاد دارد که در Lotus 123 می تواند از یک کاراکتر پیشوند برای نشان دادن تراز سلول (برای چپ، ^ برای وسط، و "برای راست) استفاده کند؛ او تصور می کند که همین قابلیت در اکسل عالی خواهد بود.
هیچ راهی برای انجام این کار در اکسل وجود ندارد. تراز دادههای وارد شده بر اساس پیشفرضهای سیستم است، به طوری که متن به چپ و اعداد به راست توجیه میشوند. با این حال، یک گزینه اضافه کردن یک کاراکتر پیشوندی است که بعداً میتوانید آن را با یک ماکرو "تجزیه" کنید تا تراز دلخواه را اعمال کنید. به عنوان مثال، می توانید از "<" برای سمت چپ، "^" برای مرکز و ">" برای سمت راست استفاده کنید. وقتی اکسل فایلهای CSV را وارد میکند، فیلدها به عنوان متن در نظر گرفته میشوند. سپس می توانید این ماکرو را برای جستجوی کاراکتر تراز اصلی اجرا کنید و عمل مورد نظر را انجام دهید:
Sub SetJustification()
Dim rCell As Range
For Each rCell In ActiveSheet.UsedRange
With rCell
Select Case Left(.Value, 1)
Case "<"
.Value = Mid(.Value, 2)
.HorizontalAlignment = xlHAlignLeft
Case "^"
.Value = Mid(.Value, 2)
.HorizontalAlignment = xlHAlignCenter
Case ">"
.Value = Mid(.Value, 2)
.HorizontalAlignment = xlHAlignRight
End Select
End With
Next
Set rCell = Nothing
End Sub
ماکرو هر سلول در کاربرگ را بررسی می کند. اگر سلول با یک کاراکتر تراز شروع شود، کاراکتر حذف می شود و تراز مناسب اعمال می شود.