موضوعات وبسایت : برنامه نویسی
سوالات امتحان آیین نامه رانندگی

جستجو در اکسل با کد نویسی

جستجو در اکسل با کد نویسی

نویسنده : محمد پارسایی | زمان انتشار : 21 دی 1400 ساعت 11:18

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



در این پست یک مطلب با عنوان جستجو در اکسل با کد نویسی را مطالعه خواهید کرد.

موتورهای جستجو (Search Engine) در اینترنت (مانند گوگل و یاهو) با نشان دادن یک کادر جستجو (Search Box) به کاربر اجازه می‌دهند، موضوع مورد علاقه‌اش را ثبت کرده و در محیط اینترنت جستجو کند. معمولا نتیجه این کاوش، طی یک لیست از سایت‌های مورد نظر، ظاهر می‌شود. مشخص است به علت وجود انبوه اطلاعات و سایت‌ها، بررسی همه آن‌ها به صورت تک تک توسط کاربر امکان‌پذیر نیست و این مسئله، فلسفه وجودی موتورهای جستجو را نشان می‌دهد. حال فرض کنید در یک صفحه گسترده مثل اکسل، داده‌های زیادی براساس اقلام مختلف وجود دارد. برای مثال یک انبار را در نظر بگیرید که تمامی اقلام ذخیره شده در آن، در یک جدول اکسل (Spread Sheet) ثبت شده‌اند. قرار است به کمک یک کادر جستجو، عملیات پیدا کردن یک قلم خاص یا یک گروه محصول را انجام دهیم. طولانی بودن این لیست، باعث می‌شود که نتوانیم از روش‌های معمول جستجو چشمی برای کاوش در جدول استفاده کنیم. بنابراین برای حل چنین مشکلی در این متن به موضوع جستجو در اکسل با کد نویسی VBA پرداخته‌ایم تا به کمک آن بتوانید در انبوه اطلاعاتی که در کاربرگ اکسل ذخیره کرد‌ه‌اید، به راحتی جستجو کنید.

سوالات امتحان آیین نامه رانندگی

برای آشنایی بیشتر با نحوه کد نویسی به زبان VBA، نوشتارهای برنامه نویسی VBA در اکسل و ماکروهای VBA در اکسل — یک راهنمای مقدماتی و بیان اهمیت آن‌ها را مطالعه کنید. همچنین خواندن نوشتار ۴ اشتباه رایج در هنگام نوشتن ماکروها در اکسل و توابع INDEX و MATCH در اکسل برای جست‌وجوی سریعتر نیز خالی از لطف نیست.

جستجو در اکسل با کد نویسی VBA

اگر از یک ساختار پایگاه داده (DataBase) برای ثبت اطلاعات در اکسل استفاده کنید، جستجوی مقدار دلخواه در یک ستون، به کمک فیلتر (Filter) میسر می‌شود. ولی مشکل این است که اگر بخواهیم جستجو را از یک ستون به ستون دیگر ببریم، باید فیلتر را برای آن ستون فعال کرده و با استفاده از شرایط یا مشخص کردن مقدار مورد نظر در فیلتر، سطرهایی که با شرط گفته شده مطابقت دارند را ظاهر سازیم. البته شاید استفاده از ابزار جستجو (Find) که در اکثر برنامه‌های کاربردی ویندوز گنجانده شده نیز راه‌کار دیگری باشد. ولی متاسفانه استفاده از Find برای پایگاه‌های داده مناسب نیست و ممکن است ناحیه جستجو به کل کاربرگ گسترش یافته و حتی نتیجه را در ستون‌های دیگر کاربرگ نمایش دهد. مشخص است که جستجو در پایگاه داده باید در یک ستون (Field) مشخص صورت گرفته و رکوردهای (Record) متناسب با آن، ظاهر شوند.

در این متن می‌خواهیم به کمک زبان VBA و استفاده از اجزا یا کنترل‌های فرم (From Controls)، یک فرم جستجو در اکسل با کد نویسی ایجاد کنیم. به تصویر ۱ دقت کنید. قرار است از این فرم برای جستجو اطلاعات برحسب ستون‌های Car, Price, Color و Year استفاده شود.

