EXCEL VBA DİZE BİRLEŞTİRME

 

VBA Concatenate Strings, Excel'de Visual Basic for Applications (VBA) kullanarak birden fazla dizeyi veya değişkeni birleştirerek tek bir dize oluşturma sürecini ifade eder. Farklı bileşenleri birleştirerek dinamik olarak metin oluşturmanıza olanak tanır.


Bu teknik, özelleştirilmiş mesajlar oluştururken, dinamik formüller oluştururken veya raporlar oluştururken Excel makrolarında faydalıdır. Bir önek ve sayısal bir fatura numarasını birleştirerek bir fatura kodu oluşturmamız gereken bir örneğe bakalım. Önekin 'INV' ve fatura numarasının '12345' olduğu bir senaryoyu ele alalım. Fatura kodunu oluşturmak için bu iki bileşeni birleştirmek istiyoruz.

'INV' önekini, fatura numarası '12345' ile ampersand (&) operatörünü kullanarak birleştirerek, 'INV-12345' fatura kodunu üretebiliriz.

VBA Birleştirme Girişi

Bu kod, VBA birleştirmenin Excel makrolarında benzersiz tanımlayıcılar veya kodlar oluşturmak için bir dizenin farklı bölümlerini birleştirmemize nasıl olanak sağladığını göstermektedir.

VBA Concatenate Giriş - Çıktı

ÖNEMLİ NOKTALAR

  1. VBA Dizeleri Birleştirme, Excel makrolarındaki metinleri birleştirmenize ve düzenlemenize olanak tanır.
  2. Dizeleri, değişkenleri veya hücre değerlerini birleştirmek için ampersand (&) operatörünü kullanın. Birleştirmeden önce dize olmayan değerleri dizelere dönüştürmeyi unutmayın.
  3. VBA'nın Hücreleri Birleştir fonksiyonunu kullanarak birden fazla hücrenin içeriklerini tek bir hücrede birleştirebiliriz.
  4. Boş veya geçersiz değerleri işleyin, performans etkilerini göz önünde bulundurun ve birleştirilmiş sonuçtan gereksiz boşlukları veya karakterleri kaldırın.
  5. VBA Birleştirme fonksiyonu Excel makrolarına esneklik ve özelleştirme sağlayarak dinamik metin üretimi ve gelişmiş veri işleme olanağı sağlar.

VBA'da Dizeler Nasıl Birleştirilir?

VBA'da dizeleri birleştirmek için şu adımları izleyin:

Adım 1: Değişkenleri bildirin (gerekirse). Dizelerini birleştirmeden önce, birleştirmek istediğiniz dizeleri veya değerleri depolamak için değişkenler bildirin. Örneğin:

Dim str1 As String
Dim str2 As String
Dim result As String

Adım 2: Birleştirmek istediğiniz değişkenlerin değerlerini ayarlayın. Örneğin:

str1 = “Hello”
str2 = “World”

Adım 3: Dizeleri birleştirin: Dizeleri birleştirmek ve sonucu bir değişkene atamak için ve (&) operatörünü kullanın.

result = str1 & str2

Adım 4:  

  • Birleştirilmiş dizeyi ileti kutularını kullanarak görüntüle.
  • Bir hücreye yaz.
  • Dilediğiniz şekilde kullanabilirsiniz.

Örneğin:

MsgBox result


Örnekler

VBA'da dizelerin birleştirilmesini açıklamak için birkaç örneğe bakalım.

Örnek 1: Dizeleri ve değişkenleri birleştirme:

Bu örnekte, VBA'nın dize ve değişkeni nasıl birleştireceğini inceleyeceğiz. Anlamlı ve dinamik mesajlar oluşturmak için metinsel içeriği değişken değerleriyle birleştireceğiz.

Adım 1: Microsoft Excel'i açın ve Geliştirici sekmesine gidin . VBA Düzenleyicisine erişmek için “Visual Basic” düğmesine tıklayın.

VBA Birleştirme - Örnek 1 - Adım 1

