# Visual Basic

Visual Basic| Visual Studio 2008 yazılımının ekran görüntüsü |
| Geliştirici | Microsoft |
|  |
| İşletim sistemi | Microsoft Windows ve MS-DOS |
| Platform | Basic |
| Tür | Görsel programlama |
| Lisans | Lisanslı yazılım |
| Resmî sitesi | Resmî web sitesi |

**Visual Basic**, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir. Öğrenilmesi de kullanılması da oldukça kolaydır.

Görsel programlama için basit bir tanım yapmak gerekirse "*göz göre göre program yapmak*" diyebiliriz. Bu programlama anlayışı; önceki yıllarda kullanılan temel programlama dillerindeki bir düzenleyici (editör) ekran üzerine satır satır yazılan programlamanın yerine, Grafiksel Kullanıcı Arabirimi (GUI)’nin ve bu arabirim içerisinde program geliştirme amacıyla bulunan Entegre Geliştirme Ortamı (IDE) adlı bir araçlar koleksiyonunun almasıyla ortaya çıkmıştır.

Visual Basic'e gelince, öncelikle Basic programlama dili temel alınarak ortaya çıkarılmış olduğunu söylemek gerekir. Basic (**B**eginners-**A**ll Purpose **S**ymbolic **I**nstruction **C**ode) kelime anlamı olarak "*Yeni Başlayanlar İçin Çok Amaçlı Sembolik Talimat Kodu*" anlamına gelmektedir. Basic metin tabanlı düzenleyiciler (editörler) arasında en çok rağbet göreni olmuştur. Başlangıçta çok basit programların geliştirilmesi amacıyla kullanılırken, bu ilgi dolayısıyla gitgide gelişerek son halini almıştır.

## MS visual basic türevleri

Microsoft, Visual Basic dilinin değişik türevlerini oluşturmuştur.

* **VBA** (*Visual Basic for Applications*)

Microsoft Office gibi yazılımlar içerisinde otomasyon oluşturabilmek için geliştirilmiş bir yapıdır.

* **VB ScriptASP** (*Active Server Pages*) web Platformunun standart dilidir.
Visual Basic sözdizimine dayalıdır. **ASP** ve **VB Script**, **ASP.NET** ile aynı şey değildir. ASP.NET, Visual Basic.Net ile benzer kategoridedir.

* **Visual Basic.NET**

Visual Basic'in geçmişteki bir logosu
**Visual Basic.NET**, Visual Basic 6.0 Platformunun varisi olmakla birlikte farklı bir yapıdır ve **.NET Frame work** üzerinde çalışır. Bu Platform Visual Basic dilinin Obje Temelli özelliklerini güçlendirmek için atılmış bir adımdır. Ancak Visual Basic dilinin onu ileri seviye bir dil yapan kullanıcı dostu özelliklerinden ödün verildiği söylenebilir. Microsoft'un Visual Basic.NET'le birlikte Visual Basic'i VB 6.0'dan farklı bir yapıya dönüştürmesinin ardından RAD Basic ve TwinBASIC gibi VB 6.0 uyumlu olduğu iddia edilen 3. parti yazılımlar piyasaya çıkmıştır.

## Yardım ve kullanım

Visual Basic programlama diline ait tüm komutları ve bunların kullanım kurallarını bilmeniz oldukça güçtür. Bu nedenle programlarınızı hazırlarken birçok defa yardım almak amacıyla bir kitaba ya da internete ihtiyaç duyarız. İnternette programlama üzerine hazırlanmış yardım alabileceğimiz pek çok site mevcuttur. Bunun yanı sıra Visual Basic programlama dili kendi içerisinde de bir yardım menüsü barındırmaktadır. F1 tuşuna basılarak yardım menüsü görüntülenebilir.

