متغیر شی (object variable) در برنامه نویسی vba
3 دقیقه
زمان مطالعه
0 رای
۷
بازدید
۱۳۹۸/۵/۱۶
تاریخ انتشار
در مطلب مربوط به نحوه استفاده از متغیرها در ماکرونویسی، اشیاء به عنوان نوعی از متغیر در نظر گرفته شدند. با این وجود که این نوع دسته بندی کاملاً قابل قبول است، اما در این مطلب ما متغیرهای اشیاء را با جزئیات بیشتری مورد بررسی قرار خواهیم داد.
اگر مطلب مربوط به مفهوم کدنویسی در برنامه نویسی VBA را به خاطر داشته باشید، در آنجا عنوان کردیم که اشیا در دسته های مختلف قرار می گیرند، صفحه های کاری، سلولها ، نمودارهاو … همگی جزء اشیاء هستند. در VBA، این امکان وجود دارد که یک شی به عنوان یک متغیر شناخته شود.
همچنین میتوان یک قدم جلوتر رفت و یک شی متغیر(object variable) را تعریف کرد. به عنوان مثال، کد زیر یک شی متغیر ورک شیت به نام wksheet ایجاد کرده است.
هر دو کد بالا قابل قبول هستند و بدون خطا اجرا خواهند شد. یک متغیر که به عنوان شی(object) تعریف شده است میتواند تمام انواع اشیاء را در برگیرد. اما زمانی که یک متغیر را بعنوان نوعی خاص از اشیاء تعریف میکنیم، آن متغیر صرفا میتواند همان نوع از متغیر را دربرگیرد. برای مثال زمانی که یک متغیر را از نوع worksheet تعریف میکنیم، آن متغیر به صورت خاص میتواند فقط مقدار ورک شیت را بپذیرد.
اشیاء همیشه می بایست تنظیم(set) شوند!
بعد از تعریف یک متغیر شی(object variable) بعضی چیزها میتوانند در درون آن قرار گیرند. . به طور معمول برای اختصاص دادن مقادیر به متغیرها از نماد مساوی(=) استفاده میشود.
اما این کار بر روی اشیاء عمل نمیکند و منجر به یک پیغام خطا میشود.

اشیاء باید تنظیم(Set) شوند. برای انجام این کار کلمه “set” قبل از نام متغیر ظاهر میشود.
حال مبتوانبد در زمان کدنویسی به سادگی و صرفا با استفاده از wksheet به برگه فعال (ActiveWorksheet) اشاره کنید. ممکن است در اینجا به دلیل پایین بودن حجم کار صرفه جویی در زمان ناشی از این تغییرات را متوجه نشوید ولی زمانی که کدهای سنگین مینویسید و به صورت حرفه ای در اکسل ماکرونویسی میکنید، به میزان زیادی در زمانتان صرفه جویی میشود و این موضوع به روشنی قابل درک است. به عنوان مثال، وقتی به طور مداوم به یک سلول خاص مراجعه میکنیم، برای اینکه هر دفعه کد زیر را بنویسید، زمان زیادی از شما خواهد گرفت.
به جای آن، میتوانید یک متغیر شیء محدوده(range) ایجاد کنید.
حالا، هر بار که مقدار سلول مورد نیاز است، کد میتوان به سادگی زیر باشد:
متغیر شی های رایج در کدنویسی وی بی ای
هر شیء میتواند به عنوان یک متغیر شیء استفاده شود، اما انواع متداول آنها برای کسانی که به تازگی کدنویسی وی بی ای را آغاز کرده اند عبارتند از:
Workbook: هر ورک بوک اکسلی که در حال حاضر باز باشد:
Worksheets: هر برگه کاری (Worksheet) داخل یک workbook
Range: هر محدوه ای از سلولها در یک ورک شیت
'اختصاص محدوده ای از سلول ها به یک متغیر Dim rng As Range Set rng = Workbooks(1).Sheets(2).Range("B2")
یادگیری بیشتر VBA:
پنجره کدنویسی وی بی ای اکسل | شروع برنامه نویسی VBA
آموزش رایگان ماکرونویسی در اکسل و برنامه نویسی VBA
ضبط ماکرو در برنامه نویسی وی بی ای (VBA) اکسل
این محتوا چطور بود؟
نظر شما بهبود محتوا کمک میکند

امیر دائی
500k دنبالکنندهاز بچگی عاشق برنامه نویسی بودم