مجموعه آفیس مایکروسافت (MicroSoft Office) از پرکاربردترین و مهمترین مجموعه نرم افزار رایانه ای در جهان است که یکی از نرم افزارهای پر کاربرد آن، نرم افزار اکسل (Excel) است. مدارس و دانشگاهها، ادارات دولتی و خصوصی، فروشگاهها، کاربران عادی و بسیاری دیگر از این نرم افزار استفاده میکنند. در اکسل به دو شیوه میتوان دادهها را مدیریت و برنامه ریزی کرد یکی روش فرمول نویسی و دیگری برنامه نویسی، که در این مطلب قصد داریم درمورد برنامه نویسی در اکسل با VBA، صحبت کنیم. پس با ما همراه باشید.
VBA چیست؟
VBA مخفف Visual Basic for Applications یک زبان برنامه نویسی است که در مجموعه برنامههای آفیس استفاده میشود. همینجا باید متذکر شویم که VBA در نرم افزارهای تخصصی دیگر از جمله AutoCad، ARCGIS و غیره نیز قابل استفاده است.
این زبان در واقع زیر مجموعهای از Visual Basic 6.0 است که شباهتهایی هم به زبان VB دارد اما این دو از یکدیگر جدا بوده و زبانهای برنامهنویسی متفاوتی هستند. زبان VB بیشتر برای توسعه برنامه دسکتاپ مورد استفاده قرار میگیرد، در صورتی که از زبان VBA فقط میتوانیم در محیط برنامههای دیگر نظیر اکسل، استفاده کنیم.
کاربرد VBA در اکسل
در اکسل کارهای متنوعی میتوان انجام داد از جمله ذخیره اطلاعات مشتری، ذخیره نمرات دانش آموزان و دانشجویان، تحلیل علمی داده ها، ایجاد نمودار از پایگاه داده، ایجاد فرم ها، بودجه بندی و پیش بینیهای مالی و موارد بسیار دیگری که میتوانیم نام ببریم.
در تمامی موارد ذکر شده میتوان با استفاده از زبان VBA در اکسل کدی نوشت که قسمتی از اکسل، کاری را به صورت خودکار انجام دهد و لازم نباشد کاربر خود به صورت دستی همان کار را انجام دهد. به عنوان مثال میتوان یک برنامه ثبت سفارش خرید و فروش کالا را با خروجیهای مختلف ایجاد کرده و اطلاعات را ساماندهی و گزارشهای ماهیانه و سالیانه تهیه کرد.
VBA در اکسل، به طور خودکار اکسل را نرم افزار میزبان فرض میکند و دیگر لازم نیست در ابتدای کدها حتما نوع نرم افزار (به عنوان مثال ورد، اکسل، پاورپونت و ...) را مشخص کنیم. به جز مواردی که بخواهیم از طریق برنامه نویسی در اکسل، نرم افزارهای دیگری را کنترل کنیم.
مزایای استفاده از VBA چیست؟
تقریبا هر کاری را که در اکسل انجام میدهیم، میتوانیم روال انجام آن را بصورت خودکار کنیم. برای این کار، باید دستورالعمل هایی را وارد کنیم که اکسل انجام دهد. خودکارسازی کار در اکسل با استفاده از زبان VBA مزایای مختلفی دارد از جمله میتوان به موارد زیر اشاره کرد:
اکسل همیشه کار را به همان روشی که برنامه نویسی کردیم، انجام میدهد که این باعث ثبات در کارها میشود.
سرعت انجام کارها در اکسل بالاتر از انجام کار به شیوه دستی میشود.
اگر یک برنامه نویس خوب ماکرو باشیم، اکسل اغلب کارها را بدون خطا انجام میدهد.
اگر دستورات به درستی نوشته و تنظیم شده باشد، هر کاربر آشنا به اکسل میتواند کارها را در اکسل با اجرای ماکرو انجام دهد.
با برنامه نویسی VBA ما میتوانیم کارهایی را در اکسل انجام دهیم که امکان انجام آن به صورت دستی غیرممکن است و این میتواند ما را تبدیل به یک فرد محبوب در محل کار کند.
برای انجام کارهای طولانی و وقت گیر، دیگر نیازی نیست دائم جلوی رایانه خود بنشینیم و خود را خسته کنیم، بلکه اکسل خود همه کارها را بصورت اتوماتیک در حالی که ما در حال استراحتیم، انجام میدهد.
معایب استفاده از VBA
هر کاری که مزایا دارد، معایبی هم به همراه خواهد داشت. چند مورد از معایبی که برنامه نویسی در اکسل دارد از این قرارند:
ما برای نوشتن برنامه خود در اکسل باید برنامه نویسی با VBA را بلد باشیم. البته یادگیری آن سخت نیست.
سایر افرادی که میخواهند از برنامههای ما استفاده کنند، لازم است که نرم افزار اکسل را روی سیستم خود داشته باشند و امکان ارائه برنامهها به صورت مستقل وجود ندارد.
گاهی اوقات برنامه VBA طبق خواست ما کار نخواهد کرد و در انجام کارها و محاسبات اشتباهی رخ میدهد که در این مواقع باید به دنبال اشکال زدایی و رفع مشکلات احتمالی باشید.
همانطور که میدانید مایکروسافت دائما در حال ارتقا مجموعه نرم افزارهای خود از جمله اکسل است. حتی اگر مایکروسافت تلاش زیادی برای سازگاری بین نسخههای مختلف اکسل انجام دهد، ممکن است در مواردی کد VBA ما، روی نسخههای قبلی یا بعدی اکسل به درستی کار نکند.
چگونه میتوان با VBA در اکسل برنامه نویسی کرد؟
در ادامه سعی میکنیم با یک مثال ساده، شما را با نحوه برنامه نویسی در اکسل آشنا کنیم. در برنامهی ما، فرمی نمایش داده میشود و نام کاربر را میپرسد، سپس کاربر با واردکردن نام خود، پیغامی دریافت میکند.
مبانی اولیه برنامه نویسی VBA
قبل از اینکه بتوانیم کدنویسی را آغاز کنیم، نیاز داریم کمی با اصول اولیه برنامه نویسی آشنا شویم. مبانی زیر برای شروع کار به ما کمک میکند:
متغیر (Variable): در مدرسه عبارت (x+2y) را به ما میدادند و میگفتند جواب را در صورتی x = 1 و y = 3 باشد را پیدا کنید، در این عبارت x و y متغیر هستند. همانطور که در مثال وجود دارد به متغیرها هر عددی مثلا همین 1 و 3 را میتوان اختصاص داد، یا آنها میتوانند به ترتیب 2 و 4 تغییر کنند. متغیرها به طور خلاصه محلی در حافظه هستند.
قوانین نامگذاری متغیر ها
از کلمات رزرو شده نمیتوان به عنوان اسم متغیر، استفاده کرد: اگر فرضا ما دانشجو باشیم نمیتوانیم از عناوین استاد یا مدرس استفاده کنیم، زیرا این عناوین مختص استادان و مسئولان دانشگاه است. در VBA نیز بعضی کلمات که معنی ویژه ای دارند به عنوان کلمات رزرو شده تعیین شده اند و ما نمیتوانیم از آنها به عنوان نام متغیر استفاده کنیم.
در نام متغیر نمیتوان از فاصله استفاده کرد: ما نمیتوانیم دو کلمه جدا شده از هم را بعنوان نام متغیر استفاده کنیم. به عنوان مثال first number صحیح نیست و باید برای نامگذاری به این صورت firstNumber یا first_number استفاده کنیم.
از اسامی توصیفی برای نامگذاری استفاده کنید: بسیار وسوسه انگیز است که نام متغیر خود را variable بگذاریم اما باید از این کار اجتناب کنیم. بهتر است از نامهای توصیفی مانند رنگ، قیمت، جنس و غیره استفاده کنیم که تاثیر فراوانی در خوانایی کد VBA ما دارد.
عملگرهای حسابی: این عملگرها برای محاسبات استفاده میشوند و از اولویت عمگرها یا قوانین BODMAS که مخفف انگلیسی کلمات براکت ها، تقسیم، ضرب، جمع و تفریق است، تبعیت میکنند. بنابراین به یاد داشته باشید هنگام کار با عبارتی که حاوی چندین عملگر حسابی است، از این قوانین برای اولویت عملگر استفاده کنید.
+ برای اضافه کردن
– برای تفریق
* برای ضرب
/ برای تقسیم
عملگرهای منطقی – بر روی عبارات منطقی اعمال میشود و نتیجه یا درست (True) یا نادرست (False) است. از این عملگرها برای شرطها استفاده میشود.
If statements
OR
NOT
AND
TRUE
FALSE
دسترسی به گزینههای توسعه دهنده را فعال کنید
برای استفاده از VBA در اکسل باید گزینه توسعه دهنده را فعال کنیم تا زبانه Developer برای ما نمایش داده شود که برای این کار از طریق منوی File به بخش Options می رویم و سپس گزینه Ribbon Customize را کلیک میکنیم.
ضمنا میتوانیم به صورت میانبر روی هر کدام از زبانهها راست کلیک کنیم و گزینه Customize the Ribbon کلیک کنیم. در بخش Ribbon Customize از قسمت Main Tabs گزینه Developer را فعال میکنیم.
سلام VBA
اکنون نحوه کد نویسی در VBA را بررسی میکنیم. تمام برنامه VBA باید با “Sub” شروع و با “End Sub” پایان یابد. در کنار sub نامی که میخواهیم به برنامه اختصاص دهیم نوشته میشود. تکه کد زیر، پایه تمامی کدهایی هست که خواهیم نوشت.
Sub name()
.
.
End Sub
ساخت یک دکمه در اکسل
یک WorkBook جدید باز میکنیم و به زبانه Developer میرویم و از قسمت Controls روی جعبه کشویی Insert کلیک میکنیم و دکمه فرمان را مطابق تصویر انتخاب میکنیم.
می توانیم دکمه ایجاد شده را به هر کجا که خواستیم منتقل کنیم. بعد از تثبیت دکمه، پنجره محاوره ای زیر نمایان میشود.
نام ماکرو را به btnHelloWorld_click تغییر میدهیم و روی گزینه New کلیک میکنیم که پنجره کد نویسی نمایش داده میشود.
کدهای دستورالعمل زیر را وارد میکنیم
Dim name As String
name = InputBox(“لطفا نام خود را وارد کنید”)
MsgBox “ سلام” + name
که در اینجا:
" Dim name As String" متغیری به نام name ایجاد میکند. متغیر متن، عدد و سایر کارکترها را میپذیرد، زیرا ما آن را به عنوان رشته تعریف میکنیم.
" name = InputBox(“لطفا نام خود را وارد کنید”)" تابع ساخته شده InputBox را فراخوانی میکندکه یک پنجره را با عنوان لطفا نام خود را وارد کنید، را نمایش میدهد. سپس نام وارد شده در متغیر name ذخیره میشود.
" MsgBox “ سلام” + name" تابع ساخته شده MsgBox را فراخوانی میکند تا سلام به همراه نام وارد شده را در کادر نمایش دهد.
پنجره کامل شده کد کامل باید به شکل زیر باشد
پنجره کد را میبندیم و بر روی Button 1 راست کلیک کرده و Edit text را انتخاب میکنیم و نام آن را به "گفتن سلام" تغییر میدهیم. اکنون روی دکمه گفتن سلام کلیک میکنیم و در کادر ورودی نام خود را وارد کرده و تایید میکنیم. با انجام این کار، کادر پیغام سلام نمایش داده میشود.
خب تبریک! ما موفق شدیم اولین برنامه خود را با VBA در اکسل بنویسیم. این فقط یک مثال ساده بود که جهت آشنایی شما با این زبان برنامه نویسی آورده شد. VBA به قدری قدرتمند است که میتوان برنامههای بسیار پیچیده ای در آن کد نویسی کرد.
جمع بندی
با توجه به طیف گستردهی کاربران اکسل و نیز کاربردی بودن آن، لزوم خودکارسازی کارها در اکسل به شدت احساس میشود. زبان برنامهنویسی VBA با قدرت و توانایی هایی که دارد، توانسته در محیط اکسل، امکاناتی برای کاربران مهیا کند که آنها را از انجام کارهای تکراری و پیچیده خلاص کند.
ما در این مقاله گفتیم که VBA چیست و چه مزایا و معایبی دارد. با یک مثال خیلی ساده، شما را با محیط کدنویسی VBA آشنا کردیم و این میتواند شروعی برای کارهای بزرگتر باشد. هر فردی که علاقمند به مباحث اکسل و برنامه نویسی در اکسل است، میتواند با مراجعه به منابع آموزشی فراوانی که برنامه نویسی VBA دارد، آغاز به برنامه نویسی در این حوزه کند.
شما تا به حال با VBA برنامه نویسی کرده اید؟ نظر شما درمورد این زبان برنامه نویسی چیست؟
۵۴ دیدگاه
مهدی۲۴ آبان ۱۴۰۲، ۰۶:۰۱
سلام
فرض کنیم در ستون A ردیف A5 و A8 و A10 عدد 1 داریم ( ردیفها متغییر هست شاید یکبار در A5 عدد 1 باشد و دفعه بعد در ردیف A6 عدد 1 را داشته باشیم تنها چیزی که ثابت هست ستون A هست ) به دنبال کدی هستم که هر جا از ستون A عدد 1 بود زیر عدد 1 یک سطر جدید ایجاد بکنه
ممنون میشم راهنمایی کنید
نازنین کریمی مقدم۲۴ آبان ۱۴۰۲، ۰۷:۲۰
درود
شما اول کد جستجو روی ستون رو مینویسید و اگر عدد 1 رو پیدا کرد و وارد if شد از Range("A1").EntireRow.Insert استفاده میکنید.
حسن حسینخانلو۱۶ آبان ۱۴۰۲، ۱۴:۱۰
سلام
میخوام یه کد بنویسم که با انتخاب هر یک از سلولها در یک محدوده جدول دیتای اون سلول به یک سلول مشخص منتقل بشه . لطفا راهنمایی کنید
نازنین کریمی مقدم۲۳ آبان ۱۴۰۲، ۲۰:۰۸
درود
میتونید از تاپیک زیر کمک بگیرید:
https://stackoverflow.com/questions/28349198/vba-code-for-moving-cells-from-one-column-to-another-based-on-specific-cell-crit
اصغر۲۲ مهر ۱۴۰۲، ۰۷:۵۵
یه برنامه تو vba اکسل نوشتم که عکس کادر را میاره
ولی اگه کدی را بزنیم که اون کد وجود نداشته باشه error میده
اگه ممکن ه راهنمایی کنید
باید یه شرط اول ش بنویسم ولی بلد نیستم
Private Sub TextBox1_Change()
Image1.Picture = LoadPicture("D:\pic2\" & TextBox1.Value & ".jpg")
End Sub
نازنین کریمی مقدم۲۹ مهر ۱۴۰۲، ۱۳:۰۰
درود
متوجه این جمله نشدم دقیقتر توضیح میدید؟
"کدی را بزنیم که اون کد وجود نداشته باشه error میده"
محمود داودی۳۰ شهریور ۱۴۰۲، ۲۲:۱۸
درود بر شما تلفن تماستونو میتونم داشته باشم؟
نازنین کریمی مقدم۲۲ مهر ۱۴۰۲، ۰۸:۵۵
درود
در بخش پایین صفحه یا همون فوتر، میتونید راههای ارتباطی از جمله شماره تماس رو ببینید.
امیرخانی۲۷ شهریور ۱۴۰۲، ۰۹:۳۹
وقت به خیر چگونه یک کد را به کل ورک بوک خود اعمال کنیم . مثلا کد Cells.EntireRow.AutoFit
نازنین کریمی مقدم۲۹ مهر ۱۴۰۲، ۱۲:۵۸
درود
میتونید از Range استفاده کنید و یا از sheet.cells کمک بگیرید:
https://www.automateexcel.com/vba/select-all-cells/
۰۸ فروردین ۱۴۰۲، ۰۸:۲۱
سلام وقت بخیر ممنون از اموزش مفیدتون سوالی از حضورتون داشتم من میخوام کدی بنویسم که مدام یک سلول رو چک کنه اگر خالی بود اون سطر رو رنگی کنه منتهی فقط روی یک کلید تونستم ایجاد کنم چطور میشه همین کد به صورت دائمی این سلول رو بررسی کنه بدون نیاز به کلید ممنون میشم راهنمایی بفرمایید
نازنین کریمی مقدم۱۴ فروردین ۱۴۰۲، ۰۷:۳۲
درود
<a href="https://stackoverflow.com/questions/8726349/is-there-a-function-of-excel-vb-that-will-continuously-check-the-sheet" target="_blank" rel="noopener nofollow ugc">این تاپیک</a> رو بررسی فرمایید.
۱۵ اسفند ۱۴۰۱، ۱۰:۴۱
سلام میشه کدی نوشت که مثلا در سول d5 متنی نوشتیم بپرسه که آیا مطمین به ثبتش هستی و در صورت ردن دکمه yes سلول رو قفل کنه و دیگر نشه ویرایشش کرد میشه کمکم کنید ؟ خیلی این کد رو لازم دارم اگه کمک کنید ممنون میشم
نازنین کریمی مقدم۲۰ اسفند ۱۴۰۱، ۰۵:۳۶
درود
باید یه شرط روی مقدار سلول بگذارید که اگر پر شد <a href="https://forums.codeguru.com/showthread.php?431151-how-to-display-Message-Box-in-vb-Net" target="_blank" rel="noopener nofollow ugc">دیالوگ باز کنه</a> و بعد روی دکمه تایید دیالوگ شرط بگذارید که اگر زد <a href="https://techcommunity.microsoft.com/t5/excel/lock-cells-with-vba-script/td-p/2595834#:~:text=11%3A32%20PM-,Re%3A%20Lock%20cells%20with%20VBA%20script,if%20the%20worksheet%20is%20unprotected." target="_blank" rel="noopener nofollow ugc">سلول قفل بشه</a>.
۰۸ اسفند ۱۴۰۱، ۰۵:۱۶
سلام وقت بخیر، من میخوام کدی بنویسم که وقتی دریک شیت دریک سلول مقادیری رو وارد میکینیم در شیت دیگه ای دریک سلول مشخص بطور خودکار کپی بشه، کد رو پیدا کردم ولی نمیدونم چطور باید کدنویسی کنم. میشه راهنماییم کنید؟
نازنین کریمی مقدم۰۹ اسفند ۱۴۰۱، ۰۵:۰۵
درود
باید طبق بخش "دسترسی به گزینههای توسعه دهنده را فعال کنید" در همین مقاله پیش برید.
۲۲ دی ۱۴۰۱، ۰۹:۰۹
سلام وقت بخیر
نوشتن کد زیر پیچیده است؟
تعدادی عدد داریم و میخواهیم بدانیم جمع کدام یک از این اعداد برابر با مقداری مشخص میشود
نازنین کریمی مقدم۲۳ دی ۱۴۰۱، ۲۱:۴۰
درود
خیر. کافیه که اعداد رو درون یک آرایه بریزید و روشون یک حلقه بزنید تا جمعشون رو چک کنه.
۰۲ آذر ۱۴۰۱، ۰۷:۱۹
با سلام
من این کد رو در اکسس برای جدا کردن سه رقم سه رقم در حال تایپ نوشتم. حالا اگه همینو بخوام تو اکسل بنویسم که زمانی که در یک سلول عدد وارد میکنیم همزمان در حال تایپ سه رقم سه رقم جدا کنه چجوری نوشته میشه؟
Dim sSeparator As String
sSeparator = Me.txtNo.Text
Me.txtNo.Format = &quot;standard&quot;
Me.txtNo.SelStart = Len(sSeparator) + 1
نازنین کریمی مقدم۰۵ آذر ۱۴۰۱، ۲۱:۳۶
درود
فکر نکنم با این حالت جواب بگیرید. باید روی کل برنامه لوپ بزنید و یک شمارنده درنظر بگیرید که به محض اینکه تعداد کاراکتر سه تا شد خودتون کاما اضافه کنید.
۲۹ آبان ۱۴۰۱، ۱۷:۴۴
سلام یه سوال داشتم سایتهای خارجی رو گشتم ولی کمکی بهم نشد
میشه کاری کرد که فایل اکسل بیشتر از یکبار باز نشه منظورم اینکه سیستم یا خود نرم افزار اکسل چک کنه اگه فایل باز بود دیگه مجدد باز نشه ولی اگه فایل باز نبود باز بشه
در حالت عادی اگه فایل باز باشه و مجدد بازش کنیم
همچین پیغامی میده
file.xlsx is already open.reopening will cause any changes .....
ممنون
سلام خسته نباشید من هر چقرد میخوام فارسی بنویسم نمیشه و انگلیسی مینویسه توی کد میشه راهنماییم بکنید؟
نازنین کریمی مقدم۰۴ مرداد ۱۴۰۱، ۰۴:۵۹
درود
از کنترل پنل، region خودتون رو فارسی کنید.
۲۳ خرداد ۱۴۰۱، ۰۵:۱۱
سلام،خواهش میکنم راهنمایی بفرماید که من فایل اکسل مامرو دارم در ویندوز ۷،اما آن را بر روی ویندوز ۱۰ کپی میکنم فایل اکسل کاملا هنگ میکند و از دسترس خارج میشود،چگونه ماکرو را در ویندوز ۷ به ۱۰ ارتقا دهم؟
نازنین کریمی مقدم۳۱ خرداد ۱۴۰۱، ۱۰:۴۳
درود
نباید به مشکل بخورید، احتمالا ورژن ماکروسافت اکسل تون متفاوت هست. سعی کنید همون ورژن قبلی رو نصب کنید تا بتونید فایل رو باز کنید و بعد براساس قواعد جدید ماکروها رو یه بررسی کنید.
شاید استفاده از گوگل شیت هم براتون مفید باشه اونم امتحان کنید.
۱۶ خرداد ۱۴۰۱، ۱۴:۲۹
بسیار عالی بود. ساده و کاربردی. ممنون از توضیحاتتون
۱۴ خرداد ۱۴۰۱، ۱۱:۰۳
سلام جزوه دارین در مورد کدهای اکسل بهم بدین
نازنین کریمی مقدم۱۴ خرداد ۱۴۰۱، ۱۷:۳۷
درود
چندتا کامنت پایینتر یکی دوتا منبع معرفی کردم. میتونید به اونا مراجعه کنید.
۰۷ اردیبهشت ۱۴۰۱، ۲۰:۲۹
با سلام
هر زمان که اطلاعات را از طریق میل مرج از اکسل یا اکسس به ورد انتقال میدهم اطلاعاتی مانند تاریخ برعکس انتقال داده میشوند میشود راهنمایی کنید چگونه میتوانم این کار را درست انجام دهم مثلا تاریخ ۲۵/ ۰۲/ ۱۴۰۱ را بصورت ۲۵/۰۲/۱۴۰۱ نمایش میدهد
ممنون میشم راهنمایی کنید.
نازنین کریمی مقدم۱۸ اردیبهشت ۱۴۰۱، ۰۸:۵۲
درود
میتونید بعد از انتقال، متن برعکس شده رو reverse کنید.
<a href="https://www.techonthenet.com/excel/formulas/strreverse.php#:~:text=The%20Microsoft%20Excel%20STRREVERSE%20function,function%20(VBA)%20in%20Excel." target="_blank" rel="noopener nofollow ugc">این لینک</a> رو بررسی کنید تا کد و نمونههای عملی رو بهتر متوجه بشید.
۲۹ فروردین ۱۴۰۱، ۰۴:۳۳
با سلام.امکانش هست در یک سلول به صورت عمودی چند ردیف تایپ کرد .البته تعداد زیاد
مثلا
نام:
نام خانوادگی
....
.....
نازنین کریمی مقدم۳۱ فروردین ۱۴۰۱، ۱۰:۳۶
درود
اگر منظورتون گذاشتن این امکان برای ورود داده به صورت اتومات هست میتونید <a href="https://stackoverflow.com/questions/36646764/how-to-insert-new-line-in-the-same-cell" target="_blank" rel="noopener nofollow ugc">این لینک</a> رو مطالعه کنید.
درغیر این صورت با Alt+Enter هنگام تایپ در هر سلول میتونید به خط بعدی برید.
۱۴ فروردین ۱۴۰۱، ۰۸:۵۰
با سلام
من یک فایل اکسل با تاریخهای زیاد دارم
میخوام آخرین تاریخ ثبت شده در یک فایل اکسل دیگه به صورت اتومات ثبت و آپدیت بشه
آیا کار زیادی میبره؟ خیلی کلی ممنون میشم راهنماییم کنید
نازنین کریمی مقدم۱۷ فروردین ۱۴۰۱، ۱۳:۵۴
درود
متاسفانه متوجه منظورتون نشدم. یعنی قصد دارید یه سلول رو از یک اکسل به دیگری کپی کنید؟ چرا سورت نمیکنید و بعد دستی کپی کنید؟
<a href="https://www.techrepublic.com/article/how-to-return-the-last-value-in-an-excel-column/" target="_blank" rel="noopener nofollow ugc">این لینک</a> رو هم ببینید.
۰۹ فروردین ۱۴۰۱، ۱۶:۲۴
سلام
سپاس فراوان
یه سوالی داشتم
میشه در اکسل طوری برنامه نویسی کنیم که مثلا اگر فلان خانه و فلان خانه رنگش سبز بود فلان خانه رنگش سبز شود؟
نازنین کریمی مقدم۱۰ فروردین ۱۴۰۱، ۰۹:۰۸
درود
بله امکان پذیر هست. برای این کار کافیه مراحل زیر رو طی کنید:
1. با Cell.Interior.Color رنگ دو خانه مورد نظر رو بگیرید.
2. با یک شرط بررسی کنید که آیا این دو سبز هستند یا نه.
3. اگر شرط برقرار بود خانه هدف رو سبز کنید. برای مثال کد زیر خانه A1 رو آبی میکنه:
Range("A1").Interior.ColorIndex = 37
۲۸ دی ۱۴۰۰، ۱۳:۱۵
سلام، چطور فونت فارسی به ویژوال بیسیک اضافه کنم،
نازنین کریمی مقدم۲۹ دی ۱۴۰۰، ۱۰:۱۷
سلام
اول فونت فرم رو یک فونت فارسی مثل Tahoma انتخاب کنید و چک کنید که در پنجره properties خاصیت فونت اسکریپنش عربی باشه. همچنین سیستمتون باید از زبانهای راست به چپ و یونیکدها ساپورت کنه. پس دقت کنید که ریجن سیستم تون و تنظیماتش منطبق با فارسی باشه و یدور سیستم رو ریست کنید.
بعد اگر همچنان جملات براتون درست نمایش نمیشه، از منوی بالایی Tools - گزينه Options - برگه Editor Format - قسمت Font: فونت رو به Courier new (Arabic) تغيير بدید و ok رو بزنید که سیو بشه. بعد برای اطمینان یدور ادیتور رو ببندید و باز کنید تا تغییرات اعمال بشه.
رقیه۱۸ آبان ۱۴۰۰، ۲۳:۱۰
اموزش مفید و کاربردیی بود، سپاس فراوان، کاش منابع اموزشی کاملترشو معرفی میکردین، ممنون
Nazanin KarimiMoghaddam۱۹ آبان ۱۴۰۰، ۰۶:۵۷
درود
بنظرم سایت<a href="https://www.guru99.com/vba-tutorial.html" target="_blank" rel="noopener nofollow ugc"> guru</a> و همچنین <a href="https://www.tutorialspoint.com/vba/index.htm" target="_blank" rel="noopener nofollow ugc">tutorialspoint </a>رو پیشنهاد میکنم.
لیلا افتخاری۲۸ مهر ۱۴۰۰، ۰۵:۵۴
خیلی خوب بود حتما ادامه میدم
نازنین کریمی مقدم۲۸ مهر ۱۴۰۰، ۰۹:۵۲
ممنون که با ما همراه هستید :)
Am101ar۰۵ اردیبهشت ۱۴۰۰، ۰۱:۴۰
سلام ممنون بابت اموزش vba بسیار کاربردی و عالی بود
فقط یه سوال ایا امکانش هست تو اکسل کلیدی نوشته بشه که چنتا از سلولها رو باهم پاک کنه یا به جای محتویات همشون عدد خاصی بزاره؟
مثلا وقتی رو اون کلید کلیک میکنیم سلولهای مدنظر خالی بشن
نازنین کریمی مقدم۰۵ اردیبهشت ۱۴۰۰، ۲۳:۲۴
درود.
بله این کار با یک شرط به راحتی قابل انجام هست. برای مثال برای پاک کردن یک سلول میتونید <a href="https://www.automateexcel.com/vba/clearcontents-clear" target="_blank" rel="noopener nofollow ugc">این لینک</a> رو مطالعه کنید.
فهیمه۲۸ بهمن ۱۳۹۹، ۱۶:۲۵
خیلی عالی بود، ممنون.
علیرضا۰۲ بهمن ۱۳۹۹، ۱۹:۱۳
تشکر از شما بابت آموزش vba برای شروع کارهای بزرگ تر
علی۲۴ دی ۱۳۹۹، ۰۶:۴۱
با سلام و تشکر
سوالی داشتم
یک برنامه مالی روی اکسل نوشته شده. جمع برخی از ستونها رو اعلام نمیکنه در صورتی که دستور آن کاملا شبیه ستون کناری آن است (با تفاوت شماره ستون و ردیف)
نازنین کریمی مقدم۲۷ دی ۱۳۹۹، ۱۱:۰۷
سلام.
احتمالا برنامه تون از حلقه برای جمع ستونها و ردیفها استفاده کردید و شماره ردیف و ستون تون در برخی جاها در حلقه پوشش داده نمیشه. برای مثال ممکنه گفته باشید از ردیف 1 تا 12 رو جمع بزن اما چیزی کد روش اجرا میشه، از 0 شروع میشه.
چون خیلی منشا خطا مشخص نیست، توصیه میکنم از روشهای دیباگ برنامه VBA استفاده کنید. ما مقاله ای رو در مورد این روشها در تقویم کاری داریم اما اگر نیاز فوری دارید، در اینترنت سرچ بزنید آموزش فارسی پیدا میکنید.
zahra۲۳ مهر ۱۳۹۹، ۱۵:۴۹
سلام
ممنونم خیلی خوب بود
فقط بمن میگفت کامپایل ارور؟!!!!
بعدم اینکه موقع نوشتن کد فارسی قبول نمیکرد!!!
چکنم؟
ممنون