Visual Basic'de yardım alabilmemiz için, bunların kütüphanelerini yani yardım içeriğini barındıran **MSDN** (M**icro**s**oft **D**eveloper **N**etwork*)'yi kurmamız gereklidir. MSDN'i Visual Basic kurulumu tamamlandıktan sonra karşınıza gelecek olan uyarı ekranını takip ederek kurabilirsiniz. Ancak Visual Basic kurulum CD'lerinin tamamına ya da MSDN kurulum dosyalarına ihtiyacınız olacaktır.

Yardım ekranı, internet sayfasına çok benzeyen bir görüntüye sahiptir. "*Contents*" yazan bölümden konu başlıklarına göre istediğiniz başlığı seçerek, "*Index*" bölümünden tüm başlık ve alt başlıkları alfabetik sıraya uygun şekilde inceleyerek ya da aradığınız konunun ilk harflerini girerek, "*Search*" bölümünden ise aradığınız konu içeriğini yazıp o konu ile ilgili tüm başlık ve alt başlıklara ulaşarak arama yaptırabilirsiniz. Aranıp bulunan konunun üzeri tıklanarak aynen bir web sayfasında olduğu gibi yan
tarafta görüntülenmesi sağlanabilir. "*Favorites*" kısmı ise arama için değil daha çok eski yapmış olduğumuz aramalara kolay ulaşmak için kullanılır. Örneği araştırıp bulduğunuz bir konu ile ilgili yardım ekranı açık iken, *Favorites* kısmına gider ve "*Add*" butonuna basarsanız, orada yer alan listeye o sayfanın eklendiğini göreceksiniz. Bir konu ile ilgili yardım sayfası görüntülenirken, bir sayfaya sığmayabilir bu durumda araç çubuğunda yer alan "*Forward*" butonu yardımıyla ilerlenebilir. Konu ile ilintili olabileceğini düşündüğünüz bir alt başlığa gitmek için "*Next*", bir üst başlığa gitmek için ise "*Previous*" butonu kullanılabilir. Arayıp bulmuş olduğunuz konu ile ilgili açılan sayfanın hemen üstünde "*See Also*", "*Example*", "*Specifics*", "*Applies To*" ve "*Tasks*" gibi linklerin birini ya da birkaçını görebilirsiniz. Bunlar eğer var ise bu konuyla ilintili başka konuları, örnekleri, özellikleri, uygulamaları görmenizi sağlar. Ayrıca sayfanın içerisinde, konu anlatımı sırasında altı çizili ve mavi renkte göreceğiniz kelimelerinde, o kelimelerle ilgili yardım sayfalarına sizi yönlendiren birer link olduğunu belirtmemiz gerekir eğer link belirtmezseniz düzgün bir sonuç çıkartamazsınız.

## Özellikleri

* DAO, RDO ve ADO yöntemleri ile SQL, MySQL, Microsoft Access, Paradox ve Oracle gibi çeşitli veri tabanlarına bağlanabilir.
* Active-X denetimleri ve nesneleri oluşturabilir.
* Ascii ve İkili dosya biçimleriyle çalışabilir.
* Nesne tabanlı bir dildir.
* Wındows API çağrısı ve benzeri harici işlev çağrıları yapabilir.

## Örnek kodlar

### Yorum Satırları

```
'Bu 1. öntanımlı kod/yorum satırıdır
REM Bu ise 2. öntanımlı tanım/yorum satırıdır.

```

### Mesaj kutusu

* Bu örnek kod, bir mesaj penceresi açmayı sağlar, örneğin bu kodu bir butonun içine yazarsanız, programı çalıştırıp o butona bastığınızda küçük bir pencere açılır ve içinde "Merhaba, Dünya!" yazar:

````
 Private Sub Button1\_Clicked() Handles Button1.Click
 ' Button1'e tıklayınca Button 1'un Click Event'i Tetiklenir ve Bu Event'a Bağlı Prosedürler Çalışır.
 MsgBox("Merhaba, Dünya!")
 End Sub

````

### Basit Yönetimler

* Bu kod kullanıldığı Form Load'a yazıldığı zaman, Checkbox'umuz işaretli iken Textbox yazılabilir olacak. Fakat işaretli değilse Textbox kapalı kalacak.

