تابع MOD در برنامه نویسی VBA ، تابعی با کاربردهای جالب
با سلام . خوش آمدید به یکی دیگر از سری آموزش های سافت پلاس . امروز می خواهیم در زمینه برنامه نویسی VBA در نرم افزار اکسل با هم به بررسی مطلبی تحت عنوان تابع MOD در برنامه نویسی VBA بپردازیم.
تابع MOD یکی از صدها تابعی است که در داخل نرم افزار اکسل قرار دارد . این تابع یک تابع خیلی ساده و کوچک است و با کمترین تنظیماتی که دارد خیلی راحت می توانی از ان استفاده کنی.
کارکرد این تابع خیلی ساده است . اگر می خواهی به خوبی با این تابع و کارهایی که می توانی با آن انجام دهی ؛ آشنا شوی می توانی سری به لینک زیر بزنی . آنجا مفصل راجع به این تابع ، ورودی های آن و در نهایت خروجی که می دهد صحبت کرده ام .
مطلب مرتبط :
آموزش تابع MOD در اکسل با مثالهای کاربردی + ویدئوی آموزشی
مطلب بالا در خصوص کار با تابع MOD در نرم افزار اکسل است . اما در برنامه نویسی VBA هم تابعی به همین نام و با همین کارکرد وجود دارد .
همین موضوع را ، یعنی تابع MOD در برنامه نویسی VBA را بهانه این آموزش قرار داده ام . اجازه بده همین ابتدای کار با هم بررسی کنیم که قرار است راجع به چیزی با هم صحبت کنیم و قرار است چه چیزهایی را یاد بگیریم ؟
عملکرد تابع MOD در برنامه نویسی ,وی بی ای
قبل از اینکه وارد بحث اصلی بشویم اجازه بده تا با هم یک مروری کنیم روی این که تابع MOD چه قابلیتی دارد و چه کاری می تواند برای ما انجام دهد .
کار این تابع خیلی ساده است .
این تابع دو تا عدد را از ما به عنوان ورودی می گیرد . بعد عدد اول را به عدد دوم تقسیم می کند و باقی مانده این تقسیم را به عنوان خروجی در اختیار ما می گذارد .
تصویر زیر نمایی از کارکرد این تابع را به ما نمایش می دهد .
همانطور که می بینی یک فرآیند تقسیم از بخش ها و قسمتهای مختلفی تشکیل شده است . اما در این بین تابع MOD فقط باقی مانده حاصل از تقسیم یک عدد بر عدد دیگر را به عنوان خروجی مورد نظر برای ما به نمایش می گذارد .
در اینجا بد نیست نگاهی به شکل دستوری این تابع در اکسل بیندازیم .
mod (number,divisor)
این شکل ظاهری این تابع در محیط اکسل بود .
در محیط برنامه نویسی VBA هم با تابع MOD سر و کار داری و می توانی از آن استفاده کنی .هر چند که شکل ظاهری آن کمی با تابع موجود در اکسل فرق می کند اما خروجی آن کاملا با تابع اکسل یکسان است .
با هم برویم به سراغ کد نویسی وی بی ای و استفاده کردن از تابع MOD در برنامه نویسی VBA
کارهای جالبی که با تابع MOD می شود کرد .
تابع mod به خودی خود و وقتی به تنهایی استفاده می شود شاید چندان کاربرد و قابلیت جالبی را برایت فراهم نکند . اما کافی است کمی خلاقیت به خرج بدهی آن وقت می بینی که چقدر به کمک این تابع به ظاهر ساده می توانی کارهای جالبی را انجام دهی .
در ادامه با هم یک سری از کدهایی را می نویسیم که در ساختار آنها از تابع MOD استفاده شده و خواهی دید که با استفاده از این تابع چه کارهای جالبی را می شود انجام داد.
1- کدام اعداد فرد اند و کدام اعداد زوج
اول بیا یک تعریف از عدد فرد و زوج داشته باشیم .
اگر یک عدد داشته باشیم و آن را بر عدد 2 تقسیم کنیم و این تقسیم باقی مانده ای نداشته باشد یا به عبارتی باقی مانده آن صفر باشد پس می شود گفت که این عدد یک عدد زوج است .
اما اگر حاصل این تقسیم شامل هر باقی مانده ای به غیر از صفر باشد پس می شود نتیجه گرفت که این عدد فرد است .
حالا با استفاده از همین قاعده ساده در ریاضیات و البته با استفاده از تابع MOD خیلی راحت می توانیم کاری کنیم که یک مجموعه از اعداد را به اکسل بدهیم و اکسل برای ما اعداد زوج و فرد را پیدا کند .
برویم ببینیم که چطور می شود این کار را با استفاده از کدهای VBA انجام داد .
برای شروع کار از تصویر زیر استفاده می کنیم .
اینجا یک جدول را می توانی ببینی که شامل چند سطر و ستون از اعداد مختلف است . حالا می خواهیم با استفاده از برنامه نویسی و کدهای وی بی ای کاری کنیم که رنگ سلول های حاوی اعداد زوج به یک رنگ و سلول های حاوی اعداد فرد هم به رنگ دیگری درآیند .
چطور است که برای نوشتن این کدها با هم قدم به قدم پیش برویم .
در اولین قدم ما نیاز به دو تا متغیر داریم که باید آنها را تعریف کنیم .
این کار را با استفاده از کدهای زیر انجام می دهیم . .
Dim rng As Range
Dim mycell As Range
در اینجا متغیر اول را به نام rng و متغیر دوم را هم به نام mycell نام گذاری شده است . نوع هر دوی آنها را هم از نوع محدوده یا Range در نظر گرفته شده است . اینطوری اکسل می فهمد که قرار است با محدوده ها کار کنی .
اما چه محدوده ای ؟ این محدوده همان محدوده سلول هایی است که اعداد ما در آن قرار دارند .
خب این محدوده را باید برای اکسل هم دقیقا مشخص کنی. برای این کار از کدهای زیر می توانی استفاده کنی .
Set rng = Range("a1:e10")
همین یک خط کد کافی است تا اکسل متوجه شود که باید روی چه محدوده ای از اطلاعات کار کند . در این خط از کد کلمه کلیدی set نقش مهمی را ایفا می کند . یادت باشد که ان را حتما در ابتدای این خط از کد بیاوری .
حالا باید به سراغ مرحله بعدی از کار بروی . در این مرحله باید از اکسل بخواهی که چند تا کار را به صورت همزمان انجام دهد .
کار اول اینکه به تک تک سلول های موجود در این محدوده که برایش مشخص کرده ای سر بزند .
کار دوم این است که تشخیص بدهد که آیا عددی که در داخل سلول مورد نظر وجود دارد فرد است یا زوج ؟ اینجاست که باید از تابع mod کمک بگیری .
کار سوم هم این است که اگر عدد مورد نظر فرد بود ، سلول مربوط به آن را به یک رنگ خاص و اگر عدد مربوطه زوج بود سلول مورد نظر را به رنگ خاص دیگری دربیاورد .
حالا برویم همه این صحبتها را در قالب کدهای VBA برای برنامه ترجمه کنیم .
For Each mycell In rng
If mycell.Value Mod 2 = 0 Then
mycell.Interior.Color = vbYellow
Else
mycell.Interior.Color = rgbBeige
End If
Next mycell
اصل کار در این خطوط کد در خط شماره 3 انجام می شود . در این خط از کد برنامه با استفاده از تابع MOD تشخیص می دهد که آیا عدد موجود در سلول زوج است یا نه ؟
اگر عدد مربوطه زوج بود آن وقت رنگ سلول مورد نظر را به رنگ زرد در می آورد در غیر اینصورت رنگ سلول را به رنگ بژ در خواهد آورد .
این یکی از کارهایی بود که به کمک این تابع می شود در برنامه نویسی وی بی ای انجام داد .
2-جدا کردن بخش اعشاری اعداد
فرض کن که تعداد زیادی از اعداد اعشاری داری و حالا بنا بر هر دلیل می خواهی بخش اعشاری آنها را بخش صحیح جدا کنی . برای این کار چه راهکاری به نظرت می رسد ؟
برای این کار می توانی از تابع MOD کمک بگیری اما چطور ؟
به تصویر زیر نگاه کن .
در تصویر بالا و در ردیف اول از آن ما یک سری از اعداد اعشاری را داریم در ردیف پایین هم بخش اعشاری همان اعداد را نمایش می دهیم .
برای این کار فقط از یک فرمول ساده استفاده می کنیم . آن فرمول هم این است :
=mod(C2,1)
با همین فرمول ساده ما می توانیم خیلی راحت بخش اعشاری را از این اعداد جدا کنیم .
3- جدا کردن اعداد صحیح از اعداد اعشاری
یک کار جالب دیگری که می شود با استفاده از تابع Mod انجام داد این است که به کمک آن می توان اعداد اعشاری را از اعداد صحیح متمایز کرد .
مثلا به تصویر زیر نگاه کنید .
برای این کار از تابع mod استفاده می کنیم .اما در کنار این کار می توانیم یک کار جالب دیگر هم انجام دهیم .
اینجا به کمک تابع mod کاری کردیم که اکسل اعداد اعشاری را از اعداد صحیح برای ما جدا کند . اما نظرت چیست اگر بتوانی کاری کنی که به کاربر اصلا اجازه وارد کردن اعداد بصورت اعشاری را ندهی .
خب برای این کار باید برای اکسل تعریف کنی که به هیچ وجه به کاربر اجازه وارد کردن اعداد اعشاری را ندهد .
اما اینکه چطور می شود این کار ها را کرد را می توانی در ویدئوی زیر مشاهده کنی .
در این مطلب با هم به بررسی تابع MOD در برنامه نویسی VBA و کارهایی که می شود با آن انجام داد را با هم یاد گرفتیم .
امیدوارم که این آموزش براتون مفید فایده واقع شده باشد .
با اشتراک در سایت می توانید نمونه فایل دانلودی این اموزش را از باکس زیر دریافت کنید
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : گزارش خرابی لینک
مطالب زیر را حتما مطالعه کنید
ذخیره نمودارها با کدهای VBAبصورت تصویر+راهنمای گام به گام
لیست باکس ها در برنامه نویسی VBA ؛ تمام چیزی که باید بدانید .
۷ اشتباه در کدنویسی VBA که ممکن است شما هم مرتکب شوید ؟
توی این آموزش راجع به اشتباهاتی که ممکن است در برنامه نویسی VBA مرتکب آنها شوید صحبت می کنیم .
با این خطای Runtime Error 1004 در VBA چکار کنیم ؟
در این آموزش راجع به خطایی به اسم Run time error 1004 در برنامه نویسی وی بی ای با هم صحبت می کنیم .
چطور با کدهای VBA اطلاعات را از اکسس به ورد بفرستیم؟
کلمه کلیدی set و کاربردهای آن در برنامه نویسی VBA
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
خیلی جالب بود واقعا کاربردی و مفید
سلام
من میخواهیم فرمولی که خروجی اش به شکل زیر باشد و انهم اینکه mod جواب درستی نمیدهد فق تا ۱۰۰ و بالای صد را اشتباه می کند.
صابون تعداد ۱۰۶ عدد / در هربسته ۲۴ عدد / => ۱۰۶ به ۲۴ تقسیم و جواب میشود ۴ بسته و ۴ دانه یا عدد
حالا میخواهم بدون اعشار و درست (دانه با عدد) را به عدد صحیح و درست خروجی دهد.
باتشکر