توضیحات کامل در مورد فایل
دانلود برنامه برای ایجاد لیست تقویم روز های شمسی در اکسل
آیا میخواهید تقویم شمسی را در اکسل به صورت خودکار ایجاد کنید؟ با استفاده از کد VBA میتوانید یک تقویم کامل شمسی همراه با تاریخ میلادی، نام روزها، ماهها بسازید.
یکی از چالشهای مهم در ساخت برنامههای کاربردی فارسی، مدیریت دقیق تقویم شمسی و دادههای مرتبط با آن است. این کد VBA به عنوان یک راهکار کاربردی و قابل توسعه، امکان ساخت یک تقویم شمسی کامل را در اکسل فراهم میکند. با استفاده از این کد، میتوان بهسادگی یک دیتابیس تقویم شامل تاریخهای شمسی، معادل میلادی، نام روزها و اطلاعات تعطیلات رسمی ایجاد کرد که پایهای برای ساخت انواع برنامههای مدیریت زمان و برنامهریزی محسوب میشود.
دیتابیس تقویم تولید شده توسط این ماکرو، قابلیت ذخیرهسازی و دستهبندی دادههای تاریخی را به شکلی سازمانیافته و قابل خواندن برای کاربران فراهم میکند. هر روز سال شمسی به همراه جزئیاتی چون نام ماه، شماره ماه و وضعیت تعطیلات ثبت میشود و این دادهها با رنگبندی مناسب، نمایشی گرافیکی و کاربردی از سال فراهم میکنند. این دادهها میتوانند به عنوان منبع اصلی برای انواع گزارشها، تحلیلها و ارتباط با سیستمهای دیگر مورد استفاده قرار بگیرند.
ترکیب این دادهها با توابع تبدیل و اعتبارسنجی، امکان ساخت یک تقویم هوشمند و داینامیک را میدهد که به راحتی میتواند به روزرسانی شده یا با دادههای جدید تکمیل شود. این کد نمونهای ساده و در عین حال بسیار کاربردی از ایجاد تقویم شمسی در اکسل است که میتواند به عنوان هسته مرکزی یک دیتابیس تقویم در پروژههای مختلف استفاده شده و پایهای برای توسعه سیستمهای پیشرفتهتر باشد.
این کد VBA یک تقویم شمسی کامل را در اکسل ایجاد میکند.
ویژگیهای تقویم شمسی خودکار در اکسل
- نمایش تاریخ شمسی و میلادی به صورت همزمان
- شناسایی روزهای هفته (شنبه تا جمعه)
- رنگبندی خودکار روزهای تعطیل
- پشتیبانی از هر سال شمسی (از ۱۳۰۰ به بعد)
نحوه اجرای کد در اکسل
۱. فعال کردن Developer Tab و VBA Editor
در اکسل، به File > Options > Customize Ribbon بروید.
گزینه Developer را فعال کنید و OK بزنید.
از تب Developer، روی Visual Basic کلیک کنید.
دریافت خروجی
-
در پنجره VBA، کلید F5 را بزنید یا از منوی Run گزینه Run Sub/UserForm را انتخاب کنید.
-
سال شمسی مورد نظر را وارد کنید (مثلاً 1404).
-
تقویم کامل به صورت خودکار در یک شیت جدید ایجاد میشود!
این کد VBA یک تقویم سالانه شمسی را در یک شیت جدید اکسل ایجاد میکند. ابتدا کاربر از طریق یک پنجره ورودی (InputBox) سال شمسی مورد نظر را وارد میکند. پس از تأیید صحت ورودی، شیت قبلی به نام «تقویم» حذف شده و یک شیت جدید با همین نام ساخته میشود. در این شیت جدید، ستونهایی برای نمایش تاریخ شمسی، معادل میلادی، روز، ماه، نام روز هفته، شماره ماه و اطلاعات تعطیلات ایجاد میشود. سپس از اولین روز سال شمسی تا آخرین روز، دادههای مربوط به هر روز در این ستونها وارد میشود.
در حلقه اصلی برنامه، برای هر روز از سال، ابتدا اعتبار تاریخ شمسی با تابع ValidDate بررسی میشود تا از صحت آن اطمینان حاصل شود. سپس تاریخ به شکل «سال/ماه/روز» (مثلاً 1404/01/01) در ستون مربوط به تاریخ شمسی ثبت میشود. همچنین، تبدیل تاریخ شمسی به میلادی با استفاده از تابع ShamsiToMiladi انجام شده و تاریخ میلادی متناظر ثبت میگردد. توابع کمکی دیگری مانند MahName برای تبدیل شماره ماه به نام ماه، و GetDayName برای استخراج نام روز هفته به زبان فارسی به کار گرفته شدهاند.
یکی از قابلیتهای جالب این کد، شناسایی و رنگبندی خودکار روزهای جمعه و تعطیلات رسمی است. اگر روز مورد نظر جمعه باشد، کل ردیف آن به رنگ صورتی کمرنگ در میآید و در ستون تعطیلات عبارت «جمعه» نوشته میشود. همچنین، اگر روز در لیست تعطیلات رسمی که در تابع IsHoliday تعریف شده قرار گیرد، رنگ ردیف به زرد تغییر میکند تا کاربر بتواند به سرعت این روزها را تشخیص دهد. این امکان باعث میشود تقویم نهتنها اطلاعات تاریخی بلکه جنبههای کاربردی مناسبی برای برنامهریزی داشته باشد.
توابع کمکی در انتهای کد، نقش مهمی در خوانایی و کارایی برنامه دارند. به طور مثال، توابعی مانند Sal، Mah و Rooz برای استخراج بخشهای مختلف تاریخ شمسی به کار میروند. تابع IsHoliday یک مجموعه از تاریخهای تعطیلات رسمی را تعریف و چک میکند که آیا تاریخ مورد نظر در این لیست قرار دارد یا خیر. همچنین، تابع ShamsiToMiladi با تبدیل تاریخ شمسی به میلادی بهصورت دقیق، امکان نمایش هر روز به دو تقویم مختلف را فراهم میکند.
در مجموع، این ماکرو یک ابزار مفید و کاربردی برای ایجاد تقویم سالانه شمسی در اکسل است که علاوه بر نمایش دقیق تاریخها، با رنگبندی مناسب و نمایش نام روزها و تعطیلات، یک تقویم قابل استفاده و کامل برای برنامهریزیهای روزمره و کاری فراهم میآورد. این کد برای کسانی که به دنبال استفاده از تقویم شمسی در محیط اکسل هستند، یک نمونه عالی و قابل توسعه به شمار میرود.
نمونه تصاویر در زمان اجرا
کاربردهای این تقویم خودکار
- مدیریت پروژهها با تاریخبندی شمسی
- برنامهریزی مالی و حسابداری
- پیگیری مناسبتها
- اتوماسیون گزارشدهی بر اساس تقویم شمسی
با استفاده از این کد، کاربران میتوانند به سادگی و در کمترین زمان یک تقویم شمسی دقیق و کاربردی بسازند که قابلیت سفارشیسازی و توسعه بیشتر را نیز دارد. به عنوان مثال، میتوان تعطیلات خاص یا رویدادهای مهم دیگر را به لیست تعطیلات اضافه کرد یا قالببندی رنگها را تغییر داد تا با نیازهای شخصی یا سازمانی هماهنگ شود.
علاوه بر این، استفاده از توابع کمکی مثل تبدیل تاریخ شمسی به میلادی و استخراج نام روز هفته، فرآیند برنامهنویسی را بسیار سادهتر کرده و امکان توسعه سریعتر پروژههای مرتبط با تاریخ شمسی را فراهم میکند. این قابلیتها به ویژه برای کاربران فارسیزبان که نیاز به تقویمهای دقیق و فارسیسازی شده دارند، بسیار مفید و کاربردی است.
برای شما کاربران عزیز پیشنهاد دانلود داده می شود.