تصویر ۱: کادر جستجو در اکسل با کد نویسی

فرض بر این است که کاربرگی داریم که شامل ستون‌هایی با اسامی گفته شده است و چندین سطر از کاربرگ، مربوط به مقادیر این ستون‌ها است. از آنجایی که جستجو در بین آن‌ها کار سختی است، در کد نویسی، فیلتر را برای ستون‌های مورد نظر فعال کرده و مقداری که در کادر جستجو (SearchBox) وارد کرده‌ایم را توسط فیلتر به کار می‌گیریم. واضح است که به این ترتیب، فقط سطرهایی از کاربرگ ظاهر خواهند شد که با شرط گفته شده مطابقت داشته باشند. ابتدا طراحی فرم جستجو را با ابزارهای توسعه Developer اکسل توضیح داده، سپس شیوه جستجو براساس ستون‌های متنی و عددی را بوسیله کدها VBA مشخص می‌کنیم.

طراحی فرم جستجو

رابط کاربری (User Interface) که گاهی UI‌ نیز نامیده می‌شود، برای فرم جستجو می‌تواند به شکل دلخواه طراحی شود ولی شاید بهتر باشد که تصویر ۱ را الگو قرار داده و مطابق با آن فرم جستجو را طراحی کنیم. به این منظور باید از یک کادر متنی (Text Box)، یک دکمه (Bottom) و گزینه‌های انتخابی (Options Bottom) استفاده کنیم. در ادامه نحوه ظاهر کردن هر یک از این گزینه‌ها را در کاربرگ اکسل بازگو خواهیم کرد.

بخشی از اکسل که برای طراحی فرم‌های ورود، گزارش و چاپ کاربرگ‌ها وجود دارد از چشم کاربران تازه‌کار مخفی شده است. برگه Developer معمولا به طور پیش‌فرض، هنگام کار با اکسل دیده نمی‌شود، مگر آنکه آن را احضار کنید.

برای ظاهر کردن برگه Developer از فهرست File گزینه Options را انتخاب کرده و از پنجره ظاهر شده، بخش Customize Ribbon را فعال کرده و از بین اسامی برگه‌های موجود، برگه Developer را فعال کنید. با فشردن دکمه OK، این برگه در لیست برگه‌های اکسل ظاهر خواهد شد.

تصویر 2: ظاهر سازی برگه Developer در اکسل

به این ترتیب بوسیله گام‌های زیر، رابط کاربر برای جستجو را توسط گزینه‌های این برگه را خواهیم ساخت.

  1. برگه یا نوار Developer را از قسمت برگه‌های اکسل فعال کنید.
  2. روی دکمه کشویی Inset کلیک کرده و گروه کنترل‌های فرم (Form Control) را پیدا کنید.
  3. گزینه Option Button را از این قسمت انتخاب کنید (ردیف اول، آخرین نماد).
  4. با استفاده از ماوس که به صورت + درآمده است، یک کادر ترسیم کنید تا دکمه Option ترسیم شود.
  5. ترسیم Option Button‌ها را تا جایی که همه دکمه‌ها مطابق با تصویر ۱ ایجاد شوند، تکرار کنید.

برای ایجاد یک مکان برای درج متن مورد جستجو، از یک Textbox استفاده کنید. این کار را هم به وسیله گامی‌های زیر اجرا نمایید.

  1. از برگه Insert قسمت Text گزینه Textbox را انتخاب و یک کادر توسط آن ترسیم کنید.
  2. از آنجایی که کاربرگ دارای مقادیر لاتین است، تراز متن داخلی را چپ (Left Align) کرده و زمینه آن را سفید انتخاب کنید.
  3. کادر اطراف Textbox را به کمک قالب‌بندی، به رنگ خاکستری درآورد.

از طرفی احتیاج به یک دکمه Search نیز داریم. این دکمه را هم به وسیله ابزارهای ترسیمی اکسل ایجاد کرده و بعد کدهای VBA را به آن نسبت می‌دهیم. به این ترتیب مراحل زیر را طی خواهیم کرد.

  1. از برگه Insert و بخش Illustrations، گزینه Shapes را فعال کنید.
  2. یک مستطیل با حاشیه‌های گرد (Rectangle: Rounded Corners) ترسیم کنید.
  3. با کلیک راست روی آن، فهرست دستورات را ظاهر کرده و گزینه Edit Text را انتخاب کنید.
  4. تراز متن را وسط قرار داده و عبارت Search را به صورت توپُر (Bold) داخل آن تنظیم کنید.
  5. زمینه را به رنگ خاکستری (استاندارد برای دکمه‌های ویندوز) درآورید.