Adım 2: VBA Editöründe, proje gezgini penceresine sağ tıklayın ve “Ekle”yi ve ardından “Modül”ü seçin. VBA kodunuzu yazabileceğiniz yeni bir modül oluşturulacaktır .

VBA Birleştirme - Örnek 1 - Adım 2

Adım 3: Modül içinde yeni bir Alt prosedür tanımlayarak başlayın. Bu durumda, Alt prosedür “ConcateNameandAge” olarak adlandırılır. Kodun giriş noktasıdır ve yürütmenin başlayacağı yerdir.

VBA Birleştirme - Örnek 1 - Adım 3

Adım 4: Kodda kullanılacak değişkenleri bildirin. Bu örnekte üç değişken bildirilir: "name" bir String olarak, "age" bir Integer olarak ve "message" bir String olarak. Bu değişkenler name, age ve birleştirilmiş message'ı depolayacaktır.

VBA Birleştirme - Örnek 1 - Adım 4

Adım 5: Değişkenin "name" ve "age" değerlerine atayın. Bu kod parçacığında, isme "John" değeri atanır ve yaşa 30 değeri verilir. Bunlar yalnızca gösterim amaçlı kullanılan örnek değerlerdir.

VBA Birleştirme - Örnek 1 - Adım 5

Adım 6: Dize sabitlerini ve değişken değerlerini "mesaj" değişkeninde birleştirmek için birleştirme operatörünü (&) kullanın.

Kod, "Benim adım, "isim" değişkeninin değeri olan dize ve "ben, "yaş" değişkeninin değeri olan dize ve "yıl yaşındayım" dizelerini birleştiriyor. Ortaya çıkan birleştirilmiş dize, "mesaj" değişkeninde saklanır.

VBA Birleştirme - Örnek 1 - Adım 6

Adım 7: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, “ConcateNameandAge” öğesini seçin ve makroyu çalıştırın.

VBA Birleştirme - Örnek 1 - Adım 7

Adım 8: Kodu çalıştırdıktan sonra şu mesajla karşılaşacaksınız: "Benim adım John ve 30 yaşındayım."

VBA Birleştirme - Örnek 1 - Adım 8

KODUN TAMAMI:

Sub ConcateNameandAge()
Dim name As String
Dim age As Integer
Dim message As String
name = “John”
age = 30
message = “My name is ” & name & ” and I am ” & age & ” years old.”
MsgBox message
End Sub

Örnek 2: Aralık değerlerini birleştirme

Bu örnekte, VBA birleştirme aralığını kullanmayı keşfedeceğiz. Bir aralıktaki birden fazla hücreden gelen değerleri birleştirmek, birleştirilmiş verileri temsil eden tek bir dize oluşturabilir.

Adım 1: Yeni modülde, “ConcatRange()” adlı bir Alt Rutin oluşturarak başlayın.

Örnek 2 - Adım 1

Adım 2: Burada üç değişken bildiriyoruz: birleştirilecek hücre aralığını temsil eden bir Aralık nesnesi olarak “rng”, aralıktaki her hücre üzerinde yineleme yapmak için bir Aralık nesnesi olarak “cell” ve birleştirilen sonucu depolamak için bir Dize değişkeni olarak “result”.

Örnek 2 - Adım 2

Adım 3: Burada, "rng" değişkenini A1'den A3'e kadar olan hücre aralığına atıfta bulunacak şekilde ayarlıyoruz. Birleştirilecek aralık budur.

Örnek 2 - Adım 3

Adım 4: Bu adımda, Aralıktaki her Hücre üzerinde bir yineleme oluşturuyoruz. Bu satır, "rng" aralığındaki her hücre üzerinde yineleme yapan bir döngü başlatır.

Örnek 2 - Adım 4

Adım 5: Döngü içerisinde kod, aralıktaki her bir hücrenin değerini “result” değişkenine birleştirir.

Ampersand (&) operatörü hücre değerini "sonuç" değişkeninin mevcut içeriğiyle birleştirir. Biçimlendirme amaçları için her değerden sonra bir virgül ve bir boşluk eklenir.

VBA Birleştirme - Örnek 2 - Adım 5

