Makaleler

VBA ile yazılmış Excel Makro örnekleri

Aşağıdaki basit Excel makro örnekleri VBA kullanılarak yazılmıştır. 

Tahmini okuma süresi: 3 minuti

Array kullanan VBA örneği

Aşağıdaki Alt prosedür, boş bir hücreyle karşılaşıncaya kadar etkin çalışma sayfasının A sütunundaki hücrelerdeki değerleri okur. Değerler bir dizide saklanır. Bu basit Excel makro örneği aşağıdakilerin kullanımını göstermektedir:

  • Değişken bildirimleri;
  • Dinamik diziler;
  • Bir döngü Do Until;
  • Geçerli Excel çalışma sayfasındaki hücrelere bakın;
  • VBA işlevi Ubound yerleşik (bir dizinin en yüksek dizinini döndürür).
' 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

Prosedür, değerleri aktif çalışma sayfasının A sütununda bir dizide saklar; şunu unutmayın:

  • Devir Do Until boş hücreleri yok sayarak, etkin çalışma sayfasının A sütunundaki her hücrenin değerlerini çıkarır
  • Kondisyon "If UBound(dCellValues) < iRow” dCellValues ​​dizisinin bilgiyi tutacak kadar büyük olup olmadığını kontrol eder, değilse ReDim kullanarak dizinin boyutunu 10 oranında artırın
  • Son olarak eğitim​​dCellValues(iRow) = Cells(iRow, 1).Value” Geçerli hücreyi CellValues ​​dizisinde saklar

Matematiksel işlemler içeren VBA örneği

Aşağıdaki Alt prosedür “Sayfa2” isimli çalışma sayfasının A sütunundaki değerleri okur ve değerler üzerinde aritmetik işlemler gerçekleştirir. Ortaya çıkan değerler mevcut aktif çalışma sayfasının A sütununa yazdırılır.

Bu makro şunu gösterir:

İnovasyon bülteni
İnovasyonla ilgili en önemli haberleri kaçırmayın. Onları e-posta ile almak için kaydolun.
  • Değişken bildirimleri;
  • Excel nesneleri (özellikle Set anahtar sözcüğünün kullanımı ve 'Sayfalar' nesnesinden 'Sütunlar' nesnesine nasıl erişileceği);
  • Bir döngü Do Until;
  • Geçerli Excel çalışma kitabındaki çalışma sayfalarına ve hücre aralıklarına erişin.
' 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

Değişiklik tarihi kaydıyla VBA örneği

Sayfamızın belirli bir aralığındaki bir hücre güncellendiğinde tetiklenen basit bir VBA makrosu yazalım. B sütunundaki (B4 ila B11) değişiklikleri izlemek ve değişikliğin tarih ve saatini A sütununa kaydetmek istediğinizi varsayalım.
Şöyle devam edelim:

  • Sekmede Developer “seçeneğine tıklayınVisual BasicVBA düzenleyicisini açmak için ”.
  • VBA düzenleyicisinde Sayfa2 ile ilgili kod düzenleyiciye çift tıklayın.
  • Sağ (veya sol) sekmeden Çalışma Sayfası'nı seçin ve Değiştir seçeneğini seçin.
  • VBA kodunu ekleyin:
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

Çalışma kitabını makrolar etkinleştirilmiş olarak kaydedin (örneğin, .xlsm dosyası olarak).


Artık, B sütunundaki bir hücreyi her güncellediğimizde (1. satırdan 10. satıra kadar), A sütunundaki hücre otomatik olarak geçerli tarih ve saati görüntüleyecektir.

Ercole Palmeri

İnovasyon bülteni
İnovasyonla ilgili en önemli haberleri kaçırmayın. Onları e-posta ile almak için kaydolun.

Son Makaleler

Veeam, korumadan yanıt ve kurtarmaya kadar fidye yazılımı için en kapsamlı desteği sunuyor

Veeam Coveware, siber şantaj olaylarına müdahale hizmetleri sağlamaya devam edecek. Coveware adli tıp ve iyileştirme yetenekleri sunacak…

Nisan 23 2024

Yeşil ve Dijital Devrim: Kestirimci Bakım Petrol ve Gaz Endüstrisini Nasıl Dönüştürüyor?

Kestirimci bakım, tesis yönetimine yenilikçi ve proaktif bir yaklaşımla petrol ve gaz sektöründe devrim yaratıyor.…

Nisan 22 2024

Birleşik Krallık antitröst düzenleyicisi GenAI konusunda BigTech alarmını yükseltti

İngiltere CMA, Big Tech'in yapay zeka pazarındaki davranışları hakkında bir uyarı yayınladı. Orada…

Nisan 18 2024

Casa Green: İtalya'da sürdürülebilir bir gelecek için enerji devrimi

Avrupa Birliği'nin binalarda enerji verimliliğini artırmak amacıyla formüle ettiği "Yeşil Evler" Kararnamesi yasama sürecini tamamladı...

Nisan 18 2024