Select و Activate در ویژوال بیسیک

در کدنویسی ویژوال بیسیک در بسیاری موارد پیش می آید که برنامه نویس فایل اکسلی با چند شیت دارد که میخواهد در هریک از این شیت ها عملیات بخصوصی انجام دهد، و یا ممکن است چند فایل اکسل به صورت همزمان برای انجام عملیات خاصی مورد استفاده قرار گیرند، در اینجا باید برنامه نویس از کدهای خاصی استفاده نماید که مشخص شود کدهای دستوری نوشته شده در کدام فایل اکسل (Workbook) و یا کدام شیت (Worksheet) اجرا شوند، برای این کار از متدهای Select و Activate و از پروپرتی Selection استفاده مینماییم.

ویژوال بیسیک

متد Select و پروپرتی Selection

با استفاده از متد Select (Select Method) میتوان اشیا و شیت ها را فعال کرد، از طرفی پروپرتی Selection (Selection Property) اشیا یا شیت های فعال شده را مورد اشاره قرار میدهد. پیش از آنکه بتوانید از پروپرتی Selection استفاده نمایید باید یک Workbook یا Worksheet را Activate کرده و بعد یک Worksheet، Range و یا شی را Select نمایید، یعنی در هر صورت حتماً قبل از استفاده از Selection باید از متد Select استفاده کنید.

در کدهای زیر با نحوه ی کاربرد و برخی از کاربردهای Select، Selection و Activate آشنا میشویم.

کدهای زیر همان کارهای بالا را بدون استفاده از Select و Activate انجام میدهند.

 اگر شما از Select برای انتخاب یک سلول استفاده نمایید، بدانید سلول های موجود در شیت فعال انتخاب میشوند، نکته ی مهم اینجاست که اگر شما اجرای برنامه را از محیط ویژوال بیسیک شروع نمایید، در واقع هیچ شیت فعالی وجود ندارد، پس اجرای برنامه پس از Select یک سلول به دلیل عدم وجود شیت فعال متوقف میشود.

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

Select & Activate

 متد Activate

میتوانیم از متد Activate برای Activate کردن یک سلول قرار گرفته در یک محدوه ی Select شده انتخاب کرد، حتی اگر یک محدوده شامل چندین سلول Select شده باشد، تنها یک سلول Activate میگردد. در کدهای زیر یک محدوده Select شده است و بدون تغییر Selection یک سلول Activate میگردد.

 ActiveCell در ویژوال بیسیک

پروپرتی ActiveCell یک شی Range (شامل یک سلول، اگر یک محدوده فعال باشد-در حالت انتخاب باشد-تنها سلول اول آن محدوده Activate میشود) را که نماینده سلول های فعال (انتخاب شده) میباشد را برمیگرداند. در این حالت شما میتوانید تمام Property ها و Method های قابل استفاده برای Range ها را برای ActiveCell به کار ببرید.

به خاطر داشته باشید تنها هنگامی میتوانیم از Active Cell استفاده نماییم که شیت در برگیرنده ی آن Activate باشد.

با استفاده از متد Activate میتوانید Active Cell را مشخص نمایید و عملیات دلخواه را بر روی انها انجام دهید، کدهای زیر نمونه ای از این کار را نماش میدهند. در کدهای زیر فونت سلول B5 به صورت Bold در میاید.

 متد Active Cell تنها برای انتخاب یک سلول به کار میرود در صورتی که نیاز به انجام عملیات بر روی یک محدوده از سلول ها را دارید میتوانید از متد Select استفاده نمایید.

Active Cell

برای جابجایی Active Cell میتوانید از پروپرتی Offset استفاده نماییم، فرض کنید میخواهید بر یک سلول بخصوص که شرایط خاصی دارد (در مثال زیر اگر مقدار آن بزرگتر از ۵۰ باشد) عملیاتی انجام دهید، مثلاً فونت سلولی که مقدار آن بزرگتر از صفر است را Bold کنید و در سلول کناری آن علامتی قرار دهید که پیدا کردن آ سلول را برای کاربران راحت تر نماید، میتوانید از کدی مشابه کد زیر استفاده نمایید.

در کدهای بالا ابتدا سلولهای C1:C100 انتخاب شده اند و در آنها عدد رندومی بین ۱ تا ۱۰۰ قرار داده شده است، بعد از آن سلول هایی که در آنها عدد بیشتر از ۵۵ قرار دارد را نتخاب نموده ایم و فونت آن سلول را Bold کرده ایم و در سلول مجاور آن عبارت ExcelPro.ir را نوشته ایم.

Current Region در ویژوال بیسیک

از Current Region میتوان برای Activate کردن سلول اول از محدوده ی انتخاب شده در یک شیت همانند کد زیر استفاده نمود، لازم به ذکر است کلاً در صورتی که از Activate استفاده نماییم تنها یک سلول انتخاب میشود و برای انتخاب همزمان چند سلول باید از Select استفاده نماییم.

Current Region

 استفاده از پروپرتی Area

از پروپرتی Areas میتوانید برای اشاره به یک محدوده ی انتخاب شده (مثلاً A1:C2) و یا چند محدوده ی انتخاب شده (مثلاً A1:C2 و C5:E8) استفاده نمود.

در کل Areas به هر محدوده از اکسل که در حالت انتخاب وجود دارد اطلاق میشود، محدوده ی انتخاب شده میتواند یک سلول و یا چند سلول باشد.

کد زیر تعداد محدوده های انتخاب شده را گزارش میدهد.

فرض کنید در خلال کدهای خود احتیاج دارید که کاربر یک محدوده را برای ادامه ی کار مشخص نماید، در صورتی که کاربر تعداد بیش از یک محدوده را همزمان انتخاب کند ادامه برنامه مختخل خواهد شد، برای جلوگیری از این کار میتوانید به طریق زیر با استفاده از پروپرتی Areas از ایجاد خطا در کدهای ویژوال بیسیک خود جلوگیری کنید.

اشتراک گذاری در شبکه های اجتماعی: share on facebook share on google plus share on linkedin

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