Adım 6: Bu satır, döngüden sonra “result” değişkeninden son virgülü ve boşluğu kaldırır. Left excel fonksiyonu , “result” değişkeninden son iki karakteri hariç tutarak bir alt dize çıkarır. Kod daha sonra birleştirilmiş sonucu MsgBox fonksiyonunu kullanarak bir mesaj kutusunda görüntüler.

Örnek 2 - Adım 6

Adım 7: Modülü kaydedin ve VBA’yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8’e basın, “ConcatRange”i seçin ve çalıştırın.

Örnek 2 - Adım 7

Adım 8: Kodu çalıştırdığınızda A1-A3 hücrelerindeki verilerin birleştirildiğini ve mesaj kutusunda istediğiniz formatta, örneğin “Elma, Muz, Portakal” şeklinde görüntülendiğini göreceksiniz.

Örnek 2 - Adım 8

KODUN TAMAMI:

Sub ConcatRange()
Dim rng As Range
Dim cell As Range
Dim result As String
Set rng = Range(“A1:A3”)
For Each cell In rng
result = result & cell.Value & “, “
Next cell
result = Left(result, Len(result) – 2) ‘ Remove the trailing comma and space
MsgBox result
End Sub

Ampersand VBA Birleştirmede Yaygın Hata

VBA birleştirme için ampersand (&) operatörünü kullanırken yapılan yaygın bir hata, dize olmayan değerleri dizelere dönüştürmeyi unutmaktır. Dize olmayan bir değeri doğrudan birleştirmeye çalışırsanız beklenmeyen sonuçlarla veya çalışma zamanı hatalarıyla karşılaşabilirsiniz.

Bu hatayı önlemek için, dize olmayan değerleri birleştirmeden önce dizelere dönüştürüldüğünden emin olmalısınız. Dize olmayan değerleri “CStr()” işlevini kullanarak dizelere dönüştürebilirsiniz.

İşte bir örnek:

Dim num As Integer
Dim str As String
num = 42
str = “The answer is: ” & CStr(num)

“CStr()” kullanılarak, birleştirme işleminden önce tam sayı değeri olan 42 bir dizeye dönüştürülür.

VBA JOIN Fonksiyonunu Kullanarak Birleştirme

Ampersand operatörüne ek olarak, VBA belirtilen bir sınırlayıcı kullanarak bir dizi dizeyi birleştirmek için JOIN işlevini sağlar. JOIN işlevinin sözdizimi şöyledir:

result = Join(array, delimiter)

“dizi” parametresi, birleştirmek istediğiniz dize dizisini temsil eder ve “delimiter” parametresi, birleştirilen öğeler arasında ayırıcı olarak kullanılacak karakteri veya dizeyi belirtir.

İşte bir örnek:

Dim fruits() As String
Dim result As String
fruits = Array(“Apple”, “Banana”, “Orange”)
result = Join(fruits, “, “)
MsgBox result

"fruits" dizisi üç öğe içerir ve JOIN işlevi bunları ayırıcı olarak virgül ve boşluk kullanarak birleştirir. Ortaya çıkan dize bir ileti kutusunda görüntülenir: "Apple, Banana, Orange".

Dikkat Edilmesi Gereken Önemli Noktalar

  1. Birleştirme işlemindeki işlenenlerin dize türünde olduğundan veya CStr() gibi fonksiyonlar kullanılarak dizelere dönüştürüldüğünden emin olun.
  2. Özellikle büyük veri kümeleriyle çalışırken, birleştirilmiş dizenin uzunluğuna dikkat edin. Çok uzun dizeler önemli miktarda bellek tüketebilir ve performansı etkileyebilir.
  3. İstenilen biçimi sağlamak için, birleştirilmiş sonuçtan gereksiz boşlukları veya karakterleri kaldırmak için Trim, Left, Right veya Mid gibi dize işleme işlevlerini kullanın.
  4. Çok sayıda dizeyi birleştirirken veya sık sık birleştirme işlemleri gerçekleştirirken, ampersand operatörüne kıyasla daha iyi performans sağladığı için StringBuilder nesnesini kullanmayı düşünün.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...