You are currently viewing آموزش تبدیل تاریخ شمسی و میلادی و محاسبه اختلاف تاریخ‌ها با استفاده از اکسل و VBA
آموزش تبدیل تاریخ شمسی و میلادی و محاسبه اختلاف تاریخ‌ها با استفاده از اکسل و VBA

آموزش تبدیل تاریخ شمسی و میلادی و محاسبه اختلاف تاریخ‌ها با استفاده از اکسل و VBA

این آموزش به معرفی یک فایل اکسل با فرمت xlsm می‌پردازد که دارای توابع پیشرفته‌ای برای تبدیل تاریخ شمسی به میلادی و بالعکس، محاسبه اختلاف تاریخ‌ها و محاسبه تاریخ بر اساس تعداد روزها است.

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

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

آیا می‌دانید:

آیا می‌دانید که ماکرونویسی در اکسل به شما این امکان را می‌دهد که با استفاده از دستورات VBA، به‌سرعت کارهای پیچیده را انجام دهید و در عین حال آموزش ویژوال بیسیک در اکسل می‌تواند شما را در ایجاد ماکروهای پیشرفته یاری کند؛ به‌طوری که با تسلط بر این مهارت‌ها، می‌توانید به‌راحتی از نمونه کدهای VBA در اکسل بهره‌برداری کنید و کارایی فرآیندهای خود را به حداکثر برسانید؟

معرفی توابع و کاربرد آن‌ها

این برنامه چهار تابع جدید به اکسل شما اضافه می‌کند. با استفاده از این چهار تابع می‌توانید

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

را براحتی انجام دهید. توابع این ماکرو اکسل به شرح زیر می‌باشد:

1. تابع ivMiladiToShamsi

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

آرگومان‌های (ورودی‌های) تابع

  1. inputDate: تاریخ میلادی ورودی
  2. returnValueType: قالب تاریخ شمسی خروجی؛ تابع هفت قالب خروجی دارد که در جدول زیر می‌توانید تفاوت هر کدام را مشاهده نمایید.

در جدول زیر می‌توانید فرم‌های مختلف این تابع را مشاهده نمایید:

تاریخ میلادیخروجی تابع (تاریخ شمسی)فرمول
2024-10-2504/08/1403=ivMiladiToShamsi(A13, 1)
2020-10-23جمعه، 02 آبان ، 1399=ivMiladiToShamsi(A14, 2)
2000-10-2807-آبا-1379=ivMiladiToShamsi(A15, 3)
2012-03-231391/01/04=ivMiladiToShamsi(A16, 4)
2024-03-2301/04/1403=ivMiladiToShamsi(A17, 5)
2024-03-2304 فروردين 1403=ivMiladiToShamsi(A18, 6)
2024-03-23شنبه، فروردين 04، 1403=ivMiladiToShamsi(A19, 7)

توضیح: توجه داشته باشید که برای مشاهده صحیح تاریخ میلادی قالب عددی سلول باید روی Date و تقویم روی Gregorian تنظیم شده باشد.

1. تابع ivShamsiToMiladi

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

آرگومان‌های (ورودی‌های) تابع

  1. inJalaliDate: تاریخ شمسی/جلالی ورودی؛ یکی از سه فرم 14021201 يا 1402/12/01 يا 01-12-1402

در جدول زیر می‌توانید چند کاربرد از این تابع را مشاهده نمایید:

تاریخ شمسیخروجی تابع (تاریخ میلادی)فرمولتوضیحات
13621201دوشنبه, 20 فوريه 1984=ivShamsiToMiladi(A27)
1403-08-01سه شنبه, 22 اُكتبر 2024=ivShamsiToMiladi(A28)
1403/12/29چهارشنبه, 19 مارس 2025=ivShamsiToMiladi(A29)
1403/12/30پنجشنبه, 20 مارس 2025=ivShamsiToMiladi(A30)
1402/12/30تاريخ ورودي صحيح نمي‌باشد=ivShamsiToMiladi(A31)سال 1402 کبیسه نبوده است.
1399/07/31تاريخ ورودي صحيح نمي‌باشد=ivShamsiToMiladi(A32)ماه مهر 31 روزه نمی‌باشد.
1399/05/20دوشنبه, 10 اوت 2020=ivShamsiToMiladi(A33)
توضیح: توجه داشته باشید که برای مشاهده صحیح تاریخ میلادی قالب عددی سلول باید روی Date و تقویم روی Gregorian تنظیم شده باشد.

