فروشگاه
انبارداری پیشرفته تحت اکسل

حل مشکل نوشتن متن فارسی در vba اکسل با 2 روش تضمینی

سلام خدمت شما دوستان عزیز و همراهان همیشگی آکادمی روح الله در خدمت تون هستم با آموزش حل مشکل نوشتن متن فارسی در vba اکسل با 2 روش تضمینی.
آموزش های زیادی تون اینترنت است در مورد حل مشکل توشتن متن فارسی در محیط vba اکسل ولی با یک روش آموزش داده شده.
برای همین مشکی خیلی از دوستان حل نمیشه 😮 اصلا ناراحت نباشید آکادمی روح الله یک آموزش تضمینی برای شما آماده کرده با دیدین این آموزش صد در صد مشکل برطرف خواهد شد.
باز هم سوالی بود در خدمتم

حل مشکل نوشتن متن فارسی در vba اکسل

حل مشکل نوشتن متن فارسی در vba اکسل

حل مشکل فارسی نوشتن در vba اکسل در ویندوز

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

برای حل مشکل فارسی نوشتن در vba اکسل باید به محیط Control Panel ویندوز خود وارد شوید برای این کار باید همین عبارت را در قسمت سرچ ویندوز خود تایپ نمایید. در ادامه پنجره ای برای شما باز می شود که باید قسمت Region را پیدا کنید. سپس از سربرگ Administrative استفاده کرده و روی Change System locale کلیک نمایید و مقدار Current system locale را بر روی فارسی یا همان Persian تنظیم نمایید. بعد از انجام این تنظیمات باید سیستم خود را یک بار ریستارت نموده و نتیجه را مشاهده کنید. در فیلم آموزشی آماده شده توسط آکادمی روح الله حل مشکل فارسی نوشتن در vba اکسل را برای شما توضیح داده ایم.

حل مشکل نوشتن متن فارسی در محیط vba اکسل

حل مشکل نوشتن متن فارسی در محیط vba اکسل

تنظیمات زبان در ویندوزهای مختلف تقریبا مشابه می باشد. ویندوز 7 و ویندوز 10 نسخه های متفاوتی دارند که در هر کدام تنظیمات زبان تفاوت های اندکی دارد.

پیش نهاد آکادمی روح الله برای شما :
بررسی درست بودن کد ملی در اکسل

Vba چیست و چه کاربردی دارد؟

اصطلاح vba  مخفف Visual Basic for Applications می باشد به این معنی است که این زبان در اپلیکیشن ها به کار می رود. این زبان باعث می شود قابلیت های زیادی به برنامه هایی مانند اکسل اضافه شود. امروزه از برنامه اکسل در کسب و کارها استفاده فراوانی می شود. vba به دلیل آسان بودن در میان کاربران بسیار محبوب می باشد. با استفاده از vba  می توانید برنامه های کوتاهی برای کارهای ساده بنویسید. همچنین برنامه های آفیس را با این روش سفارش سازی می نماییم. با استفاده از این زبان توابع تعریف شده را ایجاد می کنیم و فرایندها و محاسبات خاص را خودکار می نماییم.

مشکل تایپ فارسی در اکسل

مشکل تایپ فارسی در اکسل

اکسل این امکان را به کاربران می دهد تا داده های خود را تحلیل و دسته بندی نمایند. در آموزش اکسل بعضی از قابلیت های اکسل را به شما یاد داده ایم. همچنین تهیه گزارشات با استفاده از اکسل به راحتی صورت می گیرد. قرار گرفتن ویژوال بیسیک در کنار این نرم افزار باعث شده است تا قابلیت های آن نامحدود گردد. همزمان با نصب نرم افزارهای مجموعه آفیس این زبان برنامه نویسی برای شما نصب می شود و احتیاج به نصب جداگانه ندارد.

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

Non Unicode بودن زبان vba

زبان vba یک زبان non Unicode می باشد معنی آن این است که این زبان استانداردهای رمزنگاری را پشتیبانی نمی کند. به همین علت است که هنگام استفاده از کاراکترهای فارسی گاهی اوقات آن ها را به صورت علامت سوال یا کاراکترهای نامفهوم نمایش می دهد.

حل مشکل تایپ فارسی در اکسل

حل مشکل تایپ فارسی در اکسل

Unicode برای هماهنگ کردن اعداد و حروف معرفی شده است. این قابلیت یک استاندارد جهانی است و در اکثر برنامه ها و نرم افزارها قابل شناسایی می باشد. همچنین در ویندوز نیز می توان  برای حل مشکل فارسی نوشتن در vba اکسل چاره ای اندیشید.

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