البته می‌توانید برای زیبایی بیشتر، از رنگ‌ها، سایه و قالب‌های متقاوت برای اشکال ترسیمی (Drawing Objects) نیز استفاده کنید.

به این ترتیب سطرهای ابتدایی کاربرگ را به شکلی که در تصویر ۱ دیده شد، درآوردیم. فرض کنید که سطرهای اطلاعاتی در کاربرگ نیز بعد از این رابط کاربر یعنی سطرهای چهارم به بعد، قرار گرفته‌اند.

نکته: به جای استفاده از یک کادر متنی (Textbox) می‌توانید از یک سلول یا ActiveX Textbox استفاده کرده و کدها را به آن‌ها نسبت دهید. همچنین به جای کلیک روی دکمه Search نیز می‌توانید از یک کلید میانبر (Shortcut Key) بهره ببرید تا به محض استفاده از آن‌ها، عمل جستجو صورت گیرد. این موارد را در ادامه بررسی خواهیم کرد.

تصویر ۳: دسترسی به کنترل فرم (Control Form Objects)

کلید اصلی برای اجرای جستجو در اکسل با کد نویسی VBA، استفاده از خصوصیات اجزای فرم است. به منظور دسترسی به اجزای فرم، بهتر است ابتدا آن‌ها را نام‌گذاری کنیم.

برای نام‌گذاری کادر نام که برای متن مورد جستجو انتخاب کردید، ابتدا آن را انتخاب کرده و در کادر نام (Name Box) که در کنار نوار فرمول (Formula Bar) قرار دارد، اسمی برایش وارد کنید. از آنجایی که این کادر اولین Textbox رسم شده در کاربرگ است، نام آن به طور پیش‌فرض TextBox1 انتخاب شده است ولی ما این نام را تغییر خواهیم داد.

بهتر است که بین بخش‌های نام، هیچ فاصله‌ای به کار نبرید. برای مثال در تصویر 4، ما کادر مربوط به عبارت جستجو را UserSearch نام‌گذاری کرده‌ایم.

تصویر ۴: نامگذاری کادر جستجو در اکسل با کد نویسی

نکته: توجه داشته باشید که اسامی ایجاد شده برای هر یک از اشیاء فرم UI، در ادامه در کدهای VBA به کار خواهند رفت. بنابراین اسمی را به یاد داشته و به شکلی که در کدهای نوشته شده، نام‌گذاری را انجام دهید. در غیر اینصورت عملیات جستجو در اکسل با کد نویسی صورت نخواهند گرفت.

جستجو در اکسل با کد نویسی برای متن

کدهایی که در ادامه ظاهر شده‌اند به منظور فیلتر کردن ستون دلخواه و استفاده از مقدار مورد جستجو در کادر UserSearch به کار می‌روند. در بعضی از قسمت‌ها، کدهایی که برای اشیاء ActiveX آماده شده‌ نیز دیده می‌شود که البته از حالت اجرا خارج شده‌اند. در انتهای این دستورات عبارت ActiveX Control دیده می‌شود. همچنین در صورتی که از یک سلول برای مشخص کردن کادر جستجو بهره برده‌اید، از دستوراتی که در انتهای آن‌ها عبارت Cell Input دیده می‌شود، استفاده کرده و کدهای مربوط به دو وضعیت دیگر را غیرفعال کنید.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

SubSearchBox()

'PURPOSE: Filter Data on User-Determined Column & Text

'SOURCE: www.TheSpreadsheetGuru.com

DimmyButton AsOptionButton

DimMyVal AsLong

DimButtonName AsString

Dimsht AsWorksheet

DimmyField AsLong

DimDataRange AsRange

DimmySearch AsVariant

'Load Sheet into A Variable

  Setsht=ActiveSheet

