نویسنده موضوع: مشکل نمایش حروف فارسی در برنامه نویسی / VBA اکسل/ اکسس  (دفعات بازدید: 16252 بار)

past_student

  • کاربر تازه‌وارد
  • *
  • ارسال: 28
  • جمع امتیازها: +0/-0
با سلام به همه دوستان
علت بهم ریختگی حروف در بخش caption(لاتین نشان دادن حروف فارسی) در هنگام نامگذاری کنتر لها چیست شایان ذکر است که این مشکل در Access وجود ندارد از بخش تنظیمات ویندوز نیز مشکل حل نشد با تغییر فونت نیز به فونت های  tahoma,times news roman,arialنیز مشکل به قوت خود باقی است دوستان چه راه حل اساسی پیشنهاد می کنند که با اشتراک گذاشتن فایل با دیگران حروف درست نمایش داده شود و نیاز به تغییر در تنظیمات ویندوز نباشد گر چه بنده با تغییرات ویندوز نیز به نتیجه نرسیدم فایل ضمیمه چگونگی نمایش حروف فارسی را که به صورت لاتین نمایش داده شده را نشان می دهد

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

خبر: کامل ترین کتاب توابع و فرمول نویسی در اکسل ترجمه تیم فرساران


فرشید میدانی

  • مدیر سایت
  • *****
  • ارسال: 756
  • جمع امتیازها: +228/-14
    • فرساران
نرم افزار VBA یک نرم افزاری NonUnicode است یعنی از زبانهای دیگر پشتیبانی نمی کند به همین خاطر باید در Control Panel --> Regional & Language  بروید و گزینه NonUnicode   را روی Farsi / persian تنظیم کنید.
در ضمن توصیه می شود که کلا روی تنظیم ویندوزی حساب نکنید زیرا بدیهی است که ممکن است فایل شما به کامیپوتری برود که این تنظیم آنجا نشده است و بنابراین حروف به هم ریخته می شوند.

راه حل کلی و کامل تابع ChrW است که برای نوشتن یک متن فارسی در محیط VBA Excel استفاده نمایید.

توابع زبان فارسی فرساران (تاریخ و عدد به حروف در اکسل یا اکسس) - درآن توابع برای نوشتن فارسی از این تکنیک استفاده شده است تا مشکل به هم ریختن حروف فارسی حل شود.

فرشید میدانی

  • مدیر سایت
  • *****
  • ارسال: 756
  • جمع امتیازها: +228/-14
    • فرساران
مثلا برای نمایش کلمه "فرشید" باید از کد  زیر استفاده کرد:
msgbox chrw(1601) & chrw(1585) & chrw(1588) & chrw(1740) & chrw(1583)
قطعا می پرسید که این کدها را چگونه بدست آورم. پاسخ ساده است با کد زیر ابتدا همه کدها را در یک شیت بوجود می آوریم و سپس از روی آنها کلماتم را می سازم (البته برای ساده شدن کار می توانید ترکیب کدها و ... را با فرمول نویسی انجام دهید)
Sub GenerateChrw()

For i = 1 To 2000
   Cells(i, 3) = i
   Cells(i, 4) = ChrW(i)
Next i
   
End Sub