مشکل علامت سوال ؟ و رفع بهمریختگی فونت در اکسل

بهمریختگی فونت های فارسی در نرم افزارها و برخورد با مشکل علامت سوال ؟ بجای نمایش متن فارسی یکی از مشکلات همیشگی کاربران ایرانی بوده.مسلما برای شما هم پیش آمده که یک نرم افزار فارسی را در ویندوز خود نصب کرده اید ولی فونت ها بصورت ناخوانا و بهمریخته یا بصورت علامت سوال (؟) نشان داده است.نرم افزار اکسل هم از این مشکل مستثنی نیست.

مشکل نمایش علامت سوال ؟ در اکسل چگونه خود را نشان می دهد؟

مشکل بهمریختگی نمایش فونت های فارسی در اکسل بصورت علامت سوال (؟) در حالت های مختلفی خود را نشان می دهد که در زیر به مهترین آنها اشاره می کنیم:

  • هنگام استفاده از افزونه های فارسی: ممکن است شما از افزونه هایی استفاده می کنید که خروجی تابع آن یک متن فارسی باشد.در نتیجه خروجی تابع یک متن نامشخص و نامفهوم می شود.
  • هنگام استفاده از متن های فارسی در محیط VBA: زبان برنامه نویسیVBA یک زبان non unicode می باشد.بدین معنی که از استانداردهای رمزنگاری unicode پشتیبانی نمی کند.بدین دلیل هنگام استفاده از کاراکترهای فارسی آنرا بصورت کاراکترهایی بی معنی و نامفهوم نشان می دهد.

در شکل های زیر می توانید چند نمونه از حالت های بهمریختگی فونت های فارسی را مشاهده کنید:

نمایش عبارت های فارسی بصورت علامت ؟ و بهمریخته
شکل شماره 1 – نمایش عبارت های فارسی بصورت علامت ؟ و بهمریخته
نمایش جملات فارسی بصورت عبارت های نامفهوم و نامشخص
شکل شماره 2 – نمایش جملات فارسی بصورت عبارت های نامفهوم و نامشخص

راه حل رفع مشکل نمایش علامت سوال در فونت اکسل:

عمده ترین روشی هایی که می توان استفاده کرد به 3 حالت زیر می باشد:

حتما بخوانید:   تابع IFS و کاربرد آن در فرمول نویسی چند شرطی

1- تنظیمات زبان محلی ویندوز درسیستم خودتان:

ابتدا از Control Panel ویندوزتان به قسمت Region بروید و از تب Administrative روی دکمه …Change System Local کلیک کنید تا پنجره Region Setting باز شود(شکل شماره 3 ).حال از لیست مربوط به Current system local گزینه (Persian (Iran را انتخاب کنید.با اینکار برای اعمال تغییرات زبان در سیستم، ویندوز درخواست Restart می کند که Yes را بزنید تا سیستم ری-استارت شود.بعد از راه اندازی مجدد ویندوز، بررسی کنید که مشکل رفع شده یا خیر.

رفع مشکل علامت سوال ؟ و بهمریختگی فونت در اکسل
شکل شماره 3 – تنظیمات زبان ویندوز persian از قسمت Region

ممکن است در برخی قسمت ها مشکل علامت سوال ؟ فونت فارسی حل شده باشد ولی در سایر قسمت ها همچنان این مشکل پا برجا باشد.مثلا به شکل شماره 4 دقت کنید.با تنظیمات بالا نمایش فارسی نام شیت ها بصورت ؟ حل شده است ولی در محیط کدنویسی این مشکل برطرف نشده است.

حل مشکل نمایش حروف فارسی بصورت ؟ در نامگذاری شیت ها
شکل شماره 4 – حل مشکل نمایش حروف فارسی بصورت ؟ در نامگذاری شیت ها

اگر از نسخه های جدید ویندوز استفاده می کنید، گزینه ای به نام Use Unicode UTF-8 for worldwide language support اضافه شده . این گزینه برای استفاده از یونیکد های استاندارد برای پشتیبانی از کاراکترهای بیشتر می باشد.شما می توانید یکبار با تیک زدن و یکبار دیگر با تیک نزدن آن ببینید در کدام حالت مشکل شما را حل میکند.اما مشکلی که این روش دارد این است که اگر فایل را در سیستم دیگه ای باز کنید و اگر تنظیمات فوق در سیستم جاری اعمال نشده اشد، دوباره مشکل علامت سوال ؟ در متن فارسی و بهمریختگی فونت را خواهید داشت.

2- بایگانی جملات فارسی در یک شیت مخصوص:

در مواردی مثل نوشتن یک پیام فارسی در MsgBox یا نامگذاری آبجکت ها و… می توان جملات فارسی را در یک شیت مخصوص بصورت کدبندی نوشت و برای نمایش یک جمله، بجای تایپ مستقیم در محیط VBA به سلول مربوط به اون جمله ارجاع داد.برای مثال ما جمله ی “به جاویدسافت خوش آمدید” را در sheet1 و در سلول A1 نوشته ایم و اکنون می خواهیم این متن را از طریق یک کادر پیغام نشان دهیم.کد را بصورت زیر می نویسیم:

حتما بخوانید:   انتقال اطلاعات به اکسل با لینک کردن به سایت

3- استفاده از تابع chrw در VBA :

یکی از روش هایی که افراد حرفه ای برای حل مشکل بهمریختگی فونت در اکسل استفاده می کنند، بکارگیری تابع chrw در VBA می باشد.در استاندارد UniCode هر کاراکتر در کیبورد یک معادل عددی دارد.برای مثال معادل عددی کاراکتر “ج” عدد 1580 می باشد.حال برای بدست آوردن معادل حروفی هر عدد می توان از تابع chrw استفاده کرد.برای مثال (1580)chrw که نتیجه کاراکتر “ج” خواهد بود.حال فرض کنید می خواهید یک کلمه یا جمله بسازید.برای اینکار با کنار هم قرار دادن این اعداد می توان یک جمله ساخت.

برای مثال فرض کنید من می خواهم کلمه “جاویدسافت” را تولید کنم.باید به روش زیر عمل کنم:

نکته:

در توابع بالا کاراکتر & که رشته الحاقی نام دارد، برای بهم چسباندن حاصل توابع chrw استفاده شده است.

عیبی که این روش دارد این است که برای تولید جملات بلند کمی به زحمت خواهید افتاد.اما این مورد رو هم فراموش نکنید که در محیط VBA کمتر پیش می آید که از جملات بلند استفاده شود.

unicode هر کاراکتر را چگونه بدست بیاوریم:

ابزارهای آنلاین تبدیل یونیکد:

وبسایت های زیادی ابزار آنلاین برای پیدا کردن یونیکد کاراکترهای فارسی وجود دارد که برای نمونه می توانید به این لینک مراجعه کنید.شما با وارد کردن حروف فارسی و زدن دکمه تبدیل، یونیکد اون حرف را برای شما نمایش می دهد.توجه داشته باشید که خروجی یک عدد با چند کاراکتر خواهد بود که شما فقط عدد اون رو بر می دارید.

حتما بخوانید:   محاسبه اضافه کاری و ساعت تاخیر در اکسل+دانلود فایل
دانلود فایل آماده یونیکد های حروف فارسی:

از لینک زیر می توانید لیست یونیکدهای حروف فارسی برای رفع مشکل بهمریختگی فونت در VBA را دانلود کنید:


منابع:

en.wikipedia.org/wiki/Unicode

fa.wikipedia.org

اشتراک گذاری:
مطالب زیر را حتما بخوانید

پاسخی بگذارید