'Unfilter Data (if necessary)

  On ErrorResumeNext

    sht.ShowAllData

  On ErrorGoTo0

'Filtered Data Range (include column heading cells)

  SetDataRange=sht.Range("A4:E31")'Cell Range

  'Set DataRange = sht.ListObjects("Table1").Range 'Table

'Retrieve User's Search Input

  mySearch=sht.Shapes("UserSearch").TextFrame.Characters.Text'Control Form

  'mySearch = sht.OLEObjects("UserSearch").Object.Text 'ActiveX Control

  'mySearch = sht.Range("A1").Value 'Cell Input

'Loop Through Option Buttons

  ForEachmyButton InActiveSheet.OptionButtons

      IfmyButton.Value=1Then

        ButtonName=myButton.Text

        ExitFor

      EndIf

  NextmyButton

'Determine Filter Field

  On ErrorGoToHeadingNotFound

    myField=Application.WorksheetFunction.Match(ButtonName,DataRange.Rows(1),0)

  On ErrorGoTo0

'Filter Data

  DataRange.AutoFilter_

    Field:=myField,_

    Criteria1:="=*"&mySearch&"*",_

    Operator:=xlAnd

'Clear Search Field

  sht.Shapes("UserSearch").TextFrame.Characters.Text=""'Control Form

  'sht.OLEObjects("UserSearch").Object.Text = "" 'ActiveX Control

  'sht.Range("A1").Value = "" 'Cell Input

ExitSub

'ERROR HANDLERS

HeadingNotFound:

  MsgBox"The column heading ["&ButtonName&"] was not found in cells "&DataRange.Rows(1).Address&". "&_

    vbNewLine&"Please check for possible typos.",vbCritical,"Header Name Not Found!"

EndSub

در بخش‌های ابتدایی کد VBA، دستوراتی را مشاهده می‌کنید که برای معرفی متغیرها و ساختار برنامه لازم است. فرض بر این است که ناحیه مورد جستجو، سلول‌های A4:E31 هستند. این قسمت از کاربرگ را می‌توانید به نام Table1 نام‌گذاری کرده و دستور زیر را در کد فعال نمایید.

SetDataRange=sht.ListObjects("Table1").Range

به اسامی اشیاء فرم که در کد به کار رفته‌اند دقت کنید. برای مثال انتخاب‌های دایره‌ای با نام OptionButtons مشخص شده‌اند. همانطور که می‌بینید، اسامی اشیاء مربوط به فرم جستجو که در کد به کار رفته‌اند، مطابق جدول زیر است.

جدول ۱: اسامی متغیرها و نقش آن‌ها در برنامه

نام شینقشتوضیحات
MyButtonOptionButtonانتخاب ستون‌های جستجو
MyValمتغیر عددی
ButtonNameمتغیر متنی
shtاز نوع کاربرگبرای ارجاع به کاربرگ فعال
myFieldمتغیر عددیشماره ستون مورد جستجو
DataRangeناحیه مورد جستجو
mySearchعبارت متنی یا عددی

نکته اساسی در این کد، دستور زیر است.

  Criteria1:="=*"&mySearch&"*",_

همانطور که می‌بینید از «فرانویسه» (Wildcard) یا علامت‌ جایگزین * استفاده شده است تا نتیجه جستجو شامل تمامی عبارت‌هایی باشند که متن ثبت شده در متغیر UserSearch در آن دیده می‌شود. برای مثال اگر Color را انتخاب کرده و متن whi را در کادر Search وارد کرده و جستجو را براساس آن انجام دهیم، تمامی سطرهایی که شامل عبارت Whi هستند، مانند white یا mean while ظاهر خواهند شد.

نکته: اگر می‌خواهید فیلتر و جستجو، دقیقا منطبق بر متنی مورد جستجو باشد، دو علامت جایگزین «*» را از ابتدا و انتهای بخش کد بالا خارج کنید.

در بخش انتهایی نیز مدیریت خطاها و پیغام‌هایی که درصورت رخ دادن خطا باید ظاهر شوند، قرار گرفته‌اند. نتیجه نسبت دادن این کد به دکمه Search به مانند تصویر 5 خواهد بود. البته نحوه نسبت دادن کد به هر یک از اشیاء فرم جستجو را در انتها مشخص خواهیم کرد.