1. تابع ivShamsiDiff

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

آرگومان‌های (ورودی‌های) تابع

  1. firstDate: تاریخ شمسی/جلالی اول؛ یکی از سه فرم 14021201 يا 1402/12/01 يا 01-12-1402
  2. secoundDate: تاریخ شمسی/جلالی دوم؛ یکی از سه فرم 14021201 يا 1402/12/01 يا 01-12-1402

در جدول زیر می‌توانید چند کاربرد از این تابع را مشاهده نمایید:

تاریخ شمسی اولتاریخ شمسی دومخروجی تابعفرمول
136212011403/12/3015004=ivShamsiDiff(A42, B42)
1403-08-011403-01-31-186=ivShamsiDiff(A43, B43)
1403/12/291403-01-31-334=ivShamsiDiff(A44, B44)
1403/12/301403-01-31-335=ivShamsiDiff(A45, B45)
1402/12/301403-01-31مقدار تاريخ شروع اشتباه است=ivShamsiDiff(A46, B46)
1399/07/311403-01-31مقدار تاريخ شروع اشتباه است=ivShamsiDiff(A47, B47)
1399/05/201403-01-311348=ivShamsiDiff(A48, B48)

1. تابع ivDaysFromDate

این تابع تعداد روزهای بعد از یک تاریخ مبنا را به سال، ماه و روز تبدیل می‌نماید.

آرگومان‌های (ورودی‌های) تابع

  1. numOfDays: تعداد روزها بعد از تاریخ مبنا
  2. baseDate: تاریخ مبنای شمسی/جلالی؛ یکی از سه فرم 14021201 يا 1402/12/01 يا 01-12-1402. مقدار پیش‌فرض این آرگومان 1300-01-01 خواهد بود.
  3. printFormat: نحوه پرینت نتایج در سلول را مشخص می‌نماید. اگر False (مقدار پیش‌فرض) باشد فقط تعداد سال، روز و ماه در سلول پرینت خواهد شد. اگر True باشد اطلاعات کامل پرینت خواهد شد.
تعداد روز‌هاتاریخ مبنانتیجه تابعفرمول سلول
100001362120110000 روز از تاريخ 13621201 تاريخ 1390/04/17 و برابر با 27 سال و 4 ماه و 15 روز مي‌باشد.=ivDaysFromDate(A57,B57,TRUE)
100001362120127 سال و 4 ماه و 15 روز=ivDaysFromDate(A58,B58,FALSE)
311403/12/290 سال و 0 ماه و 31 روز=ivDaysFromDate(A59,B59,FALSE)
301403/12/300 سال و 0 ماه و 30 روز=ivDaysFromDate(A60,B60,FALSE)
311402/12/2931 روز از تاريخ 1402/12/29 تاريخ 1403/01/31 و برابر با 0 سال و 1 ماه و 1 روز مي‌باشد.=ivDaysFromDate(A61,B61,TRUE)
301399/07/31تاريخ مبنا اشتباه وارد شده است=ivDaysFromDate(A62,B62,FALSE)
3651399/05/200 سال و 11 ماه و 29 روز=ivDaysFromDate(A63,B63,FALSE)

کد منبع ماکرو

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

دانلود فایل برنامه تبدیل تاریخ شمسی و میلادی ایران VBA

راهنمای استفاده از فایل

فعال‌سازی ماکروها: حتماً هنگام باز کردن فایل ماکروها را فعال کنید تا توابع به درستی کار کنند.
استفاده از توابع در شیت‌های مختلف: توابع به‌راحتی در هر شیت اکسل قابل استفاده هستند و نیازی به تنظیمات اضافی ندارند.

دیدگاهتان را بنویسید