מאמרים

דוגמאות למאקרו של Excel שנכתבו עם VBA

דוגמאות המאקרו הפשוטות הבאות של Excel נכתבו באמצעות VBA 

זמן קריאה משוער: 3 דקות

דוגמה של VBA באמצעות Array

הליך המשנה הבא קורא ערכים מהתאים בעמודה A של גליון העבודה הפעיל, עד שהוא נתקל בתא ריק. הערכים מאוחסנים במערך. דוגמא מאקרו פשוטה זו של Excel ממחישה את השימוש ב:

  • הצהרות משתנות;
  • מערכים דינמיים;
  • מחזור Do Until;
  • עיין בתאים בגיליון העבודה הנוכחי של Excel;
  • פונקציית VBA Ubound ingebouwd (המחזיר את המדד הגבוה ביותר של מערך).
' Sub procedure store values in Column A of the active Worksheet
' into an array
Sub GetCellValues()
Dim iRow As Integer            ' stores the current row number
Dim dCellValues() As Double  ' array to store the cell values
iRow = 1
ReDim dCellValues(1 To 10)
' Do Until loop to extract the value of each cell in column A
' of the active Worksheet, as long as the cell is not blank
Do Until IsEmpty(Cells(iRow, 1))
   ' Check that the dCellValues array is big enough
   ' If not, use ReDim to increase the size of the array by 10
   If UBound(dCellValues) < iRow Then
      ReDim Preserve dCellValues(1 To iRow + 9)
   End If
   ' Store the current cell in the CellValues array
   dCellValues(iRow) = Cells(iRow, 1).Value
   iRow = iRow + 1
Loop
End Sub

ההליך מאחסן את הערכים בעמודה A של גליון העבודה הפעיל במערך, שימו לב:

  • האופניים Do Until מחלץ את הערכים של כל תא בעמודה A של גליון העבודה הפעיל, תוך התעלמות מתאים ריקים
  • המצב "If UBound(dCellValues) < iRow” בודק שמערך dCellValues ​​גדול מספיק כדי להכיל את המידע, אם לא, השתמש ב-ReDim כדי להגדיל את גודל המערך ב-10
  • לבסוף, חינוך​​dCellValues(iRow) = Cells(iRow, 1).Value"מאחסן את התא הנוכחי במערך CellValues

דוגמה VBA עם פעולות מתמטיות

הליך המשנה הבא קורא את הערכים מעמודה A של גליון העבודה בשם "Sheet2" ומבצע פעולות אריתמטיות על הערכים. הערכים המתקבלים מודפסים בעמודה A של גליון העבודה הפעיל הנוכחי.

מאקרו זה ממחיש:

ניוזלטר חדשנות
אל תחמיצו את החדשות החשובות ביותר בנושא חדשנות. הירשם כדי לקבל אותם במייל.
  • הצהרות משתנות;
  • אובייקטי Excel (באופן ספציפי, שימוש במילת המפתח Set וכיצד לגשת לאובייקט 'עמודות' מהאובייקט 'גליונות');
  • מחזור Do Until;
  • גש לגיליונות עבודה וטווחי תאים בחוברת העבודה הנוכחית של Excel.
' Sub procedure to loop through the values in Column A of the Worksheet
' "Sheet2", perform arithmetic operations on each value, and write the
' result into Column A of the current Active Worksheet ("Sheet1")
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
' Set the variable 'Col' to be Column A of Sheet 2
Set Col = Sheets("Sheet2").Columns("A")
i = 1
' Loop through each cell of the column 'Col' until
' a blank cell is encountered
Do Until IsEmpty(Col.Cells(i))
   ' Apply arithmetic operations to the value of the current cell
   dVal = Col.Cells(i).Value * 2 + 1
   ' The command below copies the result into Column A
   ' of the current Active Worksheet - no need to specify
   ' the Worksheet name as it is the active Worksheet.
   Cells(i, 1) = dVal
   i = i + 1
Loop
End Sub

דוגמה VBA עם הקלטת תאריך שינוי

בוא נכתוב מאקרו VBA פשוט שמופעל כאשר תא בטווח מסוים של הגיליון שלנו מתעדכן. נניח שאתה רוצה לעקוב אחר שינויים בעמודה B (B4 עד B11) ורשום את התאריך והשעה של השינוי בעמודה A.
בואו נמשיך כך:

  • בלשונית Developer לחץ על האפשרות "Visual Basic" כדי לפתוח את עורך VBA.
  • בעורך VBA, לחץ פעמיים על עורך הקוד הקשור ל-Sheet2.
  • בחר גליון עבודה מהכרטיסייה הימנית (או השמאלית) ובחר באפשרות שנה.
  • הוסף קוד VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
        Target.Range("A1:A1").Value = Now
    End If
End Sub

שמור את חוברת העבודה עם פקודות מאקרו מופעלות (לדוגמה, כקובץ ‎.xlsm).


כעת, בכל פעם שאנו מעדכנים תא בעמודה B (משורה 1 עד שורה 10), התא בעמודה A יציג אוטומטית את התאריך והשעה הנוכחיים.

Ercole Palmeri

ניוזלטר חדשנות
אל תחמיצו את החדשות החשובות ביותר בנושא חדשנות. הירשם כדי לקבל אותם במייל.

מאמרים אחרונים

התערבות חדשנית במציאות רבודה, עם צופה של אפל בפוליקליניקה של קטניה

ניתוח ניתוח עיניים באמצעות הצופה המסחרי של Apple Vision Pro בוצע במרפאת קטניה...

3 מאי 2024

היתרונות של דפי צביעה לילדים - עולם של קסם לכל הגילאים

פיתוח מוטוריקה עדינה באמצעות צביעה מכין את הילדים למיומנויות מורכבות יותר כמו כתיבה. לצבוע…

2 מאי 2024

העתיד כבר כאן: כיצד תעשיית הספנות מחוללת מהפכה בכלכלה העולמית

המגזר הימי הוא מעצמה כלכלית עולמית אמיתית, שניווטה לקראת שוק של 150 מיליארד...

1 מאי 2024

מפרסמים ו-OpenAI חותמים על הסכמים להסדרת זרימת המידע המעובד על ידי בינה מלאכותית

ביום שני האחרון הודיע ​​הפייננשל טיימס על עסקה עם OpenAI. FT נותנת רישיון לעיתונאות ברמה עולמית שלה...

30 אפריל 2024

קרא חדשנות בשפה שלך

ניוזלטר חדשנות
אל תחמיצו את החדשות החשובות ביותר בנושא חדשנות. הירשם כדי לקבל אותם במייל.

Seguici