تصویر ۵: فرم جستجو در اکسل با کد نویسی برای مقادیر متنی

جستجو در اکسل با کد نویسی برای متن و عدد

این بار می‌خواهیم کاری کنیم که جستجو شامل مقادیر عددی نیز باشد. به این منظور، دستورات و قسمت‌هایی به کد قبلی اضافه شده تا مدیریت مقادیر عددی نیز به همراه متن، صورت گیرد. همانطور که در تصویر ۶ مشاهده می‌کنید، ستون‌های عددی مانند ستون‌های Price و Year نیز روی فرم جستجو توسط OptionButton اضافه شده‌‌اند.

تصویر 6: فرم جستجو در اکسل با کد نویسی برای ستون‌های متنی و عددی

کدی که در زیر مشاهده می‌کنید، بین محتویات عددی و متنی تفاوت قائل شده است. البته ناحیه‌ای که برای جستجو انتخاب شده، مانند قسمت قبل است. ولی از آنجایی که مقادیر عددی، به طور دقیق باید جستجو شوند، کد مربوط به جستجوی آن‌ها با عملگر شرطی If جدا شده است.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

SubSearchBox()

'PURPOSE: Filter Data on User-Determined Column & Text/Numerical value

'SOURCE: www.TheSpreadsheetGuru.com

DimmyButton AsOptionButton

DimSearchString AsString

DimButtonName AsString

Dimsht AsWorksheet

DimmyField AsLong

DimDataRange AsRange

DimmySearch AsVariant

'Load Sheet into A Variable

  Setsht=ActiveSheet

'Unfilter Data (if necessary)

  On ErrorResumeNext

    sht.ShowAllData

  On ErrorGoTo0

'Filtered Data Range (include column heading cells)

  SetDataRange=sht.Range("A4:E31")'Cell Range

  'Set DataRange = sht.ListObjects("Table1").Range 'Table

'Retrieve User's Search Input

  mySearch=sht.Shapes("UserSearch").TextFrame.Characters.Text'Control Form

  'mySearch = sht.OLEObjects("UserSearch").Object.Text 'ActiveX Control

  'mySearch = sht.Range("A1").Value 'Cell Input

'Determine if user is searching for number or text

  IfIsNumeric(mySearch)=TrueThen

    SearchString="="&mySearch

  Else

    SearchString="=*"&mySearch&"*"

  EndIf

'Loop Through Option Buttons

  ForEachmyButton Insht.OptionButtons

    IfmyButton.Value=1Then

      ButtonName=myButton.Text

      ExitFor

    EndIf

  NextmyButton

'Determine Filter Field

  On ErrorGoToHeadingNotFound

    myField=Application.WorksheetFunction.Match(ButtonName,DataRange.Rows(1),0)

  On ErrorGoTo0

'Filter Data

  DataRange.AutoFilter_

    Field:=myField,_

    Criteria1:=SearchString,_

    Operator:=xlAnd

'Clear Search Field

  sht.Shapes("UserSearch").TextFrame.Characters.Text=""'Control Form

  'sht.OLEObjects("UserSearch").Object.Text = "" 'ActiveX Control

  'sht.Range("A1").Value = "" 'Cell Input

ExitSub

'ERROR HANDLERS

HeadingNotFound:

  MsgBox"The column heading ["&ButtonName&"] was not found in cells "&DataRange.Rows(1).Address&". "&_

    vbNewLine&"Please check for possible typos.",vbCritical,"Header Name Not Found!"

EndSub

به این قسمت از کد توجه کنید.

IfIsNumeric(mySearch)=TrueThen

SearchString="="&mySearch

Else

SearchString="=*"&mySearch&"*"

EndIf

واضح است که در صورت عددی بودن عبارت مورد جستجو در فیلد مربوطه، یک مقایسه ریاضیاتی ( = ) صورت می‌گیرد. ولی در حالتی که عبارت متنی باشد، مقایسه شامل علامت‌ جایگزین * در ابتدا و انتهای متن مورد جستجو، خواهد بود. پس از انجام جستجو، مقدار مورد جستجو از کادر SearchBox پاک شده و برای ورودی‌های بعدی آماده می‌شود. این بخش از کد را برای تاکید، دوباره در زیر نمایش داده‌ایم.