```
 Private Sub FormLoad()
 If checkbox1.Checked = False Then 'CheckBox işaretli değil
 textbox1.Enabled = True 'CheckBox işaretli değilken TextBox'umuz yazı yazılabilir. Yani "enabled" olacak.
 Else
 textbox1.Enabled = False
 End If
 End Sub

```

* Bu kod Button1'e yazıldığında Label1'deki text sayı ise 1 artar. Yoksa "Less Than Infinity" hatası alınır.

```
 Private Sub Button1\_Clicked() Handles Button1.Click
 Label1.Text = (Label1.Text) + 1
 'Alttaki kod ise daha karmaşık. Label2'yi x kabul edersek, Label1'e x'in bir fazlasını ekleyecek.
 Label1.Text = (Label1.Text) + (Label2.Text + 1)
 'Alttaki kod öncekilerden daha karmaşık. Label3'ü y kabul edersek, x ile y'nin 1'er fazlasını toplayıp label1'e ekleyecek.
 Label1.Text = (Label1.Text) + ((Label2.Text + 1) + (Label3.Text + 1))
 'En karmaşık olarak alttakini örnek verebiliriz. Label4'ü z kabul edersek, x + 1 ile y+1'i çarpacak ve bunun sonucu ile
 'z'yi çarparak Label1'e ekleyecek.
 Label1.Text = (Label1.Text) + (((Label2.Text + 1) \* (Label3.Text + 1)) \* Label4.Text)
 'Alttaki komut button'a yazıldığında Label1'deki değer Textbox 1'e eşitlenecek (Less Than hatası yok.)
 Label1.Text = TextBox1.Text
 End Sub

```

Kod içinde yeşil yazıyla yazan kısım, bir açıklama metnidir. Yani yazmış olduğunuz kodun ne anlama geldiğini istediğiniz şekilde yazabilirsiniz, programınızı daha sonra güncellemek isterseniz ve hangi kodun ne işe yaradığını unutmamak isterseniz, yeni bir satıra geçip veya kodun bulunduğu satırın sonuna bir tane tek tırnak ( **'** ) işareti koymalısınız, daha sonra boşluk bırakarak açıklamanızı yazabilirsiniz.

### İki sayıyı toplama

* Bu kod ise iki sayıya işlem yaptırmaya yaramaktadır, örneğin toplama, çıkarma, çarpma, bölme, kalanı gösterme vs. yeni açtığınız bir forma üç tane "TextBox" (metin kutusu) ve bir tane de "Button" (buton) koyunuz. Daha sonra butonun içine şu kodları yazın:

````
 Private Sub Button1\_Click()
 ' Button1'e tıklayınca Text1 ve Text2'deki sayıları toplar, sonucu Text3'te gösterir
 TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
 End Sub

````

İki sayıya işlem yaptırma kodu bu kadar basittir, istediğiniz işlemi yaptırmak için kod içinde geçen artı (**+**) işareti yerine; eksi (**-**), çarpma (**\), bölme (**/**), tam sayı bölme (**\**), bölümün kalanını gösterme (**mod**) gibi işaretleri ya da kısaltmaları yazabilirsiniz.

## Ayrıca bakınız

* Microsoft yazılımları listesi

## Dış bağlantılar

* Computer-Books.us 24 Kasım 2005 tarihinde Wayback Machine sitesinde arşivlendi. - Ücretsiz indirilebilen Visual Basic kitap koleksiyonu. (İngilizce)
* HashVB Wiki (İngilizce)
* VB 6.0 at MSDN (İngilizce)
* VB City 2 Nisan 2006 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
* VB Lessons on Free-Ed.net 2 Aralık 2005 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
* Visual Studio | MSDN 22 Şubat 2014 tarihinde Wayback Machine sitesinde arşivlendi.

Vikikitap
Vikikitapta bu konu hakkında daha fazla bilgi var:
PC Programlama Dilleri