حل مشکل نوشتن متن فارسی در محیط vba اکسل

حل مشکل نوشتن متن فارسی در محیط vba اکسل

میانگین رتبه 3.9/5 تعداد رای : 20
اکسل را حرفه ای یاد بگیر
نظر شما در مورد این مقاله چیست؟

نظر یا سوال شما در این مورد چیست؟

سلام دوست عزیز خوشحال میشوم نظر شما را در مورد این مقاله بدانم 👇

    سروش

    با سلام
    syetem location رایانه من persian است، اما همچنان زبان فارسی در دستورات vba نشان داده نمی شود. امکانش هست که در مورد این موضوع مرا راهنمایی کنید.

    پاسخ

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

      1. تغییر تنظیمات LocaleID
      – در کد VBA، برای استفاده از زبان فارسی باید LocaleID را به درستی تنظیم کنید. برای مثال:

      Sub SetLocale()
      Application.LocaleID = 1065 ' 1065 کد زبان فارسی است
      End Sub

      2. استفاده از فونت‌های پشتیبانی کننده فارسی
      – اطمینان حاصل کنید که از فونت‌هایی استفاده می‌کنید که از کاراکترهای فارسی پشتیبانی می‌کنند، مانند B Nazanin، B Mitra، و غیره. برای تنظیم فونت در کد VBA:

      Sub SetFont()
      With ThisWorkbook.Sheets("Sheet1").Range("A1")
      .Value = "سلام"
      .Font.Name = "B Nazanin"
      End With
      End Sub

      3. استفاده از یونیکد برای متون فارسی
      – در برخی موارد ممکن است نیاز باشد که از کدهای یونیکد برای نوشتن متون فارسی استفاده کنید. برای مثال:

      Sub UnicodeText()
      Dim ws As Worksheet
      Set ws = ThisWorkbook.Sheets("Sheet1")
      ws.Range("A1").Value = ChrW(&H0633) & ChrW(&H0644) & ChrW(&H0627) & ChrW(&H0645) ' "سلام" به یونیکد
      End Sub

      4. تنظیمات Regional and Language در ویندوز
      – مطمئن شوید که تنظیمات منطقه‌ای (Regional Settings) در ویندوز به درستی تنظیم شده‌اند.
      – از طریق کنترل پنل به مسیر زیر بروید:
      Control Panel > Clock, Language, and Region > Region and Language
      – در تب **Formats**، فرمت را به Persian تنظیم کنید.
      – در تب **Administrative**، روی **Change system locale** کلیک کنید و آن را به Persian (ایران) تغییر دهید.

      5. تنظیمات صفحه کلید
      – اطمینان حاصل کنید که صفحه کلید فارسی در ویندوز فعال است. برای این کار به مسیر زیر بروید:
      Control Panel > Clock, Language, and Region > Language > Add a language
      – زبان فارسی را اضافه کنید و آن را به عنوان زبان پیش‌فرض تنظیم کنید.

      با انجام مراحل بالا، باید بتوانید متون فارسی را به درستی در VBA اکسل بنویسید و نمایش دهید. اگر همچنان با مشکل مواجه هستید، بررسی کنید که آیا تمام تنظیمات به درستی اعمال شده‌اند و فونت‌های مورد استفاده از کاراکترهای فارسی پشتیبانی می‌کنند.
      موفق پیروز باشید مثل همیشه

      پاسخ
    S.M.J

    درود و سپاس – عالی بود ، مشکلم حل شد ، بهروز باشید

    پاسخ

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

      پاسخ
    خرمی

    سلام
    آقای وکیل زاده صاحب من از record macro استفاده میکنم و در جریان record مثلا از replace واژه های فارسی استفاده میکنم که بعد run نمودن عملیه replace چونکه فارسی است صورت نمیگرد. لطفا یک راه حل برایم بگید.
    ممنون

    پاسخ

      سلام ارادت خدمت شما دوست عزیز
      مشکل شما ممکن است مربوط به تنظیمات زبان و قالب فایل Excel باشد که موجب عدم نمایش صحیح متون فارسی می‌شود. برای حل این مشکل، می‌توانید مراحل زیر را انجام دهید:

      تنظیمات زبان و قالب Excel:

      وارد منوی “فایل” شوید.
      بعد از آن، بر روی “تنظیمات” یا “Options” کلیک کنید.
      در پنجره باز شده، به بخش “محل و زبان” یا “Language and Region” بروید.
      در اینجا، مطمئن شوید که زبان فارسی به عنوان زبان پیش‌فرض برای Excel انتخاب شده باشد.
      فونت مناسب برای فارسی:

      از منوی “تنظیمات” یا “Options” به بخش “پیش‌فرض” یا “General” بروید.
      در بخش “انتخاب کردن” یا “Choosing”، فونتی که حروف فارسی را به خوبی نمایش می‌دهد را انتخاب کنید. به عنوان مثال، فونت “B Nazanin” مناسب است.
      استفاده از کد VBA برای جایگزینی متون:

      به جای استفاده از عملیات Replace در حالت ضبط ماکرو، از کد VBA استفاده کنید تا جایگزینی به درستی انجام شود.
      می‌توانید کد VBA زیر را برای جایگزینی متون استفاده کنید

      Sub ReplaceText()
      Dim rng As Range
      Dim cell As Range
      Dim findText As String
      Dim replaceText As String

      ' تنظیمات متن را وارد کنید
      findText = "متن_مورد_نظر"
      replaceText = "متن_جایگزین"

      ' محدوده مورد نظر را انتخاب کنید یا مشخص کنید
      Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A100") ' مثال: از سلول A1 تا A100

      ' جستجو و جایگزینی در محدوده
      For Each cell In rng
      cell.Value = Replace(cell.Value, findText, replaceText)
      Next cell
      End Sub

      در این کد، متن مورد نظر و متن جایگزین خود را وارد کنید و محدوده مورد نظر را تنظیم کنید.
      برای اجرای این کد، می‌توانید آن را در ماژول VBA فایل Excel خود قرار دهید و سپس اجرا کنید.
      با انجام این مراحل، متون فارسی باید به درستی در فایل Excel نمایش داده شوند و جایگزینی‌ها هم به درستی انجام شوند.
      موفق باشید

      پاسخ
    جاسم داغری

    ممنون از جنابعالی حل شد.

    پاسخ

      ارادت خدمت شما خدا را شکر که حل شده
      موفق باشید مثل همیشه

      پاسخ
    علی اصغر ابراهیمیان

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

    پاسخ

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

      پاسخ
    صالح

    سلام
    مشکل “ی” و “ک” فارسی رو چطور حل کنیم؟

    پاسخ

      سلام ارادت خدمت شما دوست عزیز!
      مشکل نمایش حروف “ی” و “ک” در اکسل به دلیل تفاوت‌های میان حروف‌چینی عربی و فارسی ممکن است رخ دهد. برای حل این مشکل در VBA، می‌توانید از کد زیر استفاده کنید


      Sub FixPersianCharacters()
      Dim cell As Range
      Dim str As String

      For Each cell In ActiveSheet.UsedRange
      str = cell.Value
      str = Replace(str, ChrW(&H6A9), ChrW(&H6A9 - 1)) ' Replace "ک" with "ك"
      str = Replace(str, ChrW(&H6CC), ChrW(&H6CC - 1)) ' Replace "ی" with "ي"
      cell.Value = str
      Next cell
      End Sub


      این کد به تمام سلول‌های موجود در ورک‌شیت فعلی می‌رود و حروف “ی” و “ک” را با حروف “ي” و “ك” جایگزین می‌کند. برای استفاده از این کد، می‌توانید مراحل زیر را دنبال کنید:

      وارد محیط VBA شوید: با فشار دادن ALT + F11 به محیط ویرایشگر VBA وارد شوید.
      یک ماژول جدید ایجاد کنید: از قسمت Insert یک ماژول جدید ایجاد کنید.
      کد را در ماژول قرار دهید: کد فوق را در ماژول جدید قرار دهید.
      کد را اجرا کنید: با بستن ویرایشگر VBA به ورک‌شیت اصلی بازگردید و کد را از طریق ALT + F8 اجرا کنید.
      این کد به تمام سلول‌های ورک‌شیت اعمال می‌شود و حروف “ی” و “ک” را به صورت صحیح نمایش می‌دهد. لطفاً توجه داشته باشید که قبل از اجرای کد، پشتیبانی از ورک‌شیت خود را انجام داده و در صورت نیاز به بازیابی، از پشتیبان استفاده کنید.
      موفق پیروز باشید مثل همیشه

      پاسخ
    مجتبی

    سلام
    در قسمت vba اکسل من نه انگلیسی و نه فارسی رو نمی تونم تایپ کنم

    پاسخ

      سلام! مشکلی که در قسمت VBA اکسل با تایپ کردن حروف نه انگلیسی و نه فارسی دارید، ممکن است به تنظیمات زبان و ویرایشگر VBA در اکسل شما مربوط باشد. برای حل این مشکل، می‌توانید مراحل زیر را امتحان کنید:

      1. در اکسل، به قسمت “Developer” رفته و روی “Visual Basic” کلیک کنید.
      2. در ویرایشگر VBA، در پنجره سمت چپ “Project Explorer” را نمایش دهید (اگر نمایش داده نمی‌شود، از منوی “View” -> “Project Explorer” انتخاب کنید).
      3. روی نام پروژه‌ای که در آن کد VBA خود را قرار داده‌اید، راست کلیک کنید و “Properties” را انتخاب کنید.
      4. در پنجره “Properties”، در قسمت “Language”، زبان را به “English” تغییر دهید.

      بعد از انجام این مراحل، باید بتوانید در ویرایشگر VBA هر حروفی را تایپ کنید، اعم از حروف انگلیسی و فارسی و دیگر زبان‌ها.
      شاد باشید

      پاسخ
    امیر

    خیلی ممنون، با همون تغییر زبان مشکل من رفع شد.

    پاسخ

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

      پاسخ
    رضا

    سلام
    چطور میشه وقتی در مسیر دهی آدرس باز کردن یک فایل متن فارسی وجود داره از vba استفاده کرد

    پاسخ

      سلام ارادت خدمت شما دوست عزیز

      برای باز کردن یک فایل متنی فارسی در VBA، می‌توانید از تابع OpenTextFile استفاده کنید. برای این کار، ابتدا باید مسیر فایل متنی فارسی را در یک متغیر رشته‌ای ذخیره کنید، سپس این مسیر را به تابع OpenTextFile ارسال کنید.

      به عنوان مثال، فرض کنید می‌خواهید فایلی با نام “example.txt” که در مسیر “C:\Users\Username\Desktop” قرار دارد را باز کنید، می‌توانید کد زیر را در VBA استفاده کنید:
      Dim FilePath As String
      Dim TextFile As Object
      Set TextFile = CreateObject("Scripting.FileSystemObject")
      FilePath = "C:\Users\Username\Desktop\example.txt"
      Set TextFile = TextFile.OpenTextFile(FilePath, 1, False, -2) ' پارامتر اول 1 به معنای باز کردن فایل برای خواندن است، و پارامتر دوم False به معنای این است که فایل در حالت Unicode باز شود و پارامتر سوم -2 به معنای تشخیص خودکار و پشتیبانی از کدبندی فارسی است.

      TextFile.Close
      امیدوارم که منظور تون را متوجه شده باشم و شما پاسخ تون را دریافت کرده باشید
      من همیشه آماده‌ی پاسخگویی به سوالات شما هستم. در صورتی که هر سوالی دارید، لطفاً بپرسید.

      پاسخ
    بهروز

    سلام خوب هستید
    دست شما درد نکنه این تنظیمات در کامپیوتر من بعد از نصب ویندوز ، نمایش فونتها در محیط برنامه نویسی اکسل به هم خورده بود که این مشکل برطرف شد

    پاسخ

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

      پاسخ
    کاظمی

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

    پاسخ

      سلام ارادت خدمت شما دوست عزیز
      خوشحال هستم که برای تون مفید بوده سپاسگزاریم بابت ارسال نتیجه کار تون موفق پیروز باشید مثل همیشه

      پاسخ
    شوان عبدالله پور

    عالی بو د …مرسی

    پاسخ

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

      پاسخ
    raghb

    سلام ی مشکلی که استاد هست حرف {ِ ی } هست که در محیط اکسل
    { ی } فارسی ولی با همان فونت در محیط vba دو نقطه زیر آن قرار دارد و در هنگام سلکت کردن مثلا یک فیلد از تیبل به این تناقض باگ می دهد چون پیداش نمی کند . انواع فونت ها رو هم در دو محیط امتحان کردم و درست نشد فقط با { ی } مشکل دارد. راهنمایی بفرمایید

    پاسخ
    یاسین

    بسیار عالی و آموزنده بود . درود بر شما آقای وکیل زاده

    پاسخ

      سلام ارادت خدمت شما دوست عزیز
      خوشحال هستم که برای شما هم بوده جهان سپاس بابت ارسال نظر مثبت تون
      شاد پیروز باشید

      پاسخ