10 ماکرو VBA رایگان اکسل برای بهینه‌سازی کار با داده‌ها

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

نحوه اجرای کدهای ماکرو  VBA در اکسل  

اجرای کد ماکرو VBA در اکسل شامل چند مرحله است. در زیر مراحل اصلی برای ایجاد و اجرای یک ماکرو در اکسل آورده شده است:

 

۱. فعال‌سازی افزونه Developer

  • به تب "File" بروید.
  • گزینه "Options" را انتخاب کنید.
  • در پنجره "Excel Options"، گزینه "Customize Ribbon" را انتخاب کنید.
  • تیک "Developer" را بزنید و سپس "OK" کنید.

 ۲. ایجاد و اجرای ماکرو

  • در سربرگ اکسل به تب "Developer" بروید.
  • روی گزینه " Macro" کلیک کنید.
  • یک نام برای ماکرو انتخاب کنید و روی "Create" کلیک کنید.
  • توضیحات را وارد کنید (اختیای) و روی "OK" کلیک کنید.
  • در ماژول باز شده کد رایگان را وارد می کنید و سپس روی "Run" در سربرگ صفحه VBAProject کلیک کنید.

  3. ویرایش ماکرو

اگر بخواهید ماکرو را ویرایش کنید:

  • به تب "Developer" بروید.
  • روی "Macros" کلیک کنید.
  • ماکرو موردنظر را انتخاب کنید و روی "Edit" کلیک کنید.
  • ویرایش‌های لازم را در محیط Visual Basic for Applications (VBA) انجام دهید و سپس فایل را ذخیره کنید.

 

 4. ذخیره‌سازی فایل با ماکرو

برای ذخیره فایل‌هایی که شامل ماکرو هستند:

  • به تب "File" در سربرگ صفحه اکسل بروید.
  • روی "Save As" کلیک کنید.
  • در قسمت "Save as type"، گزینه "Excel Macro-Enabled Workbook (.xlsm)" را انتخاب کنید و فایل را ذخیره کنید.

 

فهرست ماکرها

تعویض مقادیر سلول‌ها

تعویض مقادیر سلول‌های دو ستون

تنظیم خودکار عرض همه ستون‌های شیت فعال

تنظیم خودکار ارتفاع همه ردیف‌های شیت فعال

تنظیم اندازه همه سلول‌های شیت فعال

اضافه کردن یک ستون و وارد نمودن شماره سریال در ستون جدید

اضافه کردن چند ستون در شیت فعال

اضافه کردن چند ردیف در شیت فعال

محافظت از همه سلول‌های دارای فرمول

آشکار کردن همه ردیف‌ها و ستون‌های شیت فعال

 

کدهای رایگان ماکرو:

21. تعویض مقادیر سلول‌ها:

Sub SwapTwoCells()

    Dim cell1 As Range, cell2 As Range

    Dim temp As Variant

       

    ' Set cell1 and cell2 to the selected cells

    Set cell1 = Range("A1")

    Set cell2 = Range("A2")

   

    ' Store the value of cell1 in temp variable

    temp = cell1.Value

   

    ' Swap the values

    cell1.Value = cell2.Value

    cell2.Value = temp

End Sub

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیرها.
  • اختصاص مقادیر دو سلول A1 و A2 به ترتیب در متغیرها cell1 و cell2.
  • تغییر مقادیر دو سلول A1 و A2 با استفاده از متغیر temp.

22. تعویض مقادیر سلول‌های دو ستون:

Sub SwapTwoColumns()

    Dim colA As Range, colC As Range

    Dim temp As Variant

   

    ' Set colA and colC to columns A and C

    Set colA = Worksheets("Sheet1").Columns("A")

    Set colC = Worksheets("Sheet1").Columns("C")

   

    ' Store the data from colA in a temporary variable

    temp = colA.Value

   

    ' Perform the swap

    colA.Value = colC.Value

    colC.Value = temp

End Sub

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیرها.
  • تعیین Sheet1 به‌عنوان شیت هدف.
  • اختصاص مقادیر سلولهای دو ستون A و C به ترتیب در متغیرها colA  و colC.
  • تغییر مقادیر دو ستون A و C با استفاده از متغیر temp.

23. تنظیم خودکار عرض همه ستون‌های شیت فعال:

Sub AutoFitColumns()

    ' Auto-fit all columns in the active worksheet

    ActiveSheet.Columns.AutoFit

End Sub

ماکرو با یک دستور ساده اجرا می‌گردد.

24. تنظیم خودکار ارتفاع همه ردیف‌های شیت فعال:

Sub AutoFitRows()

    ' Auto-fit all rows in the active worksheet

    ActiveSheet.Rows.AutoFit