'Clear Search Field

  sht.Shapes("UserSearch").TextFrame.Characters.Text=""'Control Form

  'sht.OLEObjects("UserSearch").Object.Text = "" 'ActiveX Control

  'sht.Range("A1").Value = "" 'Cell Input

سطر اول، به منظور یادداشت و معرفی این بخش نوشته شده است. ولی سطر دوم مربوط به کنترل فرم یا شکل ترسیمی (UserSearch) است که از نوع TextFrame یا همان کادر متنی است که در ابتدای متن نحوه ایجاد آن را در فرم جستجو مورد بررسی قرار دادیم. سطر سوم که به صورت غیرفعال درآمده، زمانی به کار می‌رود که به جای سطر دوم و براساس شئی ActiveX کد را اجرا نماییم. سطر چهارم نیز براساس محتویات سلول A1، عملیات را انجام می‌دهد. البته این بخش هم به صورت غیراجرایی در آمده است تا بعدا در صورت لزوم قابل استفاده باشند.

نکته: در صورتی که از Control Form استفاده می‌کنید، تمامی بخش‌ هایی که در انتهای فرمان با عبارت Control Form مشخص شده‌اند را به صورت اجرایی درآورید. اگر از کنترل‌های ActiveX در طراحی فرم استفاده کرده‌اید، بخشی از دستورات که در انتهای آن‌ها عبارت ActiveX Control دیده می‌شود را فعال نمایید. اگر از سلول برای مشخص کردن عبارت جستجو بهره برده‌اید، قسمت‌های مربوط به Cell Input را در کد به صورت اجرایی مشخص کنید. برای غیراجرایی کردن هر دستور (Comment)، در ابتدای خط فرمان، یک علامت ‘ گذاشته و برای فعال سازی، این علامت را بردارید.

همانطور که در کد زیر مشاهده می‌کنید، عملی که توسط این دکمه اجرا می‌شود، قرار دادن عبارت خالی (NULL) یا “” در کادر جستجو (SearchBox) است. توجه داشته باشید، اگر می‌خواهید فیلتر برداشته شده و همه رکوردها، قابل مشاهده باشند، از دکمه Clear استفاده کنید. کدهای مربوط به این دکمه در بخش بعدی معرفی می‌شوند.

برداشتن فیلتر از جدول

دکمه Clear که در فرم قرار گرفته، به منظور پاک کردن عبارت جستجو و نمایش همه رکوردهای جدول ایجاد شده است. بنابراین پس از انجام جستجو، اگر می‌خواهید همه اطلاعات را مشاهده و فیلتر را غیر فعال نمایید، روی این دکمه کلیک کنید. کد مربوط به این دکمه در ادامه قابل مشاهده است. مشخص است که عبارت ShowAllData نکته کلیدی برای این قسمت از برنامه است.

SubClearFilter()

'PURPOSE: Clear all filter rules

'Clear filters on ActiveSheet

  On ErrorResumeNext

    ActiveSheet.ShowAllData

  On ErrorGoTo0

EndSub

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

نسبت دادن دستورات نوشته شده به هر یک از اشیاء در فرم، یک مرحله مهم برای ایجاد فرم جستجو در اکسل با کد نویسی محسوب می‌شود. در تصویر زیر، مراحل مربوط به انجام این کار را مشاهده می‌کنید.

تصویر 7: انتصاب ماکرو به یک دکمه برای اجرا

همانطور که در تصویر ۷ قابل مشاهده است، مراحل نسبت دادن هر قطعه کد به دکمه‌ها در فرم جستجو در اکسل با کد نویسی VBA به صورت زیر هستند.

  • گام اول: قسمت مربوطه در فرم را انتخاب کرده و فهرست کلیک راست را ظاهر می‌کنیم.
  • گام دوم: دستور Assign Macro را از فهرست مورد نظر انتخاب نمایید.
  • گام سوم: در داخل کادر Macros in، گزینه This Workbook را انتخاب کرده تا لیست برنامه‌های موجود در این کارپوشه در کادر بالایی ظاهر شود.
  • گام چهارم: از کادر Macro name نام ماکرو یا برنامه VBA که ذخیره کرده‌اید را انتخاب کنید.
  • گام پنجم: با فشردن دکمه OK‌، عمل انتصاب کد به دکمه انتخابی، صورت خواهد گرفت.

