Skip to main content

AccessTr.neT


Döngü anlatımı ve açıklamaları

Döngü anlatımı ve açıklamaları

#1
Bir Vba programında belirli bir grup komutu birden fazla çalıştırmak için aşağıdaki döngü komutlarından birini kullanabilirsiniz. Vba bunun için dört farklı program döngüsü sunar:
1· For-Next Döngüsü
2· Do-Loop Döngüsü
3· While-Wend Döngüsü
4· For-Each Döngüsü

Her program döngü tipinin kendine has özellikleri vardır. For Next komutu daha önceden belirlenen bir sayıda ve Do-Loop komutu döngünün sonunda veya başında kontrol edilen şart sağlanana kadar tekrar eder.While Wend ise Do Loop döngüsünün basite indirgenmiş bir halidir.
For Next döngüsü, tekrar sayısının başlangıçta tanımlandığı ve döngü sırasında değiştirilmediği durumlarda kullanılır.
Örneğin;
Kod:
Dim lngSayac As Long
For lngSayac = 1 To 10
Debug.Print "Sayaç = " & lngSayac & "!"
Next lngSayac

Bu basit döngü sırasında sayaç değeri 1'den 10! Kadar teker teker arttırılır ve sonuç direkt olarak yazdırılır.

Do Loop döngüsü ise tekrar sayısının açık olduğu durumlarda kullanılır. Bunun için en iyi örnek bir metin içerisinde kelime aramaktır. Bu kelimenin tam olarak nerede olduğunu bilemediğimiz için tekrar sayısını en başta belirlememiz mümkün değildir. Bilgisayarın döngü içerisindeki komutları sonsuza kadar tekrar etmesi için ifadenin en basit halini kullanabilirsiniz:

Do
' Tekrar edilecek komutlar
Loop
Bu tür sonsuz döngülere çok sık ihtiyaç duyulmadığı için Do Loop komutunun While veya Until parametreleri kullanılarak bir şart ile kontrol edilmesi gereklidir.
örneğin;
Kod:
Do
strWord = KelimeOku
Loop Until strWord = "Office"

Yukarıdaki Do Loop döngüsü okunan kelime "Office" değerini içerene kadar devam edecektir. Buna karşılık While parametresi ile de tersi bir sonuç elde edilir. Döngü bu durumda sonuç olumlu olduğu sürece devam edecektir.
Kod:
Do
strWord = KelimeOku
Loop While strWord = "Office"

VBA'nın While-Wend ifadesini desteklemesinin en önemli nedeni uyum sorunlarıdır. Bu, Do Loop döngüsünün daha basit bir şeklidir.
Kod:
While iSayac < 20
iSayac = isayac + 1
Wend

veya daha modern şekli ile
Kod:
Do While iSayac < 20
iSayac = iSayac + 1
Loop

DUAYEN...
Bizim için zor diye bir şey yoktur, imkansızsa zaman alır...
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Döngü anlatımı ve açıklamaları - Yazar: DUAYEN - 14/04/2012, 23:14