End Sub

این ماکرو با یک دستور ساده اجرا می‌گردد.

25. تنظیم اندازه همه سلول‌های شیت فعال:

Sub MakeCellsSameSize()

    ' Define default width and height

    Const defaultWidth As Double = 10

    Const defaultHeight As Double = 15

   

    ' Set all columns to the default width

    ActiveSheet.Columns.ColumnWidth = defaultWidth

   

    ' Set all rows to the default height

    ActiveSheet.Rows.RowHeight = defaultHeight

End Sub

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیرها.
  • اختصاص مقادیر 10 و 15 به ترتیب برای عرض و ارتفاع همه سلول‌های شیت فعال.
  • تنظیم عرض و ارتفاع همه سلول‌ها.

26. اضافه کردن یک ستون و وارد نمودن شماره سریال در ستون جدید:

Sub InsertColumnAndAddSerialNumbers()

    Dim lastRow As Long

    Dim i As Long

   

    ' Insert a new column at the beginning (Column A)

    Columns("A:A").Insert  Shift:=xlToLeft,CopyOrigin:=xlFormatFromLeftOrAbove

   

    ' Find the last row with data in the worksheet

    lastRow = Cells(Rows.Count, "B").End(xlUp).Row

   

    ' Loop to populate serial numbers from 1 to lastRow

    For i = 1 To lastRow

        Cells(i, 1).Value = i

    Next i

End Sub

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیرها.
  • اضافه نمودن یک ستون در سمت چپ ستون A در شیت فعال.
  • پیدا نمودن شماره آخرین ردیف دارای مقدار در ستون B.
  • اضافه نمودن شماره ردیف مقادیر سلول‌های ستون B به‌عنوان شماره سریال در سلول‌های ستون اضافه شده.

27. اضافه کردن چند ستون در شیت فعال:

Sub InsertMultipleColumns()

    Dim numberOfColumns As Integer

   

    ' Specify the number of columns to insert

    numberOfColumns = 5

   

    ' Insert multiple columns starting from Column D

    Columns("D:D").Resize(, numberOfColumns).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

End Sub

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیر.
  • تعیین عدد 5 به‌عنوان تعداد ستون‌هایی که می‌خواهیم اضافه کنیم.
  • مشخص نمودن ستون D به عنوان ستون شروع ستون‌هایی که می‌خواهیم اضافه کنیم.
  • اضافه کردن 5 ستون جدید به شیت فعال.

28. اضافه کردن چند ردیف در شیت فعال:

Sub InsertMultipleRows()

    Dim numberOfRows As Integer

    Dim startRow As Integer

   

    ' Specify the number of rows to insert

    numberOfRows = 5

   

    ' Specify the starting row for insertion

    startRow = 3

   

    ' Insert multiple rows starting from row 3

    Rows(startRow & ":" & startRow + numberOfRows - 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

End Sub

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیرها.
  • تعیین عدد 5 به‌عنوان تعداد ردیف‌هایی که می‌خواهیم اضافه کنیم.
  • مشخص نمودن ردیف 3 به عنوان ردیف شروع ردیف‌هایی که می‌خواهیم اضافه کنیم.
  • اضافه کردن 5 ردیف جدید به شیت فعال.

29. محافظت از همه سلول‌های دارای فرمول:

Sub ProtectCellsWithFormulas()

    Dim cell As Range

    Dim ws As Worksheet

   

    ' Set reference to the active worksheet

    Set ws = ActiveSheet

   

    ' Unprotect the worksheet

    ws.Unprotect

   

    ' Loop through all cells in the used range

    For Each cell In ws.UsedRange

        ' Unlock all cells

        cell.Locked = False

       

        ' If the cell contains a formula, lock it

        If cell.HasFormula Then

            cell.Locked = True

        End If

    Next cell

   

    ' Protect the worksheet with locked cells

    ws.Protect

End Sub

 

مراحل اجرایی ماکرو به‌قرار زیر است:

  • تعریف متغیرها.
  • حذف حالت قفل از همه سلول‌های دارای قفل.
  • تشخیص سلول‌های دارای فرمول شیت فعال و محافظت از آن‌ها با استفاده از حلقه For.

30. آشکار کردن همه ردیف‌ها و ستون‌های شیت فعال:

Sub UnhideAllRowsAndColumns()

    ' Unhide all rows in the active worksheet

    ActiveSheet.Rows.Hidden = False

   

    ' Unhide all columns in the active worksheet

    ActiveSheet.Columns.Hidden = False

End Sub

این ماکرو با دو دستور ساده همه ردیف‌ها و سپس همه ستون‌ها را آشکار می‌کند.