به منظور دسترسی به کدها مربوط به جستجو در اکسل با کد نویسی VBA و همچنین پرونده اکسلی که برای جستجو در مثال‌ها به کار رفته، اینجا کلیک کنید. البته پرونده دریافتی با قالب فشرده است. کافی است پس از خارج کردن آن از حالت فشرده، فایل Creating A Search Box.xlsm را در اکسل بارگذاری کرده و به کاربرگ‌های Search Text و Search Text & Numbers دست یابید.

نکته: پرونده‌های اکسل که به همراه کد VBA یا ماکرو هستند با پسوند xlsm ذخیره و بازیابی می‌شوند.

معرفی فیلم آموزش برنامه نویسی VBA در اکسل – مقدماتی 

در نرم‌افزارهای گروه آفیس شرکت مایکروسافت (Microsoft Office) به منظور توسعه نرم‌افزارها از زبان برنامه‌نویسی خاصی استفاده می‌شود که به آن اصلاحا VBA گفته می‌شود. این عبارت مخفف Visual Basic for Applications یا برنامه نویسی با ویژال بیسیک برای برنامه‌های کاربردی است. از این زبان برنامه نویسی می‌توان برای ایجاد کاربری جدید در نرم‌افزارهای آفیس مانند Excel، Word، Outlook و Access استفاده کرد.

به کمک برنامه نویسی VBA در اکسل، می‌توان اموری که به کمک توابع یا فرمول‌ها قابل اجرا نیستند را به عمل درآورد. از آنجایی که بیشتر کاربران با محیط اکسل آشنا هستند، افزوده شدن امکانات جدید با استفاده از VBA برایشان بسیار جذاب خواهد بود. مدرس فرادرس در آموزش برنامه نویسی VBA در اکسل به صورت مقدماتی به نحوه برنامه‌نویسی پرداخته و طی مثال‌هایی کاربران را با کدهای VBA و نحوه اجرای آن‌ها در اکسل آشنا می‌کند. سرفصل این آموزش به صورت زیر است.

  • درس یکم: روش‌های تعریف متغیر و ورود و خروج اطلاعات با کدهای VBA
  • درس دوم: کنترل برنامه با استفاده از دستورات شرطی در VBA
  • درس سوم: کنترل برنامه با استفاده از دستورات شرطی و حلقه‌ها
  • درس چهارم: استفاده از توابع و فرمول های Excel در زبان برنامه نویسی VBA
  • درس پنجم: حوزه تعریف Local و Global متغیر در محیط VBA
  • درس ششم: طراحی رابط گرافیکی با استفاده از کنترل‌ها درون فرم‌های VBA

این آموزش شامل 4 ساعت و ۵۱ دقیقه فیلم و محتوای ویدیویی است که برای تمامی کاربران حرفه‌ای اکسل و بخصوص مهندسین صنایع مفید است. در این آموزش از اکسل نسخه ۲۰۱۶ استفاده شده است. پیش نیاز این آموزش، تسلط به کار در محیط اکسل در نظر گرفته است که می‌توانید با مشاهده آموزش‌های دیگر فرادرس مانند آموزش اکسل (Microsoft Office Excel 2013) به تسلط کافی برسید.

خلاصه و جمع‌بندی

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

اگر این مطلب برای شما مفید بوده است، آموزش‌ها و مطالب زیر نیز به شما پیشنهاد می‌شوند:

آرمان ری بد (+)

«آرمان ری‌بد» دکتری آمار در شاخه آمار ریاضی دارد. از علاقمندی‌های او، یادگیری ماشین، خوشه‌بندی و داده‌کاوی است و در حال حاضر نوشتارهای مربوط به آمار و یادگیری ماشین را در مجله فرادرس تهیه می‌کند.

بر اساس رای 1 نفر

آیا این مطلب برای شما مفید بود؟

آیا این مطلب برای شما مفید بود؟


منبع: blog.faradars.org



ارسال نظر

نام


ایمیل


نظر