مشکل علامت سوال ؟ و رفع بهمریختگی فونت در اکسل
بهمریختگی فونت های فارسی در نرم افزارها و برخورد با مشکل علامت سوال ؟ بجای نمایش متن فارسی یکی از مشکلات همیشگی کاربران ایرانی بوده.مسلما برای شما هم پیش آمده که یک نرم افزار فارسی را در ویندوز خود نصب کرده اید ولی فونت ها بصورت ناخوانا و بهمریخته یا بصورت علامت سوال (؟) نشان داده است.نرم افزار اکسل هم از این مشکل مستثنی نیست.
مشکل نمایش علامت سوال ؟ در اکسل چگونه خود را نشان می دهد؟
مشکل بهمریختگی نمایش فونت های فارسی در اکسل بصورت علامت سوال (؟) در حالت های مختلفی خود را نشان می دهد که در زیر به مهترین آنها اشاره می کنیم:
- هنگام استفاده از افزونه های فارسی: ممکن است شما از افزونه هایی استفاده می کنید که خروجی تابع آن یک متن فارسی باشد.در نتیجه خروجی تابع یک متن نامشخص و نامفهوم می شود.
- هنگام استفاده از متن های فارسی در محیط VBA: زبان برنامه نویسیVBA یک زبان non unicode می باشد.بدین معنی که از استانداردهای رمزنگاری unicode پشتیبانی نمی کند.بدین دلیل هنگام استفاده از کاراکترهای فارسی آنرا بصورت کاراکترهایی بی معنی و نامفهوم نشان می دهد.
در شکل های زیر می توانید چند نمونه از حالت های بهمریختگی فونت های فارسی را مشاهده کنید:
راه حل رفع مشکل نمایش علامت سوال در فونت اکسل:
عمده ترین روشی هایی که می توان استفاده کرد به ۳ حالت زیر می باشد:
۱- تنظیمات زبان محلی ویندوز درسیستم خودتان:
ابتدا از Control Panel ویندوزتان به قسمت Region بروید و از تب Administrative روی دکمه …Change System Local کلیک کنید تا پنجره Region Setting باز شود(شکل شماره ۳ ).حال از لیست مربوط به Current system local گزینه (Persian (Iran را انتخاب کنید.با اینکار برای اعمال تغییرات زبان در سیستم، ویندوز درخواست Restart می کند که Yes را بزنید تا سیستم ری-استارت شود.بعد از راه اندازی مجدد ویندوز، بررسی کنید که مشکل رفع شده یا خیر.
ممکن است در برخی قسمت ها مشکل علامت سوال ؟ فونت فارسی حل شده باشد ولی در سایر قسمت ها همچنان این مشکل پا برجا باشد.مثلا به شکل شماره ۴ دقت کنید.با تنظیمات بالا نمایش فارسی نام شیت ها بصورت ؟ حل شده است ولی در محیط کدنویسی این مشکل برطرف نشده است.
اگر از نسخه های جدید ویندوز استفاده می کنید، گزینه ای به نام Use Unicode UTF-8 for worldwide language support اضافه شده . این گزینه برای استفاده از یونیکد های استاندارد برای پشتیبانی از کاراکترهای بیشتر می باشد.شما می توانید یکبار با تیک زدن و یکبار دیگر با تیک نزدن آن ببینید در کدام حالت مشکل شما را حل میکند.اما مشکلی که این روش دارد این است که اگر فایل را در سیستم دیگه ای باز کنید و اگر تنظیمات فوق در سیستم جاری اعمال نشده اشد، دوباره مشکل علامت سوال ؟ در متن فارسی و بهمریختگی فونت را خواهید داشت.
۲- بایگانی جملات فارسی در یک شیت مخصوص:
در مواردی مثل نوشتن یک پیام فارسی در MsgBox یا نامگذاری آبجکت ها و… می توان جملات فارسی را در یک شیت مخصوص بصورت کدبندی نوشت و برای نمایش یک جمله، بجای تایپ مستقیم در محیط VBA به سلول مربوط به اون جمله ارجاع داد.برای مثال ما جمله ی “به جاویدسافت خوش آمدید” را در sheet1 و در سلول A1 نوشته ایم و اکنون می خواهیم این متن را از طریق یک کادر پیغام نشان دهیم.کد را بصورت زیر می نویسیم:
("MsgBox Sheet1.Range("A1
۳- استفاده از تابع chrw در VBA :
یکی از روش هایی که افراد حرفه ای برای حل مشکل بهمریختگی فونت در اکسل استفاده می کنند، بکارگیری تابع chrw در VBA می باشد.در استاندارد UniCode هر کاراکتر در کیبورد یک معادل عددی دارد.برای مثال معادل عددی کاراکتر “ج” عدد ۱۵۸۰ می باشد.حال برای بدست آوردن معادل حروفی هر عدد می توان از تابع chrw استفاده کرد.برای مثال (۱۵۸۰)chrw که نتیجه کاراکتر “ج” خواهد بود.حال فرض کنید می خواهید یک کلمه یا جمله بسازید.برای اینکار با کنار هم قرار دادن این اعداد می توان یک جمله ساخت.
برای مثال فرض کنید من می خواهم کلمه “جاویدسافت” را تولید کنم.باید به روش زیر عمل کنم:
(chrw(1580) & chrw(1570) & chrw(1608) & chrw(1740) & chrw(1583) & chrw(1587) & chrw(1570) & chrw(1601) & chrw(1578
نکته:
در توابع بالا کاراکتر & که رشته الحاقی نام دارد، برای بهم چسباندن حاصل توابع chrw استفاده شده است.
عیبی که این روش دارد این است که برای تولید جملات بلند کمی به زحمت خواهید افتاد.اما این مورد رو هم فراموش نکنید که در محیط VBA کمتر پیش می آید که از جملات بلند استفاده شود.
unicode هر کاراکتر را چگونه بدست بیاوریم:
ابزارهای آنلاین تبدیل یونیکد:
وبسایت های زیادی ابزار آنلاین برای پیدا کردن یونیکد کاراکترهای فارسی وجود دارد که برای نمونه می توانید به این لینک مراجعه کنید.شما با وارد کردن حروف فارسی و زدن دکمه تبدیل، یونیکد اون حرف را برای شما نمایش می دهد.توجه داشته باشید که خروجی یک عدد با چند کاراکتر خواهد بود که شما فقط عدد اون رو بر می دارید.
دانلود فایل آماده یونیکد های حروف فارسی:
از لینک زیر می توانید لیست یونیکدهای حروف فارسی برای رفع مشکل بهمریختگی فونت در VBA را دانلود کنید:
منابع:
درباره جاوید
عاشق اکسل هستم و بیش از 12 ساله دارم اکسل کار می کنم. در این مسیر آموزش ها و فایل های حرفه ای ارائه دادم و همچنان در این مسیر با علاقه پیش میرم چون امروزه اکسل به یک مهارت انکار نشدنی تبدیل شده
سایر نوشته های جاویدمطالب زیر را حتما مطالعه کنید
۴ گام تا شماره گذاری صفحه چاپ در اکسل با یک نکته عالی
ایجاد لیست شیت ها در ComboBox اکسل با دستورات VBA
در کمتر از ۱ دقیقه چک لیست کارهای روزانه در اکسل بساز
فایل اکسل محاسبه مالیات حقوق سال ۱۴۰۱ + آموزش ویدئویی فرمولنویسی مالیات
راست چین در اکسل و نحوه راست به چپ کردن شیت اکسل
برای چاپ اطلاعات داخل فرم از قبل پرینت شده در اکسل چکار کنیم؟
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
خیلی عالی بود.
ممنون.