Operatörler
Matematiksel
Karşılaştırma
Mantıksal
Olmak üzere üç grupta inceleyeceğiz.
Matematiksel Operatörler:
Bu operatörleri 7 tanedir.
+ Toplama işlemi
- Çıkarma işlemi
* Çarpma işlemi
/ Bölme işlemi
^ Üs alma işlemi
( ) Parantez işlemleri
\ Tam sayılı bölme işlemi
( ) parantezler işlemler arasında önceliği belirlemede kullanılır. İşlemlerde öncelik sırası, (), ^, * / , + - , soldan sağadır.
Karşılaştırma Operatörleri:
İki değer arasında karşılaştırma yapılırken kullanılır. Karşılaştırma sonucu true (doğru) yada false (yanlış) olabilir. Doğru sonuçlar için 1, yanlış değerler için 0 değeri döndürülür.
Sayısal ifadeleri karşılaştırırken 7 farklı operatör kullanılabilir.
Operatör Durum Yazımı
= eşitlik a=b
< küçüktür a<b
> büyüktür a>b
<>, >< eşitsizlik a<>b , a><b
<= , =< küçük eşit a<=b , a=<b
>=, => büyük eşit a>=b , a=>b
String (karekter)ifadelerde:
String değerleri karşılaştırırken Like operatöründen yararlanılır. Bu ifade büyük küçük karakter ayrımı yapar.
Option Compare Text
__________________
sonuc= A Like a
Bu ifade sonucu True değeri alınır. Bu şekilde ifadeleri karşılaştırırken Bazı karakterlerin yerine geçmesi için * kullanılır.
Sonuc True olur. ? işareti l karakteri yerine kullanıldı.
Mantıksal Operatörler:
Birden fazla karşılaştırmayı aynı anda yapmak için kullanılır. Karşılaştırma sonucu True yada False dır.
And Operatörü:
Bu operatör bütün değerler True ise sonucu True=1 verir. Herhangi bir False sonuç False=0 dır.
1.Değer Operator 2.Değer Sonuç
1 And 1 1
1 And 0 0
0 And 1 0
0 And 0 0
Örneğin: if yas>15 And yas<30 Then Siz gençsiniz ifadesinde yas 15 den büyük ve 30 dan küçük olması durumunda Then den sonraki komutlar işletilecektir.
Or Operatörü:
Bu operatör bütün değerler yada herhangi biri True ise True=1, hepsi False ise sonucu False=0 olarak verir.
1.Değer Operator 2.Değer Sonuç
1 Or 1 1
1 Or 0 1
0 Or 1 1
0 Or 0 0
Örneğin: if boy>190 Or boy<165 then İşe boydan dolayı alınamıyorsunuz ifadesinde boy 190 dan büyük yada 165 den küçük olması durumunda then den sonraki komutlar işletilecektir.
Not Operatörü:
Bu operatör ifadenin tersini şart koşar.
Değer Operatör Sonuç
1 Not 1
0 Not 0
Örneğin: if Not Text1.text= Then ... ifadesinde text1in içi boş değilken thenden sonraki komutları işlet anlamı vardır.
VBA KODLARININ ANLAMLARI***************************************************************
Activate= Belirtilen nesneyi aktifleştirir
ActiveCell=Aktif pencerenin aktif hücresi
ActiveSheet= Aktif Çalışma Kitabının aktif Çalışma Tablosu
ActiveWorkbook=Excel'deki aktif Çalışma Tablosu
Add=Aynı tipte yeni bir nesne oluşturur (ekle)
Adres = Address
After= Sonra
Alansay = Areas
Alttoplam = Subtotal
Application=Excel uygulamasının geneli
Ara = Lookup
Array=Dizi
AŞaĞiyuvarla = Rounddown
Ay = Month
Azalanbakİye = Db
BaĞ_deĞ_dolu_say = Counta
Before =Önce
False=Hayır
Field =Alan
Find=Bir VB kodu içerisinde bir metni aramak için kullanılır.
Goto=Git
Intersect= iki yada daha fazla aralığın kesişen hücreleri üzerinde işlem yapmayı sağlar
Last=Son
Left=Sol
Name= İsim
Not=Değil
Nothing=Hiçbir şey,önemsiz
Proper=Doğru,gerçek
Protect=Korumak
Right=sağ
Searchdirection=Arama Yönü
SearchOrder=Arama
SetFocus=ilgili yere koyma
Special=özel sıradan olmayan
BİrleŞtİr = Concatenate
Bold=Metnin harflerinin kalın görünmesi
BoŞluksay = Countblank
BoŞtur = Isblank
BugÜn = Today
Bul = Find
BÜyÜk = Large
BÜyÜkharf = Upper
Caption=Başlık
Chart=Bir Çalış?ma Tablosundaki bir Grafik
Clear= Belirtilen alanın silinmesini sağlar
Close= Belirtilen nesneyi kapatır
Column= Bir alandaki ilk kolonu tanımlayan sayı
ColumnA=Bir sütundaki dolu hücreleri sayar
Columns("A")=birinci kolon
Columns(1)=Birinci kolon
Columns=Çalışma kitabındaki tüm kolonlar
ColumnWidth=Belirtilen alanda kolonların genişliği
Constants=Sabit
Copy= Alanın panoya (clipboard) kopyalanmasını sağlar.
Çİft = Even
DeĞİl = Not
DeĞİŞtİr = Replace
Delete=Belirtilen nesneyi siler
Destination=Gidilecek yer
Drag=Sürükleme,Taşıma
DÜŞeyara = Vlookup
EĞer = If
EĞersay = Countif
Empty=Boş
Enabled=imkan tanıma
EnÇok_olan= Mode
Entire=Bütün
Esayiysa = Isnumber
Etkİn = Effect
Etopla = Sumif
First=İlk kayıt
GÜn = Day
HaftaningÜnÜ = Weekday
Haftasay = Weeknum
Hight=Nesnenin yüksekliği
HÜcre = Cell
Italic= Metnin harflerinin yatık görünmesi
İndİs = Index
İŞgÜnÜ = Workday
item=Adet,tane,parça .
KaÇinci = Match
Karakter = Char
Kaydir = Offset
Kuvvet = Power
KÜÇÜk = Small
KÜÇÜkharf = Lower
Len fonksiyonu=Bir bilginin karakter olarak uzunluğunu verir like= tüm alanlara ekle ve veriyi aynı metin kutusundan alsın
MaxLength=maxsimum uzunlık
Mid=fonksiyonu bir metnin ortasından belirlediğin sayı kadar karakter
Move=Taşımak
None=Hiçbiri
Open=Çalışma Kitabını açar
PrintOut=Sayfayı yazdır
PrintPreview=Baskı önizleme
Range=Bir ya da daha çok hücre
Row=Satır Bir alandaki ilk satırı tanımlayan sayı
RowHeight=Belirtilen alandaki satırların yüksekliği
Rows(1)=Birinci satır
Rows= Çalışma kitabındaki bütün satırlar
Satir = Row
Satirsay = Rows
Selection=Seçilen alan ya da nesne
Size=Boy
Size=Büyüklük
Soldan = Left
SÜre = Duration
SÜtun = Column
SÜtunsay = Columns
Şİmdİ = Now
TamİŞgÜnÜ = Networkdays
Tamsayi = Int
Tarİh = Date
Tarİhsayisi = Datevalue
Topla = Sum
Topla.Çarpim = Sumproduct
total=Toplam
TÜr = Type
Type=Tip
Uzunluk = Len
Üs = Exp
Val=Bir ifadenin içindeki ilk rakam veya rakamları alır
Value= Bir hücrenin içindeki değer
Ve = And
VISIBLE =Görünürlük
What:Ne,Neyi
Width: Nesnenin genişliği
With=İle,Birlikte
Workbook= Excel Çalışma Kitabının tamamı
Worksheet= Bir Çalışma Kitabındaki bir Çalışma Tablosu
xlByRows=Satırlarda
Yada = Or
YanliŞ = False
Yil = Year
Yiloran = Yearfrac
Yİnele = Rept
Yoksay = Na
Yoktur = Isna
Yukariyuvarla = Roundup
Yuvarla = Round
Zaman = Time
Zamansayisi = Timevalue
MAKRO KAYDETME İŞLEMİ*****************************************************************
Makrolar sık sık yapılan işleri otomatikleştirmek için hazırladığımız tanımlardır. Daha sonra bu işlemi yeniden yapmak için makroyu çalıştırırız. Özellikle, Microsoft Excel'de belirli bir işi süreli (yinelemeli) yapıyorsanız, örneğin bir grafik çizmek ve yazıcıya yollamak gibi; bu işi makro ile otomatik hale getirebilirsiniz.
NOT: Makro, belli bir işi yapmak üzere tasarladığınız ve istediğiniz an çalıştırabileceğiniz bir Visual Basic modulü içinde depolanmış komutlar ve fonksiyonlar dizisidir. Excel içinde kayıt ederek (record) ya da Visual Basic editörü ile program yazarak yapılabilir.
MAKRO TÜRLERİ
Makroları, oluşturma yöntemine göre iki grupta toplayabiliriz.
. Kayıt (Record) Yöntemi ile makro oluşturma.
. Visual Basic Editörü ile makro oluşturma. Bu işlem program yazmak anlamına geliyor.
Kaydı bitirmek için Stop Recording (Kaydı Durdur) düğmesine tıklayın..
İPUCU: Makro kayıt ederken genellikle temiz (hatasız) bir kullanım gerekir. Eğer kayıt sırasında hata yapılırsa bu hatalar makronun çalıştırılmasında da karşımıza gelir. Bunun dışında kayıt ederken durum çubuğunda "Recording" açıklaması yer alır.
DEĞİŞKEN TANIMLAMA**********************************************************************
Visual Basicte degisken denen ve degerleri gecici veya surekli olark bilgisayar hafizasinda
belirli bir islem icin tutan kaliplar vardir.
Yani degiskenler bazi degerleri hafizada tutmaya yarar. Bu Vb in en basit konusudur.
Visual basicteki en önemli konulardan bir tanesi de değişken tanımlamadır.
Değişken üzerinden yapacağınız işlemlerde en doğru sonucu elde etmek istiyorsanız
mutlaka tanımlı olanları kullanmanız gerekir. Özellikle de sayısal değişkenlerde.
Dim a,b, naber, iyi , ok
Diye birden fazla degiskeni bir anda belirleyebiliriz. Tabi her degisken belirledigimizde
hafizadan kucukte olsa biraz kullanir. Iste bu yuzden mumkun oldugunca az degisken kullanmaliyiz
Değişken tanımlama "DIM" komutu ile yapılır. Genel olarak kullanımı
DIM (değişken_adı) AS (değişken_tipi)
parantez içerisine aldıklarım sizin belirleyeceğiniz şeylerdir.
Bu şekilde bir değişkene "SEN ŞUSUN" denilir.
String : Karakter değişkenidir.
Byte : Sayısal değişken (Max:255)
İnteger : Sayısal değişken (Max: 65535)
Long : Sayısal değişken (Max : 2 milyar küsür.
Binary : Sayısal değişken (10101 gibi)
Double : Sayısal değişken (sınırı yok. Bunun artısı herhangi bir bölme veya çıkartma gibi
işlemlerde virgülden sonraki rakamları da kaale alması. İnteger bunu kaale almaz.
Büyüğe veya Küçüğe yuvarlar)
Database : Adı üstünde database.
Recordset : Database içerisindeki bir tablo
Boolean : True (doğru) ve false (yanlış) döndüren değişken.
IF KONTROL YAPISI**************************************************************************
Genel olarak bu komut yapısı şu şekilde yazılır.
If Kosul Then
Kosul dogru ise yapılması istenen işlemler.
Endif
Kullandıgımız her If kontrolu için mutlaka bir Endif kullanmalıyız. Bu kontrol yapısının sonlandıgını belirtir.
Örnek:
If ad="FATIH" Then
Maas=10000000
Endif
Eger koşul gerçekleşmemiş ise yapılması istenen bazı işlemler varsa o zaman şu şekilde bir kontrol yapısını kullanabiliriz.
If Kosul Then
Kosul dogru ise yapılması istenen işlemler.
Else
Kosul yanlış ise yapılması istenen işlemler.
Endif
Aynı anda bir kaç koşul için karşılaştırma yapılmak isternirse;
If Kosul Then
Kosul dogru ise yapılması istenen işlemler.
Elseif Kosul1 Then
Kosul1 dogru ise yapılması istenen işlemler.
Elseif Kosul2 Then
Kosul2 dogru ise yapılması istenen işlemler.
Else
Bütün kosullar yanlış ise yapılması istenen işlemler.
Endif
yapısı kullanılır. Bu yapıda mutlaka Else blogunun bulunmasına gerek yoktur. Burada eger Kosul dogru ise ilk Thenden sonraki satırlar çalıştırılarak Elseif ifadesine kadar icra edilirler. Daha sonra Endif ifadesinden sonraki satır icra edilir.Eger Kosul yanlış ise Kosul1 ifadesi kontrol edilir.Dogru ise buradaki then den sonraki satırlar çalıştırılır. Yanlış ise Kosul2ye bakılır. Eger bu kosulda yanlıs ise Else ifadesinden sonraki satırlar çalıştırılır.
SELECT CASE KONTROL YAPISI**************************************************************
Bu kontrol yapısında sadece bir degişkenin durum kontrolü yapılır.Kontrolü yapılacak degişkenin genel olarak alabilecegi degerler belirli ise bu yapının kukllanılması If yapısına göre daha avantajlıdır. Yazılış biçimi genel olarak aşagıdaki şekildeki gibidir
Select Case Degisken
Case Deger1
Degisken=Deger1 oldugu durumda yapılması istenen işlemler
Case Deger2
Degisken=Deger2 oldugu durumda yapılması istenen işlemler
Case Else
Degisken yukarıdaki degerler den hicbirine eşit degil ise yapılacak işlemler
End Select
Kullandıgımız her Select ifadesi için bir End Select kullanmalıyız.
VBasic te kullanılan bazı fonksiyonlar**************************************************************
Len() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel ya da başka bir tipte bilginin uzunluğunu bulur.
Ör:
Len ("Visual Basic") uzunluk 12 olur
Len ("jebeji") uzunluk 6 olur
Left() { Right() } Fonksiyonu:
Kendisine parametre olarak verilen variant ya da karaktersel bir bilginin soldan {sağdan} başlamak üzere istenen kadar karakterini almak için kullanılır.
Ör:
Left ("Visual Basic",6) sonuç "Visual" olur
a = "jebeji"
Left (a,3) sonuç "jeb" olur
Right (a,3) sonuç "eji" olur
Lcase$() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel bilgilerin içinde bulunan büyük harfleri, küçük harfe dönüştürür.
Ör:
Lcase$ ("ViSuAl BaSiC") sonuç "visual basic" olur
Ucase$() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel bilgilerin içinde bulunan küçük harfleri, büyük harfe dönüştürür.
Ör:
Lcase$ ("ViSuAl BaSiC") sonuç "VISUAL BASIC" olur
Mid() Fonksiyonu:
Üç parametreden oluşmaktadır. 1. parametre, bakılacak bilgi, 2. parametre, verilen bilgide başlanacak yer, 3. parametre ise kaç karakter alınacağını belirtir.
Ör:
Mid ("jebeji", 1, 4) sonuç "jebe" olur
Str$() Fonksiyonu:
Kendisine parametre olarak verilen sayısal bilgileri, karaktersel bilgiye dönüştürür.
Ör:
Str$ (123) + Str$ (456) sonuç "123456" olur
Val() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel bilgileri, sayısal bilgiye dönüştürür.
Ör:
Val ("123jebeji") sonuç 123 olur
Val ("jebeji123") sonuç 0 olu
WITH İŞLEMLERİ*****************************************************************************
Private Sub UserForm_Initialize()'COMBOBOXA ATANAN DEĞERLER
With ComboBox1
.AddItem "pazartesi"
.AddItem "salı"
.AddItem "çarşamba"
End With
End Sub
Private Sub CommandButton1_Click() 'LABELE DEĞER VE GENİŞLİK ATIYORUZ
With Label1
.Caption = "TEST"
.Width = 20
End With
End Sub
Private Sub UserForm_Initialize() 'LİSTBOX ÖZELLİKLERİ
With ListBox1
.RowSource = "A1:A20"
.ColumnCount = 2
.ColumnWidths = "20;20;20"
End With
End Sub
VİSUAL BASICTE DÖNGÜ KOMUTLARI
FOR NEXT DÖNGÜSÜ*************************************************************************
Bu komutlar belirli işlemleri belirli sayıda veya herhangi bir şart sağlanana kadar tekrarlamak amacı ile kullanılırlar. Bu komutlar aşagıda verilmiştir.
For each Döngüsü
For .. Next Döngüsü
Do While . Loop Döngüsü
For Next Döngüsü :
Bütün dillerde bulunan döngü yapısıdır. Genel yazım şekli aşagıdaki şekildeki gibidir.
For sayac=başlangıç To bitiş Step artım
Arada işletilecek komutlar
Next sayac
Bu döngü sayac baslangıc degerınden bitiş degerine kadar çalıştırılır. Sayaç başlangıc degerinde iken döngü içindeki komutlar işletilir. Next ifadesine gelindiginde tekrar For satırına gelinir. Sayac degeri artım kadar artırılır. Eger Sayac degeri Bitis degerini geçmiş ise Next adımından sonraki adım işletilir. Burada step degerine pozitif veya nekatif bir deger verşilebilir. Eger nekatif deger verilirse sayac her seferinde 1 azaltılır.Step adımını vermezsek bu pozıtif 1 (+1) anlamındadır ve her adımda sayac bir artırılacaktır.Biz içiçe For Next döngüleride kurabiliriz. Ancak burada şuda dikkat edilmelidir. En son başlatılan For döngüsü ilk önce bitirilmelidir.
For sayac1=basla1 To son1
Komutlar
For sayac2=basla2 To son2
Komutlar
Next sayac2
Next sayac1
Biz buradaki sayıyı daha da artırabiliriz.
Aşagıdaki şekideki gibi bir kullanım hatalıdır
For sayac1=basla1 To son1
Komutlar
For sayac2=basla2 To son2
Komutlar
Next sayac1
Next sayac2 Burada For döngüsü işletilirken hata oluşacaktır(çünkü En son başlatılan For döngüsü ilk önce bitimemiştir.).
Sub ForNext()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "x"
Next i
End Sub
yukarıda a1 den a10 kadar olan hücrelere x işareti koyar
FOR EACH DÖNGÜSÜ************************************************************************
yapılacak işlemin adresi belli olduğu zamanlarda ("A1:A20") gibi kullanılır
Bir dizi içerisindeki elemanların tamamı için bir işlemin yapılmasında yada bir doküman
içerisinde bir kelimenin aranması gibi tekrar gerektiren durumlarda kullanılır
Kullanım Şekli:
For Each Eleman In Grup
?????
????? (Komutlar)
?????
Next Eleman
Sub Doldur()
For Each hucre In Range("A1:A5")
hucre.Value = "Excel"
Next hucre
End Sub
A1:A5 e kadar excel yazar
DO WHİLE DÖNGÜSÜ************************************************************************
Bu dögünün genel yazim sekli asagidaki sekildeki gibidir.
Do While Kosul
Komutlar
Loop
Burada önce Kosula bakilir. Eger kosul dogru ise aradaki satirlar çalistirilir taki Loop satirina kadar. Loop satirinda tekrar While satirina dönülür. Kosul tekrar kontrol edilir. Eger dogru ise ara satirlar tekrar çalistirilir. Kosul yanlis ise Loop tan sonraki ilk satirdan program çalismaya devam eder. Içiçe Do While döngüleride kurabiliriz.
Do While Kosul1
.
Do While Kosul2
Komutlar
Loop
..
Loop
Her Do While için mutlaka bir Loop yerlestirmeliyiz.
Örnek :
While: (süre, zaman) oluncaya kadar
Loop: Döngü, çevrim
Sub test1() 'A1 1 DEN BÜYÜKSE KOD İŞLETİLİR
Do While Range("A1") > 1
MsgBox "A1 BİRDEN BÜYÜK"
Exit Do
Loop
End Sub
KİTAP İŞLEMLERİ*****************************************************************************
Sub test()'VERİLEN ADRESTEKİ KİTABI AÇAR
Workbooks.Open "c:\test.xls"
End Sub
Sub test1()'VERİLEN İSİMDEKİ AÇIK OLAN KİTABI KAPAR
Workbooks("test.xls").Close
End Sub
Sub test2()'VERİLEN İSİMDEKİ AÇIK OLAN KİTABI KAYDEDER
Workbooks("test.xls").Save
End Sub
Sub test3()' VERİLEN ADRESTEKİ ADRESTEKİ DOSYAYI SİLER
Kill ("c:\test.xls")
End Sub
Sub test4()'ÇALIŞMA KİTABI ADINI AKTİF HÜCREYE YAZDIRMA
ActiveCell.Value = ActiveWorkbook.FullName
End Sub
Sub test5()'AKTİF ÇALIŞMA KİTABINI KAYDEDİP KAPAR
ActiveWorkbook.Close True
End Sub
Sub auto_open()'VERİLEN ADRESTE DOSYA YOKSA KİTABI KAPAR
yol = Dir("D:\********s and Settings\ev\Desktop\test.txt")
If yol = "" Then
ActiveWorkbook.Close True
End If
End Sub
sub auto_open()'EXCELİ GİZLER FORMU AÇAR
Application.Visible = False 'uygulamayı gizle
userform1.show ' formu göster
End Sub
SAYFA İŞLEMLERİ*****************************************************************************
Sub auto_open() 'EXCELİN AÇILIŞINDA İSTENEN SAYFANIN GELMESİ
Sheets("sayfa1").Select
End Sub
Sub test1() 'İSTENEN SAYFAYI SEÇMEK
Sheets("sayfa1").Select
End Sub
Sub test2() 'İSTENEN SAYFAYI GİZLEMEK
Sheets("sayfa1").Visible = False
End Sub
Sub test3() 'İSTENEN SAYFAYI GÖSTERMEK
Sheets("sayfa1").Visible = True
End Sub
Sub test4() 'İSTENEN SAYFAYI SİLMEK
Sheets("sayfa1").Delete
End Sub
Sub test5() 'ÇALIŞMA KİTABINDAKİ SON SAYFA
Sheets(Sheets.Count).Select
End Sub
Sub test6() 'İSTENİLEN SAYFAYI AKTİF HALE GETİRME
Sheets("sayfa1").Activate
End Sub
Sub test7() 'İSTENİLEN SAYFAYI BİR DEĞİŞKENE ATAMA
Set s1 = Sheets("sayfa1")
s1.Select
End Sub
Sub test8() 'YENİ BİR SAYFA EKLER
Sheets.Add
End Sub
Sub test9() 'SAYFA2 NİN ÖNÜNE YENİ BİR SAYFA EKLER
Sheets.Add after:=Sheets("sayfa2")
End Sub 'sayfa ekleme (en sona)
Sub SayfaEklemek()
Worksheets.Add After:=Sheets(Sheets.Count)
End Sub
Sub test10() 'İSTENEN SAYFANIN İSMİNİ DEĞİŞTİRİR
Sheets("sayfa1").Name = "test"
End Sub
Sub test11() 'İSTENEN SAYFAYI UYARI VERMEDEN SİLER
Application.DisplayAlerts = False
Sheets("sayfa1").Delete
Application.DisplayAlerts = True
End Sub
Sub test12() 'İSTENEN SAYFAYA KORUMA KOYAR
Sheets("sayfa1").Protect "123"
End Sub
Sub test13() 'İSTENEN SAYFAYA KORUMASINI KALDIRIR
Sheets("sayfa1").Unprotect "123"
End Sub
Sub test14() 'TÜM SAYFALARA KORUMA KOYAR
For i = 1 To Sheets.Count
Sheets(i).Protect "123"
Next
End Sub
Sub test15() 'TÜM SAYFALARA KORUMAYI KALDIRIR
For i = 1 To Sheets.Count
Sheets(i).Unprotect "123"
Next
End Sub
Sub test16() 'SAYFAYI YAZDIRMA
Sheets("sayfa1").PrintOut
End Sub
Sub test17() 'SAYFAYI BASI ÖN İZLEME
Sheets("sayfa1").PrintPreview
End Sub
Sub test18() 'SAYFA TAM EKRAN
Application.DisplayFullScreen = True
End Sub
Sub test19() 'SAYFA NORMAL EKRAN
Application.DisplayFullScreen = False
End Sub
Sub test20() 'SAYFNIN KULLANIM ALANINI BELİRLEME
Sheets("sayfa1").ScrollArea = "a1:a10"
End Sub
Sub test1() 'SAYFNIN KULLANIM ALANINI KALDIRMA
Sheets("sayfa1").ScrollArea = ""
End Sub 'veri isimli sayfanın kopyasını oluşturur
Sub sayfakopyala()
isim = InputBox("sayfa ismini giriniz")
Sheets("veri").Copy Sheets(Sheets.Count)
ActiveSheet.Name = isim
End Sub
HÜCRE İŞLEMLERİ***************************************************************************
Range = Hücre (A1)
ActiveCell = Aktif Hücre
Select =Seç
Application = Uygulama
Range("A3
8").Select 'Seç
Range("C5").Activate 'seçtiktan sonra Aktif Et
Range("B2").select
Application.Range("B2").Select
[B2].Select
Range("A1
10").Select
birden fazla sütun ve hücre seçme
Range("A1:A10,C1:C10,E1:E10").Select
A1 ve D10 Hücrelerini seç
Range("A1","D10").Select
Ad tanımı yapılmış hücreleri seçmek
Range("veri").Select
Aşağıdaki örnekte ise A1 hücresi ile Ad verdiğimiz hücrelerin seçimi
Range("A1",Range("veri")).Select
HÜCRE SEÇİM İŞLEMLERİNİ SADELEŞTİRME
[B2]
[A1
10]
[A1:A10,C1:C10,E1:E10]
[veri]
Sub test1() 'BELİRLENEN HÜCREYE DEĞER ATAMA
Sheets("sayfa1").Range("a1") = "ali"
End Sub
Sub test2() 'BELİRLENEN HÜCRENİN YAZI FONTUNU DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.Size = 20
End Sub
Sub test3() 'BELİRLENEN HÜCRENİN YAZI FONTUNU KALIN YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = True
End Sub
Sub test4() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İNCE YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = False
End Sub
Sub test5() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İTALİK YAPMA
Sheets("sayfa1").Range("a1").Font.Italic = True
End Sub
Sub test6() 'BELİRLENEN HÜCRENİN YAZI FONTUNUN İTALİĞİNİ İPTAL ETME
Sheets("sayfa1").Range("a1").Font.Italic = False
End Sub
Sub test7() 'BELİRLENEN HÜCRENİN DOLGU RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Interior.ColorIndex = 6
End Sub
Sub test8() 'BELİRLENEN HÜCRENİN FONT RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.ColorIndex = 3
End Sub
Sub test9() 'BELİRLENEN HÜCREYE FORMÜL YAZDIRMA
Sheets("sayfa1").Range("a1").Formula = "=B1+C1"
End Sub
Sub test10() 'AKTİF HÜCRENİN BELİRLENEN UZAKLIĞINA DEĞER ATAMA
ActiveCell.Offset(0, 5) = "ALİ"
End Sub
Sub test11() 'BÜTÜN HÜCRELERİ SEÇER
Sheets("sayfa1").Select
Sheets("sayfa1").Cells.Select
End Sub
Sub test12() 'AKTİF HÜCRENİN SUTUNUNU TAMAMEN SEÇER
ActiveCell.EntireColumn.Select
End Sub
Sub test13() 'AKTİF HÜCRENİN SATIRINI TAMAMEN SEÇER
ActiveCell.EntireRow.Select
End Sub
Sub test14() 'SEÇİLİ HÜCRELERİN SATIRINI TAMAMEN SEÇER
Selection.EntireRow.Select
End Sub
Sub test15() 'AKTİF HÜCRENİN BİR ALTINI SEÇER
ActiveCell.Offset(1, 0).Select
End Sub
Sub test16() 'AKTİF HÜCRENİN BİR ÜSTÜNÜ SEÇER
ActiveCell.Offset(-1, 0).Select
End Sub
Sub test17() 'AKTİF HÜCRENİN BİR SAĞINI SEÇER
ActiveCell.Offset(0, 1).Select
End Sub
Sub test18() 'AKTİF HÜCRENİN BİR SOLUNU SEÇER
ActiveCell.Offset(0, -1).Select
End Sub
Sub test19() 'AKTİF HÜCRENİN ALTINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlDown)).Select
End Sub
Sub test20() 'AKTİF HÜCRENİN ÜSTÜNDEKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlUp)).Select
End Sub
Sub test21() 'AKTİF HÜCRENİN SAĞINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
End Sub
Sub test22() 'AKTİF HÜCRENİN SOLUNDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
End Sub
Sub test23() 'AKTİF HÜCRENİN ETRAFINDAKİ TÜM HÜCRELERİ SEÇER
ActiveCell.CurrentRegion.Select
End Sub
SAY = WorksheetFunction.CountA([b1:b5000]) 'VERİLEN ADRESTEKİ DOLU OLAN SON HÜCREYİ SEÇER
HÜCRE İŞLEMLERİ***************************************************************************
Range = Hücre (A1)
ActiveCell = Aktif Hücre
Select =Seç
Application = Uygulama
Range("A3
8").Select 'Seç
Range("C5").Activate 'seçtiktan sonra Aktif Et
Range("B2").select
Application.Range("B2").Select
[B2].Select
Range("A1
10").Select
birden fazla sütun ve hücre seçme
Range("A1:A10,C1:C10,E1:E10").Select
A1 ve D10 Hücrelerini seç
Range("A1","D10").Select
Ad tanımı yapılmış hücreleri seçmek
Range("veri").Select
Aşağıdaki örnekte ise A1 hücresi ile Ad verdiğimiz hücrelerin seçimi
Range("A1",Range("veri")).Select
HÜCRE SEÇİM İŞLEMLERİNİ SADELEŞTİRME
[B2]
[A1
10]
[A1:A10,C1:C10,E1:E10]
[veri]
Sub test1() 'BELİRLENEN HÜCREYE DEĞER ATAMA
Sheets("sayfa1").Range("a1") = "ali"
End Sub
Sub test2() 'BELİRLENEN HÜCRENİN YAZI FONTUNU DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.Size = 20
End Sub
Sub test3() 'BELİRLENEN HÜCRENİN YAZI FONTUNU KALIN YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = True
End Sub
Sub test4() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İNCE YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = False
End Sub
Sub test5() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İTALİK YAPMA
Sheets("sayfa1").Range("a1").Font.Italic = True
End Sub
Sub test6() 'BELİRLENEN HÜCRENİN YAZI FONTUNUN İTALİĞİNİ İPTAL ETME
Sheets("sayfa1").Range("a1").Font.Italic = False
End Sub
Sub test7() 'BELİRLENEN HÜCRENİN DOLGU RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Interior.ColorIndex = 6
End Sub
Sub test8() 'BELİRLENEN HÜCRENİN FONT RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.ColorIndex = 3
End Sub
Sub test9() 'BELİRLENEN HÜCREYE FORMÜL YAZDIRMA
Sheets("sayfa1").Range("a1").Formula = "=B1+C1"
End Sub
Sub test10() 'AKTİF HÜCRENİN BELİRLENEN UZAKLIĞINA DEĞER ATAMA
ActiveCell.Offset(0, 5) = "ALİ"
End Sub
Sub test11() 'BÜTÜN HÜCRELERİ SEÇER
Sheets("sayfa1").Select
Sheets("sayfa1").Cells.Select
End Sub
Sub test12() 'AKTİF HÜCRENİN SUTUNUNU TAMAMEN SEÇER
ActiveCell.EntireColumn.Select
End Sub
Sub test13() 'AKTİF HÜCRENİN SATIRINI TAMAMEN SEÇER
ActiveCell.EntireRow.Select
End Sub
Sub test14() 'SEÇİLİ HÜCRELERİN SATIRINI TAMAMEN SEÇER
Selection.EntireRow.Select
End Sub
Sub test15() 'AKTİF HÜCRENİN BİR ALTINI SEÇER
ActiveCell.Offset(1, 0).Select
End Sub
Sub test16() 'AKTİF HÜCRENİN BİR ÜSTÜNÜ SEÇER
ActiveCell.Offset(-1, 0).Select
End Sub
Sub test17() 'AKTİF HÜCRENİN BİR SAĞINI SEÇER
ActiveCell.Offset(0, 1).Select
End Sub
Sub test18() 'AKTİF HÜCRENİN BİR SOLUNU SEÇER
ActiveCell.Offset(0, -1).Select
End Sub
Sub test19() 'AKTİF HÜCRENİN ALTINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlDown)).Select
End Sub
Sub test20() 'AKTİF HÜCRENİN ÜSTÜNDEKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlUp)).Select
End Sub
Sub test21() 'AKTİF HÜCRENİN SAĞINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
End Sub
Sub test22() 'AKTİF HÜCRENİN SOLUNDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
End Sub
Sub test23() 'AKTİF HÜCRENİN ETRAFINDAKİ TÜM HÜCRELERİ SEÇER
ActiveCell.CurrentRegion.Select
End Sub
SAY = WorksheetFunction.CountA([b1:b5000]) 'VERİLEN ADRESTEKİ DOLU OLAN SON HÜCREYİ SEÇER
SATIR SÜTUN İŞLEMLERİ*********************************************************************
Sub test1() 'A SÜTÜNUNU SEÇER
Range("a:a").Select
End Sub
Sub test2() 'A SATIRINI SEÇER
Range("1:1").Select
End Sub
Sub test3() 'A SÜTÜNUNU SEÇER
Columns("A").Select
End Sub
Sub test4() 'A SATIRINI SEÇER
Rows(1).Select
End Sub
Sub test5() 'A SÜTÜNUNU GİZLER
Columns("A").Hidden = True
End Sub
Sub test6() 'A SÜTÜNUNU GÖSTERİR
Columns("A").Hidden = False
End Sub
Sub test7() 'A SATIRI GİZLER
Rows("1:1").Hidden = True
End Sub
Sub test8() 'A SATIRI GÖSTERİR
Rows("1:1").Hidden = False
End Sub
Sub test9() 'A SÜTÜN GENİŞLİĞİNİ OTOMATİK AYARLAR
Columns("A").EntireColumn.AutoFit
End Sub
Sub test10() 'A1 SATIR GENİŞLİĞİNİ OTOMATİK AYARLAR
Rows("1:1").EntireRow.AutoFit
End Sub
MODÜL İŞLEMLERİ**************************************************************************
Modül
Modül, fonksiyon ve yordamlardan oluşan kod sayfasıdır. İki tür Modül bulunur
Standart modül ve Sınıf (CLASS) modülü. Çoğunlukla Standart modüller kullanılır
Standart modüller kullanım kolaylığı ve amaca yönelik olması bakımından sık
tercih edilir.
Standart modüllerdeki kodlar, istendiğinde diğer modüller ya da formlar
içerisinden çalıştırılabilir.
FORM İŞLEMLERİ****************************************************************************
Sub test1() 'FORM AÇAR
UserForm1.Show
End Sub
Sub test2() 'FORM KAPAR
Unload Me
End Sub
Sub AUTO_OPEN() 'EXCELİ KAPAR FORMU AÇAR
Application.Visible = False
UserForm1.Show
End Sub
Sub AUTO_CLOSE() 'EXCELİ SERBEST BIRAKIP KAYDEDER VE FORMU KAPAR
Application.Visible = True
ActiveWorkbook.Save
Unload Me
End Sub
PROPERTİES ÖZELLİKLERİ*******************************************************************
Visual Basicin birçok kontrolünü Properties kutucuğu yoluyla değiştirme imkanı Form Editörü sayesinde çok esnek bir hale getirilmiş.
Properties kutusunun en güzel özelliği listeden seçilen kontrol özelliklerinin kısa açıklamalarını kutun hemen altında bir pencerede görebilmeniz.
Bir Visual Basic kontrolünü seçtiğinizde ve properties kutusuna baktığınızda onun kullanabileceğiniz tüm özelliklerini görürsünüz.
MSGBOX İŞLEMLERİ*************************************************************************
vbYesNo: Evet Hayır tuşları
if MsgBox ("işlem yerine getirilsinmi.", vbYesNo) = vbNo Then
'eğer vbYesNo(evet hayır)dümesi ekliyoruz =vbNO dersek hayıra tıkladığımızda alt koda geçmez
exit Sub
'kodu sonlandırıyoruz
End if
İNPUTBOX İŞLEMLERİ************************************************************************
Private Sub CommandButton1_Click()
formac = InputBox("şifreyi giriniz") 'değişken atayıp açıklama giriniz
If formac = "123" Then 'eğer inputbox içeriği 123 se
UserForm1.Show 'userformu aç
Exit Sub: End If 'koda son ife son
End Sub
LİSTBOX İŞLEMLERİ**************************************************************************
'listboxta gösterilen veriyi sayfada seçer
'listindex değeri listboxtan seçilen satırın index değeridir(sira değeri)
'Ve bu değer 0 (sıfır) dan başlar
Private Sub ListBox1_Click()
Cells(ListBox1.ListIndex + 1, 2).Select
'listbox üzerinden sayfadaki 1 . satır ve 2. sütundan verileri seçer
End Sub
Private Sub UserForm_Initialize()
'otomatik algılaması için formun intialize olayına yazıyoruz
ListBox1.RowSource = "Sayfa1!A1:A10" 'lisbox'ta gösterilecek hücre aralığı
ListBox1.ColumnCount = 5 ' lisbox'ta ki sütun sayısı
ListBox1.ColumnWidths = 100 & ";" & 70 'lisbox'taki sütunların genişliği
ListBox1.ColumnWidths = "30;30;20" 'lisbox'taki sütunların genişliği
ListBox1.ColumnHeads = True 'listboxta birinci satırı sabitler tıklanmaz
End Sub
'sadece veri olan satırları listbox ta listele
ListBox1.RowSource = "A1:A" & WorksheetFunction.CountA(Range("A1:A65000"))
'LİSTBOXTA VERİ SÜZME
Private Sub ComboBox1_Change()
With ListBox1
.Clear
.ColumnCount = 2
End With
For suz = 1 To WorksheetFunction.CountA([B1:B5000])
If Range("B" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("B" & suz)
ListBox1.List(s - 1, 1) = Range("C" & suz)
End If
Next
End Sub
'LİSTBOXTAN SÜZÜLENLERİ TEXTBOXTA TOPLAR
Private Sub ComboBox1_Change()
With ListBox1
.Clear
.ColumnCount = 2
End With
For suz = 1 To WorksheetFunction.CountA([B1:B65000])
If Range("B" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("b" & suz)
ListBox1.List(s - 1, 1) = Range("C" & suz)
TextBox1 = Val(TextBox1.Text) + ListBox1.List(s - 1, 1)
End If
Next
End Sub
TEXTBOX İŞLEMLERİ************************************************************************
TextBox1 = UCase(TextBox1) 'YAZILANI BÜYÜK HARFE ÇEVİRİR
TextBox1 = LCase(TextBox1) 'YAZILANI KÜÇÜK HARFE ÇEVİRİR
'veri girişlerinde satır numarası verme
Sub test()
Range("a1") = "sıra no"
Range("b1") = "isim"
saysira = WorksheetFunction.CountA([b1:b65536])
For sira = 1 To saysira
Cells(sira + 1, 1) = sira
Next
End Sub
'Texboktan hücrelere alt alta veri girerken aynı veri girilirse uyarı verir
Sub ayniolanibul()
Dim bak As Range '****
'değişken ve değişken tipini ayarlıyoruz
For Each bak In Range("A1:A" & WorksheetFunction.CountA([A1:A65536]))
'for each döngümüz ile her bak değeri A sutununun son dolu hücresine kadar çalışır
If bak.Value = TextBox1.Value Then
'eğer değişken değer eşitse combodaki değere sonra
MsgBox "Bu Kayıt numarası bulundu."
'eğer combodan hücrelere girilen değerin aynısı varsa uyarı alıyoruz
Exit Sub
'aynı kayıttan iki tane var ise bir alt koda geçmeyip kodu burada sonlandırıyoruz
End If
'if komutunu sonlandırıyoruz
' Next bak
'döngüde kullandığımız değişkeni sonlandırıyoruz
End Sub
'Texboktan hücrelere alt alta veri girer
Sub verigir()
say = WorksheetFunction.CountA([b1:b65000]) + 1 'A1:A65536 satırlarındaki dolu hücreleri sayar
'say değişkenimiz & a1 den a65536 ya kadar dolu hücreleri sayan kodumuz
Cells(say, 1) = TextBox1
'hücre değişken birinci satır birinci sütuna texteki veriyi alt alta gir
End Sub
'Texboxta veri arama büyük küçük harf duyarlı hepsini bulur
Private Sub cmdbul_Click()
Dim bak As Range
For Each bul In Range("a1:a" & WorksheetFunction.CountA(Range("a1:a65000")))
If StrConv(bul, vbUpperCase) = StrConv(TextBox1, vbUpperCase) Then
' vbUpperCase 'nin Türkçe karakterlere de uygun olmasıdır
' Eğer tip
' vbUpperCase - büyük küçük harf duyarlı
bul.Select
TextBox1 .Value = ActiveCell.Offset(0, 0).Value
TextBox2 .Value = ActiveCell.Offset(0, 1).Value
TextBox3 .Value = ActiveCell.Offset(0, 2).Value
Exit Sub
End If
Next bul
MsgBox "Aradığınız isimde bir kayıt bulunamadı", , "KAYIT YOK"
End Sub
'textboxtan girilen verileri yenisi ile değiştirir
Private Sub CommandButton3_Click()
ActiveCell.Offset(0, 0) = TextBox1.Value
ActiveCell.Offset(0, 1) = TextBox2.Value
End Sub
'bul ile bulunan verinin satırını siler
Private Sub CommandButton4_Click()
Range(ActiveCell.Offset(0, -1).Address(False, False) & ":" & ActiveCell.Offset(0, 10).Address(False, False)).Delete shift:=xlUp
End Sub
Matematiksel
Karşılaştırma
Mantıksal
Olmak üzere üç grupta inceleyeceğiz.
Matematiksel Operatörler:
Bu operatörleri 7 tanedir.
+ Toplama işlemi
- Çıkarma işlemi
* Çarpma işlemi
/ Bölme işlemi
^ Üs alma işlemi
( ) Parantez işlemleri
\ Tam sayılı bölme işlemi
( ) parantezler işlemler arasında önceliği belirlemede kullanılır. İşlemlerde öncelik sırası, (), ^, * / , + - , soldan sağadır.
Karşılaştırma Operatörleri:
İki değer arasında karşılaştırma yapılırken kullanılır. Karşılaştırma sonucu true (doğru) yada false (yanlış) olabilir. Doğru sonuçlar için 1, yanlış değerler için 0 değeri döndürülür.
Sayısal ifadeleri karşılaştırırken 7 farklı operatör kullanılabilir.
Operatör Durum Yazımı
= eşitlik a=b
< küçüktür a<b
> büyüktür a>b
<>, >< eşitsizlik a<>b , a><b
<= , =< küçük eşit a<=b , a=<b
>=, => büyük eşit a>=b , a=>b
String (karekter)ifadelerde:
String değerleri karşılaştırırken Like operatöründen yararlanılır. Bu ifade büyük küçük karakter ayrımı yapar.
Option Compare Text
__________________
sonuc= A Like a
Bu ifade sonucu True değeri alınır. Bu şekilde ifadeleri karşılaştırırken Bazı karakterlerin yerine geçmesi için * kullanılır.
Sonuc True olur. ? işareti l karakteri yerine kullanıldı.
Mantıksal Operatörler:
Birden fazla karşılaştırmayı aynı anda yapmak için kullanılır. Karşılaştırma sonucu True yada False dır.
And Operatörü:
Bu operatör bütün değerler True ise sonucu True=1 verir. Herhangi bir False sonuç False=0 dır.
1.Değer Operator 2.Değer Sonuç
1 And 1 1
1 And 0 0
0 And 1 0
0 And 0 0
Örneğin: if yas>15 And yas<30 Then Siz gençsiniz ifadesinde yas 15 den büyük ve 30 dan küçük olması durumunda Then den sonraki komutlar işletilecektir.
Or Operatörü:
Bu operatör bütün değerler yada herhangi biri True ise True=1, hepsi False ise sonucu False=0 olarak verir.
1.Değer Operator 2.Değer Sonuç
1 Or 1 1
1 Or 0 1
0 Or 1 1
0 Or 0 0
Örneğin: if boy>190 Or boy<165 then İşe boydan dolayı alınamıyorsunuz ifadesinde boy 190 dan büyük yada 165 den küçük olması durumunda then den sonraki komutlar işletilecektir.
Not Operatörü:
Bu operatör ifadenin tersini şart koşar.
Değer Operatör Sonuç
1 Not 1
0 Not 0
Örneğin: if Not Text1.text= Then ... ifadesinde text1in içi boş değilken thenden sonraki komutları işlet anlamı vardır.
VBA KODLARININ ANLAMLARI***************************************************************
Activate= Belirtilen nesneyi aktifleştirir
ActiveCell=Aktif pencerenin aktif hücresi
ActiveSheet= Aktif Çalışma Kitabının aktif Çalışma Tablosu
ActiveWorkbook=Excel'deki aktif Çalışma Tablosu
Add=Aynı tipte yeni bir nesne oluşturur (ekle)
Adres = Address
After= Sonra
Alansay = Areas
Alttoplam = Subtotal
Application=Excel uygulamasının geneli
Ara = Lookup
Array=Dizi
AŞaĞiyuvarla = Rounddown
Ay = Month
Azalanbakİye = Db
BaĞ_deĞ_dolu_say = Counta
Before =Önce
False=Hayır
Field =Alan
Find=Bir VB kodu içerisinde bir metni aramak için kullanılır.
Goto=Git
Intersect= iki yada daha fazla aralığın kesişen hücreleri üzerinde işlem yapmayı sağlar
Last=Son
Left=Sol
Name= İsim
Not=Değil
Nothing=Hiçbir şey,önemsiz
Proper=Doğru,gerçek
Protect=Korumak
Right=sağ
Searchdirection=Arama Yönü
SearchOrder=Arama
SetFocus=ilgili yere koyma
Special=özel sıradan olmayan
BİrleŞtİr = Concatenate
Bold=Metnin harflerinin kalın görünmesi
BoŞluksay = Countblank
BoŞtur = Isblank
BugÜn = Today
Bul = Find
BÜyÜk = Large
BÜyÜkharf = Upper
Caption=Başlık
Chart=Bir Çalış?ma Tablosundaki bir Grafik
Clear= Belirtilen alanın silinmesini sağlar
Close= Belirtilen nesneyi kapatır
Column= Bir alandaki ilk kolonu tanımlayan sayı
ColumnA=Bir sütundaki dolu hücreleri sayar
Columns("A")=birinci kolon
Columns(1)=Birinci kolon
Columns=Çalışma kitabındaki tüm kolonlar
ColumnWidth=Belirtilen alanda kolonların genişliği
Constants=Sabit
Copy= Alanın panoya (clipboard) kopyalanmasını sağlar.
Çİft = Even
DeĞİl = Not
DeĞİŞtİr = Replace
Delete=Belirtilen nesneyi siler
Destination=Gidilecek yer
Drag=Sürükleme,Taşıma
DÜŞeyara = Vlookup
EĞer = If
EĞersay = Countif
Empty=Boş
Enabled=imkan tanıma
EnÇok_olan= Mode
Entire=Bütün
Esayiysa = Isnumber
Etkİn = Effect
Etopla = Sumif
First=İlk kayıt
GÜn = Day
HaftaningÜnÜ = Weekday
Haftasay = Weeknum
Hight=Nesnenin yüksekliği
HÜcre = Cell
Italic= Metnin harflerinin yatık görünmesi
İndİs = Index
İŞgÜnÜ = Workday
item=Adet,tane,parça .
KaÇinci = Match
Karakter = Char
Kaydir = Offset
Kuvvet = Power
KÜÇÜk = Small
KÜÇÜkharf = Lower
Len fonksiyonu=Bir bilginin karakter olarak uzunluğunu verir like= tüm alanlara ekle ve veriyi aynı metin kutusundan alsın
MaxLength=maxsimum uzunlık
Mid=fonksiyonu bir metnin ortasından belirlediğin sayı kadar karakter
Move=Taşımak
None=Hiçbiri
Open=Çalışma Kitabını açar
PrintOut=Sayfayı yazdır
PrintPreview=Baskı önizleme
Range=Bir ya da daha çok hücre
Row=Satır Bir alandaki ilk satırı tanımlayan sayı
RowHeight=Belirtilen alandaki satırların yüksekliği
Rows(1)=Birinci satır
Rows= Çalışma kitabındaki bütün satırlar
Satir = Row
Satirsay = Rows
Selection=Seçilen alan ya da nesne
Size=Boy
Size=Büyüklük
Soldan = Left
SÜre = Duration
SÜtun = Column
SÜtunsay = Columns
Şİmdİ = Now
TamİŞgÜnÜ = Networkdays
Tamsayi = Int
Tarİh = Date
Tarİhsayisi = Datevalue
Topla = Sum
Topla.Çarpim = Sumproduct
total=Toplam
TÜr = Type
Type=Tip
Uzunluk = Len
Üs = Exp
Val=Bir ifadenin içindeki ilk rakam veya rakamları alır
Value= Bir hücrenin içindeki değer
Ve = And
VISIBLE =Görünürlük
What:Ne,Neyi
Width: Nesnenin genişliği
With=İle,Birlikte
Workbook= Excel Çalışma Kitabının tamamı
Worksheet= Bir Çalışma Kitabındaki bir Çalışma Tablosu
xlByRows=Satırlarda
Yada = Or
YanliŞ = False
Yil = Year
Yiloran = Yearfrac
Yİnele = Rept
Yoksay = Na
Yoktur = Isna
Yukariyuvarla = Roundup
Yuvarla = Round
Zaman = Time
Zamansayisi = Timevalue
MAKRO KAYDETME İŞLEMİ*****************************************************************
Makrolar sık sık yapılan işleri otomatikleştirmek için hazırladığımız tanımlardır. Daha sonra bu işlemi yeniden yapmak için makroyu çalıştırırız. Özellikle, Microsoft Excel'de belirli bir işi süreli (yinelemeli) yapıyorsanız, örneğin bir grafik çizmek ve yazıcıya yollamak gibi; bu işi makro ile otomatik hale getirebilirsiniz.
NOT: Makro, belli bir işi yapmak üzere tasarladığınız ve istediğiniz an çalıştırabileceğiniz bir Visual Basic modulü içinde depolanmış komutlar ve fonksiyonlar dizisidir. Excel içinde kayıt ederek (record) ya da Visual Basic editörü ile program yazarak yapılabilir.
MAKRO TÜRLERİ
Makroları, oluşturma yöntemine göre iki grupta toplayabiliriz.
. Kayıt (Record) Yöntemi ile makro oluşturma.
. Visual Basic Editörü ile makro oluşturma. Bu işlem program yazmak anlamına geliyor.
Kaydı bitirmek için Stop Recording (Kaydı Durdur) düğmesine tıklayın..
İPUCU: Makro kayıt ederken genellikle temiz (hatasız) bir kullanım gerekir. Eğer kayıt sırasında hata yapılırsa bu hatalar makronun çalıştırılmasında da karşımıza gelir. Bunun dışında kayıt ederken durum çubuğunda "Recording" açıklaması yer alır.
DEĞİŞKEN TANIMLAMA**********************************************************************
Visual Basicte degisken denen ve degerleri gecici veya surekli olark bilgisayar hafizasinda
belirli bir islem icin tutan kaliplar vardir.
Yani degiskenler bazi degerleri hafizada tutmaya yarar. Bu Vb in en basit konusudur.
Visual basicteki en önemli konulardan bir tanesi de değişken tanımlamadır.
Değişken üzerinden yapacağınız işlemlerde en doğru sonucu elde etmek istiyorsanız
mutlaka tanımlı olanları kullanmanız gerekir. Özellikle de sayısal değişkenlerde.
Dim a,b, naber, iyi , ok
Diye birden fazla degiskeni bir anda belirleyebiliriz. Tabi her degisken belirledigimizde
hafizadan kucukte olsa biraz kullanir. Iste bu yuzden mumkun oldugunca az degisken kullanmaliyiz
Değişken tanımlama "DIM" komutu ile yapılır. Genel olarak kullanımı
DIM (değişken_adı) AS (değişken_tipi)
parantez içerisine aldıklarım sizin belirleyeceğiniz şeylerdir.
Bu şekilde bir değişkene "SEN ŞUSUN" denilir.
String : Karakter değişkenidir.
Byte : Sayısal değişken (Max:255)
İnteger : Sayısal değişken (Max: 65535)
Long : Sayısal değişken (Max : 2 milyar küsür.
Binary : Sayısal değişken (10101 gibi)
Double : Sayısal değişken (sınırı yok. Bunun artısı herhangi bir bölme veya çıkartma gibi
işlemlerde virgülden sonraki rakamları da kaale alması. İnteger bunu kaale almaz.
Büyüğe veya Küçüğe yuvarlar)
Database : Adı üstünde database.
Recordset : Database içerisindeki bir tablo
Boolean : True (doğru) ve false (yanlış) döndüren değişken.
IF KONTROL YAPISI**************************************************************************
Genel olarak bu komut yapısı şu şekilde yazılır.
If Kosul Then
Kosul dogru ise yapılması istenen işlemler.
Endif
Kullandıgımız her If kontrolu için mutlaka bir Endif kullanmalıyız. Bu kontrol yapısının sonlandıgını belirtir.
Örnek:
If ad="FATIH" Then
Maas=10000000
Endif
Eger koşul gerçekleşmemiş ise yapılması istenen bazı işlemler varsa o zaman şu şekilde bir kontrol yapısını kullanabiliriz.
If Kosul Then
Kosul dogru ise yapılması istenen işlemler.
Else
Kosul yanlış ise yapılması istenen işlemler.
Endif
Aynı anda bir kaç koşul için karşılaştırma yapılmak isternirse;
If Kosul Then
Kosul dogru ise yapılması istenen işlemler.
Elseif Kosul1 Then
Kosul1 dogru ise yapılması istenen işlemler.
Elseif Kosul2 Then
Kosul2 dogru ise yapılması istenen işlemler.
Else
Bütün kosullar yanlış ise yapılması istenen işlemler.
Endif
yapısı kullanılır. Bu yapıda mutlaka Else blogunun bulunmasına gerek yoktur. Burada eger Kosul dogru ise ilk Thenden sonraki satırlar çalıştırılarak Elseif ifadesine kadar icra edilirler. Daha sonra Endif ifadesinden sonraki satır icra edilir.Eger Kosul yanlış ise Kosul1 ifadesi kontrol edilir.Dogru ise buradaki then den sonraki satırlar çalıştırılır. Yanlış ise Kosul2ye bakılır. Eger bu kosulda yanlıs ise Else ifadesinden sonraki satırlar çalıştırılır.
SELECT CASE KONTROL YAPISI**************************************************************
Bu kontrol yapısında sadece bir degişkenin durum kontrolü yapılır.Kontrolü yapılacak degişkenin genel olarak alabilecegi degerler belirli ise bu yapının kukllanılması If yapısına göre daha avantajlıdır. Yazılış biçimi genel olarak aşagıdaki şekildeki gibidir
Select Case Degisken
Case Deger1
Degisken=Deger1 oldugu durumda yapılması istenen işlemler
Case Deger2
Degisken=Deger2 oldugu durumda yapılması istenen işlemler
Case Else
Degisken yukarıdaki degerler den hicbirine eşit degil ise yapılacak işlemler
End Select
Kullandıgımız her Select ifadesi için bir End Select kullanmalıyız.
VBasic te kullanılan bazı fonksiyonlar**************************************************************
Len() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel ya da başka bir tipte bilginin uzunluğunu bulur.
Ör:
Len ("Visual Basic") uzunluk 12 olur
Len ("jebeji") uzunluk 6 olur
Left() { Right() } Fonksiyonu:
Kendisine parametre olarak verilen variant ya da karaktersel bir bilginin soldan {sağdan} başlamak üzere istenen kadar karakterini almak için kullanılır.
Ör:
Left ("Visual Basic",6) sonuç "Visual" olur
a = "jebeji"
Left (a,3) sonuç "jeb" olur
Right (a,3) sonuç "eji" olur
Lcase$() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel bilgilerin içinde bulunan büyük harfleri, küçük harfe dönüştürür.
Ör:
Lcase$ ("ViSuAl BaSiC") sonuç "visual basic" olur
Ucase$() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel bilgilerin içinde bulunan küçük harfleri, büyük harfe dönüştürür.
Ör:
Lcase$ ("ViSuAl BaSiC") sonuç "VISUAL BASIC" olur
Mid() Fonksiyonu:
Üç parametreden oluşmaktadır. 1. parametre, bakılacak bilgi, 2. parametre, verilen bilgide başlanacak yer, 3. parametre ise kaç karakter alınacağını belirtir.
Ör:
Mid ("jebeji", 1, 4) sonuç "jebe" olur
Str$() Fonksiyonu:
Kendisine parametre olarak verilen sayısal bilgileri, karaktersel bilgiye dönüştürür.
Ör:
Str$ (123) + Str$ (456) sonuç "123456" olur
Val() Fonksiyonu:
Kendisine parametre olarak verilen karaktersel bilgileri, sayısal bilgiye dönüştürür.
Ör:
Val ("123jebeji") sonuç 123 olur
Val ("jebeji123") sonuç 0 olu
WITH İŞLEMLERİ*****************************************************************************
Private Sub UserForm_Initialize()'COMBOBOXA ATANAN DEĞERLER
With ComboBox1
.AddItem "pazartesi"
.AddItem "salı"
.AddItem "çarşamba"
End With
End Sub
Private Sub CommandButton1_Click() 'LABELE DEĞER VE GENİŞLİK ATIYORUZ
With Label1
.Caption = "TEST"
.Width = 20
End With
End Sub
Private Sub UserForm_Initialize() 'LİSTBOX ÖZELLİKLERİ
With ListBox1
.RowSource = "A1:A20"
.ColumnCount = 2
.ColumnWidths = "20;20;20"
End With
End Sub
VİSUAL BASICTE DÖNGÜ KOMUTLARI
FOR NEXT DÖNGÜSÜ*************************************************************************
Bu komutlar belirli işlemleri belirli sayıda veya herhangi bir şart sağlanana kadar tekrarlamak amacı ile kullanılırlar. Bu komutlar aşagıda verilmiştir.
For each Döngüsü
For .. Next Döngüsü
Do While . Loop Döngüsü
For Next Döngüsü :
Bütün dillerde bulunan döngü yapısıdır. Genel yazım şekli aşagıdaki şekildeki gibidir.
For sayac=başlangıç To bitiş Step artım
Arada işletilecek komutlar
Next sayac
Bu döngü sayac baslangıc degerınden bitiş degerine kadar çalıştırılır. Sayaç başlangıc degerinde iken döngü içindeki komutlar işletilir. Next ifadesine gelindiginde tekrar For satırına gelinir. Sayac degeri artım kadar artırılır. Eger Sayac degeri Bitis degerini geçmiş ise Next adımından sonraki adım işletilir. Burada step degerine pozitif veya nekatif bir deger verşilebilir. Eger nekatif deger verilirse sayac her seferinde 1 azaltılır.Step adımını vermezsek bu pozıtif 1 (+1) anlamındadır ve her adımda sayac bir artırılacaktır.Biz içiçe For Next döngüleride kurabiliriz. Ancak burada şuda dikkat edilmelidir. En son başlatılan For döngüsü ilk önce bitirilmelidir.
For sayac1=basla1 To son1
Komutlar
For sayac2=basla2 To son2
Komutlar
Next sayac2
Next sayac1
Biz buradaki sayıyı daha da artırabiliriz.
Aşagıdaki şekideki gibi bir kullanım hatalıdır
For sayac1=basla1 To son1
Komutlar
For sayac2=basla2 To son2
Komutlar
Next sayac1
Next sayac2 Burada For döngüsü işletilirken hata oluşacaktır(çünkü En son başlatılan For döngüsü ilk önce bitimemiştir.).
Sub ForNext()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "x"
Next i
End Sub
yukarıda a1 den a10 kadar olan hücrelere x işareti koyar
FOR EACH DÖNGÜSÜ************************************************************************
yapılacak işlemin adresi belli olduğu zamanlarda ("A1:A20") gibi kullanılır
Bir dizi içerisindeki elemanların tamamı için bir işlemin yapılmasında yada bir doküman
içerisinde bir kelimenin aranması gibi tekrar gerektiren durumlarda kullanılır
Kullanım Şekli:
For Each Eleman In Grup
?????
????? (Komutlar)
?????
Next Eleman
Sub Doldur()
For Each hucre In Range("A1:A5")
hucre.Value = "Excel"
Next hucre
End Sub
A1:A5 e kadar excel yazar
DO WHİLE DÖNGÜSÜ************************************************************************
Bu dögünün genel yazim sekli asagidaki sekildeki gibidir.
Do While Kosul
Komutlar
Loop
Burada önce Kosula bakilir. Eger kosul dogru ise aradaki satirlar çalistirilir taki Loop satirina kadar. Loop satirinda tekrar While satirina dönülür. Kosul tekrar kontrol edilir. Eger dogru ise ara satirlar tekrar çalistirilir. Kosul yanlis ise Loop tan sonraki ilk satirdan program çalismaya devam eder. Içiçe Do While döngüleride kurabiliriz.
Do While Kosul1
.
Do While Kosul2
Komutlar
Loop
..
Loop
Her Do While için mutlaka bir Loop yerlestirmeliyiz.
Örnek :
While: (süre, zaman) oluncaya kadar
Loop: Döngü, çevrim
Sub test1() 'A1 1 DEN BÜYÜKSE KOD İŞLETİLİR
Do While Range("A1") > 1
MsgBox "A1 BİRDEN BÜYÜK"
Exit Do
Loop
End Sub
KİTAP İŞLEMLERİ*****************************************************************************
Sub test()'VERİLEN ADRESTEKİ KİTABI AÇAR
Workbooks.Open "c:\test.xls"
End Sub
Sub test1()'VERİLEN İSİMDEKİ AÇIK OLAN KİTABI KAPAR
Workbooks("test.xls").Close
End Sub
Sub test2()'VERİLEN İSİMDEKİ AÇIK OLAN KİTABI KAYDEDER
Workbooks("test.xls").Save
End Sub
Sub test3()' VERİLEN ADRESTEKİ ADRESTEKİ DOSYAYI SİLER
Kill ("c:\test.xls")
End Sub
Sub test4()'ÇALIŞMA KİTABI ADINI AKTİF HÜCREYE YAZDIRMA
ActiveCell.Value = ActiveWorkbook.FullName
End Sub
Sub test5()'AKTİF ÇALIŞMA KİTABINI KAYDEDİP KAPAR
ActiveWorkbook.Close True
End Sub
Sub auto_open()'VERİLEN ADRESTE DOSYA YOKSA KİTABI KAPAR
yol = Dir("D:\********s and Settings\ev\Desktop\test.txt")
If yol = "" Then
ActiveWorkbook.Close True
End If
End Sub
sub auto_open()'EXCELİ GİZLER FORMU AÇAR
Application.Visible = False 'uygulamayı gizle
userform1.show ' formu göster
End Sub
SAYFA İŞLEMLERİ*****************************************************************************
Sub auto_open() 'EXCELİN AÇILIŞINDA İSTENEN SAYFANIN GELMESİ
Sheets("sayfa1").Select
End Sub
Sub test1() 'İSTENEN SAYFAYI SEÇMEK
Sheets("sayfa1").Select
End Sub
Sub test2() 'İSTENEN SAYFAYI GİZLEMEK
Sheets("sayfa1").Visible = False
End Sub
Sub test3() 'İSTENEN SAYFAYI GÖSTERMEK
Sheets("sayfa1").Visible = True
End Sub
Sub test4() 'İSTENEN SAYFAYI SİLMEK
Sheets("sayfa1").Delete
End Sub
Sub test5() 'ÇALIŞMA KİTABINDAKİ SON SAYFA
Sheets(Sheets.Count).Select
End Sub
Sub test6() 'İSTENİLEN SAYFAYI AKTİF HALE GETİRME
Sheets("sayfa1").Activate
End Sub
Sub test7() 'İSTENİLEN SAYFAYI BİR DEĞİŞKENE ATAMA
Set s1 = Sheets("sayfa1")
s1.Select
End Sub
Sub test8() 'YENİ BİR SAYFA EKLER
Sheets.Add
End Sub
Sub test9() 'SAYFA2 NİN ÖNÜNE YENİ BİR SAYFA EKLER
Sheets.Add after:=Sheets("sayfa2")
End Sub 'sayfa ekleme (en sona)
Sub SayfaEklemek()
Worksheets.Add After:=Sheets(Sheets.Count)
End Sub
Sub test10() 'İSTENEN SAYFANIN İSMİNİ DEĞİŞTİRİR
Sheets("sayfa1").Name = "test"
End Sub
Sub test11() 'İSTENEN SAYFAYI UYARI VERMEDEN SİLER
Application.DisplayAlerts = False
Sheets("sayfa1").Delete
Application.DisplayAlerts = True
End Sub
Sub test12() 'İSTENEN SAYFAYA KORUMA KOYAR
Sheets("sayfa1").Protect "123"
End Sub
Sub test13() 'İSTENEN SAYFAYA KORUMASINI KALDIRIR
Sheets("sayfa1").Unprotect "123"
End Sub
Sub test14() 'TÜM SAYFALARA KORUMA KOYAR
For i = 1 To Sheets.Count
Sheets(i).Protect "123"
Next
End Sub
Sub test15() 'TÜM SAYFALARA KORUMAYI KALDIRIR
For i = 1 To Sheets.Count
Sheets(i).Unprotect "123"
Next
End Sub
Sub test16() 'SAYFAYI YAZDIRMA
Sheets("sayfa1").PrintOut
End Sub
Sub test17() 'SAYFAYI BASI ÖN İZLEME
Sheets("sayfa1").PrintPreview
End Sub
Sub test18() 'SAYFA TAM EKRAN
Application.DisplayFullScreen = True
End Sub
Sub test19() 'SAYFA NORMAL EKRAN
Application.DisplayFullScreen = False
End Sub
Sub test20() 'SAYFNIN KULLANIM ALANINI BELİRLEME
Sheets("sayfa1").ScrollArea = "a1:a10"
End Sub
Sub test1() 'SAYFNIN KULLANIM ALANINI KALDIRMA
Sheets("sayfa1").ScrollArea = ""
End Sub 'veri isimli sayfanın kopyasını oluşturur
Sub sayfakopyala()
isim = InputBox("sayfa ismini giriniz")
Sheets("veri").Copy Sheets(Sheets.Count)
ActiveSheet.Name = isim
End Sub
HÜCRE İŞLEMLERİ***************************************************************************
Range = Hücre (A1)
ActiveCell = Aktif Hücre
Select =Seç
Application = Uygulama
Range("A3
Range("C5").Activate 'seçtiktan sonra Aktif Et
Range("B2").select
Application.Range("B2").Select
[B2].Select
Range("A1
birden fazla sütun ve hücre seçme
Range("A1:A10,C1:C10,E1:E10").Select
A1 ve D10 Hücrelerini seç
Range("A1","D10").Select
Ad tanımı yapılmış hücreleri seçmek
Range("veri").Select
Aşağıdaki örnekte ise A1 hücresi ile Ad verdiğimiz hücrelerin seçimi
Range("A1",Range("veri")).Select
HÜCRE SEÇİM İŞLEMLERİNİ SADELEŞTİRME
[B2]
[A1
[A1:A10,C1:C10,E1:E10]
[veri]
Sub test1() 'BELİRLENEN HÜCREYE DEĞER ATAMA
Sheets("sayfa1").Range("a1") = "ali"
End Sub
Sub test2() 'BELİRLENEN HÜCRENİN YAZI FONTUNU DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.Size = 20
End Sub
Sub test3() 'BELİRLENEN HÜCRENİN YAZI FONTUNU KALIN YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = True
End Sub
Sub test4() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İNCE YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = False
End Sub
Sub test5() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İTALİK YAPMA
Sheets("sayfa1").Range("a1").Font.Italic = True
End Sub
Sub test6() 'BELİRLENEN HÜCRENİN YAZI FONTUNUN İTALİĞİNİ İPTAL ETME
Sheets("sayfa1").Range("a1").Font.Italic = False
End Sub
Sub test7() 'BELİRLENEN HÜCRENİN DOLGU RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Interior.ColorIndex = 6
End Sub
Sub test8() 'BELİRLENEN HÜCRENİN FONT RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.ColorIndex = 3
End Sub
Sub test9() 'BELİRLENEN HÜCREYE FORMÜL YAZDIRMA
Sheets("sayfa1").Range("a1").Formula = "=B1+C1"
End Sub
Sub test10() 'AKTİF HÜCRENİN BELİRLENEN UZAKLIĞINA DEĞER ATAMA
ActiveCell.Offset(0, 5) = "ALİ"
End Sub
Sub test11() 'BÜTÜN HÜCRELERİ SEÇER
Sheets("sayfa1").Select
Sheets("sayfa1").Cells.Select
End Sub
Sub test12() 'AKTİF HÜCRENİN SUTUNUNU TAMAMEN SEÇER
ActiveCell.EntireColumn.Select
End Sub
Sub test13() 'AKTİF HÜCRENİN SATIRINI TAMAMEN SEÇER
ActiveCell.EntireRow.Select
End Sub
Sub test14() 'SEÇİLİ HÜCRELERİN SATIRINI TAMAMEN SEÇER
Selection.EntireRow.Select
End Sub
Sub test15() 'AKTİF HÜCRENİN BİR ALTINI SEÇER
ActiveCell.Offset(1, 0).Select
End Sub
Sub test16() 'AKTİF HÜCRENİN BİR ÜSTÜNÜ SEÇER
ActiveCell.Offset(-1, 0).Select
End Sub
Sub test17() 'AKTİF HÜCRENİN BİR SAĞINI SEÇER
ActiveCell.Offset(0, 1).Select
End Sub
Sub test18() 'AKTİF HÜCRENİN BİR SOLUNU SEÇER
ActiveCell.Offset(0, -1).Select
End Sub
Sub test19() 'AKTİF HÜCRENİN ALTINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlDown)).Select
End Sub
Sub test20() 'AKTİF HÜCRENİN ÜSTÜNDEKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlUp)).Select
End Sub
Sub test21() 'AKTİF HÜCRENİN SAĞINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
End Sub
Sub test22() 'AKTİF HÜCRENİN SOLUNDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
End Sub
Sub test23() 'AKTİF HÜCRENİN ETRAFINDAKİ TÜM HÜCRELERİ SEÇER
ActiveCell.CurrentRegion.Select
End Sub
SAY = WorksheetFunction.CountA([b1:b5000]) 'VERİLEN ADRESTEKİ DOLU OLAN SON HÜCREYİ SEÇER
HÜCRE İŞLEMLERİ***************************************************************************
Range = Hücre (A1)
ActiveCell = Aktif Hücre
Select =Seç
Application = Uygulama
Range("A3
Range("C5").Activate 'seçtiktan sonra Aktif Et
Range("B2").select
Application.Range("B2").Select
[B2].Select
Range("A1
birden fazla sütun ve hücre seçme
Range("A1:A10,C1:C10,E1:E10").Select
A1 ve D10 Hücrelerini seç
Range("A1","D10").Select
Ad tanımı yapılmış hücreleri seçmek
Range("veri").Select
Aşağıdaki örnekte ise A1 hücresi ile Ad verdiğimiz hücrelerin seçimi
Range("A1",Range("veri")).Select
HÜCRE SEÇİM İŞLEMLERİNİ SADELEŞTİRME
[B2]
[A1
[A1:A10,C1:C10,E1:E10]
[veri]
Sub test1() 'BELİRLENEN HÜCREYE DEĞER ATAMA
Sheets("sayfa1").Range("a1") = "ali"
End Sub
Sub test2() 'BELİRLENEN HÜCRENİN YAZI FONTUNU DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.Size = 20
End Sub
Sub test3() 'BELİRLENEN HÜCRENİN YAZI FONTUNU KALIN YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = True
End Sub
Sub test4() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İNCE YAPMA
Sheets("sayfa1").Range("a1").Font.Bold = False
End Sub
Sub test5() 'BELİRLENEN HÜCRENİN YAZI FONTUNU İTALİK YAPMA
Sheets("sayfa1").Range("a1").Font.Italic = True
End Sub
Sub test6() 'BELİRLENEN HÜCRENİN YAZI FONTUNUN İTALİĞİNİ İPTAL ETME
Sheets("sayfa1").Range("a1").Font.Italic = False
End Sub
Sub test7() 'BELİRLENEN HÜCRENİN DOLGU RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Interior.ColorIndex = 6
End Sub
Sub test8() 'BELİRLENEN HÜCRENİN FONT RENGİNİ DEĞİŞTİRME
Sheets("sayfa1").Range("a1").Font.ColorIndex = 3
End Sub
Sub test9() 'BELİRLENEN HÜCREYE FORMÜL YAZDIRMA
Sheets("sayfa1").Range("a1").Formula = "=B1+C1"
End Sub
Sub test10() 'AKTİF HÜCRENİN BELİRLENEN UZAKLIĞINA DEĞER ATAMA
ActiveCell.Offset(0, 5) = "ALİ"
End Sub
Sub test11() 'BÜTÜN HÜCRELERİ SEÇER
Sheets("sayfa1").Select
Sheets("sayfa1").Cells.Select
End Sub
Sub test12() 'AKTİF HÜCRENİN SUTUNUNU TAMAMEN SEÇER
ActiveCell.EntireColumn.Select
End Sub
Sub test13() 'AKTİF HÜCRENİN SATIRINI TAMAMEN SEÇER
ActiveCell.EntireRow.Select
End Sub
Sub test14() 'SEÇİLİ HÜCRELERİN SATIRINI TAMAMEN SEÇER
Selection.EntireRow.Select
End Sub
Sub test15() 'AKTİF HÜCRENİN BİR ALTINI SEÇER
ActiveCell.Offset(1, 0).Select
End Sub
Sub test16() 'AKTİF HÜCRENİN BİR ÜSTÜNÜ SEÇER
ActiveCell.Offset(-1, 0).Select
End Sub
Sub test17() 'AKTİF HÜCRENİN BİR SAĞINI SEÇER
ActiveCell.Offset(0, 1).Select
End Sub
Sub test18() 'AKTİF HÜCRENİN BİR SOLUNU SEÇER
ActiveCell.Offset(0, -1).Select
End Sub
Sub test19() 'AKTİF HÜCRENİN ALTINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlDown)).Select
End Sub
Sub test20() 'AKTİF HÜCRENİN ÜSTÜNDEKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlUp)).Select
End Sub
Sub test21() 'AKTİF HÜCRENİN SAĞINDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToRight)).Select
End Sub
Sub test22() 'AKTİF HÜCRENİN SOLUNDAKİ DOLU HÜCRELERİ SEÇER
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
End Sub
Sub test23() 'AKTİF HÜCRENİN ETRAFINDAKİ TÜM HÜCRELERİ SEÇER
ActiveCell.CurrentRegion.Select
End Sub
SAY = WorksheetFunction.CountA([b1:b5000]) 'VERİLEN ADRESTEKİ DOLU OLAN SON HÜCREYİ SEÇER
SATIR SÜTUN İŞLEMLERİ*********************************************************************
Sub test1() 'A SÜTÜNUNU SEÇER
Range("a:a").Select
End Sub
Sub test2() 'A SATIRINI SEÇER
Range("1:1").Select
End Sub
Sub test3() 'A SÜTÜNUNU SEÇER
Columns("A").Select
End Sub
Sub test4() 'A SATIRINI SEÇER
Rows(1).Select
End Sub
Sub test5() 'A SÜTÜNUNU GİZLER
Columns("A").Hidden = True
End Sub
Sub test6() 'A SÜTÜNUNU GÖSTERİR
Columns("A").Hidden = False
End Sub
Sub test7() 'A SATIRI GİZLER
Rows("1:1").Hidden = True
End Sub
Sub test8() 'A SATIRI GÖSTERİR
Rows("1:1").Hidden = False
End Sub
Sub test9() 'A SÜTÜN GENİŞLİĞİNİ OTOMATİK AYARLAR
Columns("A").EntireColumn.AutoFit
End Sub
Sub test10() 'A1 SATIR GENİŞLİĞİNİ OTOMATİK AYARLAR
Rows("1:1").EntireRow.AutoFit
End Sub
MODÜL İŞLEMLERİ**************************************************************************
Modül
Modül, fonksiyon ve yordamlardan oluşan kod sayfasıdır. İki tür Modül bulunur
Standart modül ve Sınıf (CLASS) modülü. Çoğunlukla Standart modüller kullanılır
Standart modüller kullanım kolaylığı ve amaca yönelik olması bakımından sık
tercih edilir.
Standart modüllerdeki kodlar, istendiğinde diğer modüller ya da formlar
içerisinden çalıştırılabilir.
FORM İŞLEMLERİ****************************************************************************
Sub test1() 'FORM AÇAR
UserForm1.Show
End Sub
Sub test2() 'FORM KAPAR
Unload Me
End Sub
Sub AUTO_OPEN() 'EXCELİ KAPAR FORMU AÇAR
Application.Visible = False
UserForm1.Show
End Sub
Sub AUTO_CLOSE() 'EXCELİ SERBEST BIRAKIP KAYDEDER VE FORMU KAPAR
Application.Visible = True
ActiveWorkbook.Save
Unload Me
End Sub
PROPERTİES ÖZELLİKLERİ*******************************************************************
Visual Basicin birçok kontrolünü Properties kutucuğu yoluyla değiştirme imkanı Form Editörü sayesinde çok esnek bir hale getirilmiş.
Properties kutusunun en güzel özelliği listeden seçilen kontrol özelliklerinin kısa açıklamalarını kutun hemen altında bir pencerede görebilmeniz.
Bir Visual Basic kontrolünü seçtiğinizde ve properties kutusuna baktığınızda onun kullanabileceğiniz tüm özelliklerini görürsünüz.
MSGBOX İŞLEMLERİ*************************************************************************
vbYesNo: Evet Hayır tuşları
if MsgBox ("işlem yerine getirilsinmi.", vbYesNo) = vbNo Then
'eğer vbYesNo(evet hayır)dümesi ekliyoruz =vbNO dersek hayıra tıkladığımızda alt koda geçmez
exit Sub
'kodu sonlandırıyoruz
End if
İNPUTBOX İŞLEMLERİ************************************************************************
Private Sub CommandButton1_Click()
formac = InputBox("şifreyi giriniz") 'değişken atayıp açıklama giriniz
If formac = "123" Then 'eğer inputbox içeriği 123 se
UserForm1.Show 'userformu aç
Exit Sub: End If 'koda son ife son
End Sub
LİSTBOX İŞLEMLERİ**************************************************************************
'listboxta gösterilen veriyi sayfada seçer
'listindex değeri listboxtan seçilen satırın index değeridir(sira değeri)
'Ve bu değer 0 (sıfır) dan başlar
Private Sub ListBox1_Click()
Cells(ListBox1.ListIndex + 1, 2).Select
'listbox üzerinden sayfadaki 1 . satır ve 2. sütundan verileri seçer
End Sub
Private Sub UserForm_Initialize()
'otomatik algılaması için formun intialize olayına yazıyoruz
ListBox1.RowSource = "Sayfa1!A1:A10" 'lisbox'ta gösterilecek hücre aralığı
ListBox1.ColumnCount = 5 ' lisbox'ta ki sütun sayısı
ListBox1.ColumnWidths = 100 & ";" & 70 'lisbox'taki sütunların genişliği
ListBox1.ColumnWidths = "30;30;20" 'lisbox'taki sütunların genişliği
ListBox1.ColumnHeads = True 'listboxta birinci satırı sabitler tıklanmaz
End Sub
'sadece veri olan satırları listbox ta listele
ListBox1.RowSource = "A1:A" & WorksheetFunction.CountA(Range("A1:A65000"))
'LİSTBOXTA VERİ SÜZME
Private Sub ComboBox1_Change()
With ListBox1
.Clear
.ColumnCount = 2
End With
For suz = 1 To WorksheetFunction.CountA([B1:B5000])
If Range("B" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("B" & suz)
ListBox1.List(s - 1, 1) = Range("C" & suz)
End If
Next
End Sub
'LİSTBOXTAN SÜZÜLENLERİ TEXTBOXTA TOPLAR
Private Sub ComboBox1_Change()
With ListBox1
.Clear
.ColumnCount = 2
End With
For suz = 1 To WorksheetFunction.CountA([B1:B65000])
If Range("B" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("b" & suz)
ListBox1.List(s - 1, 1) = Range("C" & suz)
TextBox1 = Val(TextBox1.Text) + ListBox1.List(s - 1, 1)
End If
Next
End Sub
TEXTBOX İŞLEMLERİ************************************************************************
TextBox1 = UCase(TextBox1) 'YAZILANI BÜYÜK HARFE ÇEVİRİR
TextBox1 = LCase(TextBox1) 'YAZILANI KÜÇÜK HARFE ÇEVİRİR
'veri girişlerinde satır numarası verme
Sub test()
Range("a1") = "sıra no"
Range("b1") = "isim"
saysira = WorksheetFunction.CountA([b1:b65536])
For sira = 1 To saysira
Cells(sira + 1, 1) = sira
Next
End Sub
'Texboktan hücrelere alt alta veri girerken aynı veri girilirse uyarı verir
Sub ayniolanibul()
Dim bak As Range '****
'değişken ve değişken tipini ayarlıyoruz
For Each bak In Range("A1:A" & WorksheetFunction.CountA([A1:A65536]))
'for each döngümüz ile her bak değeri A sutununun son dolu hücresine kadar çalışır
If bak.Value = TextBox1.Value Then
'eğer değişken değer eşitse combodaki değere sonra
MsgBox "Bu Kayıt numarası bulundu."
'eğer combodan hücrelere girilen değerin aynısı varsa uyarı alıyoruz
Exit Sub
'aynı kayıttan iki tane var ise bir alt koda geçmeyip kodu burada sonlandırıyoruz
End If
'if komutunu sonlandırıyoruz
' Next bak
'döngüde kullandığımız değişkeni sonlandırıyoruz
End Sub
'Texboktan hücrelere alt alta veri girer
Sub verigir()
say = WorksheetFunction.CountA([b1:b65000]) + 1 'A1:A65536 satırlarındaki dolu hücreleri sayar
'say değişkenimiz & a1 den a65536 ya kadar dolu hücreleri sayan kodumuz
Cells(say, 1) = TextBox1
'hücre değişken birinci satır birinci sütuna texteki veriyi alt alta gir
End Sub
'Texboxta veri arama büyük küçük harf duyarlı hepsini bulur
Private Sub cmdbul_Click()
Dim bak As Range
For Each bul In Range("a1:a" & WorksheetFunction.CountA(Range("a1:a65000")))
If StrConv(bul, vbUpperCase) = StrConv(TextBox1, vbUpperCase) Then
' vbUpperCase 'nin Türkçe karakterlere de uygun olmasıdır
' Eğer tip
' vbUpperCase - büyük küçük harf duyarlı
bul.Select
TextBox1 .Value = ActiveCell.Offset(0, 0).Value
TextBox2 .Value = ActiveCell.Offset(0, 1).Value
TextBox3 .Value = ActiveCell.Offset(0, 2).Value
Exit Sub
End If
Next bul
MsgBox "Aradığınız isimde bir kayıt bulunamadı", , "KAYIT YOK"
End Sub
'textboxtan girilen verileri yenisi ile değiştirir
Private Sub CommandButton3_Click()
ActiveCell.Offset(0, 0) = TextBox1.Value
ActiveCell.Offset(0, 1) = TextBox2.Value
End Sub
'bul ile bulunan verinin satırını siler
Private Sub CommandButton4_Click()
Range(ActiveCell.Offset(0, -1).Address(False, False) & ":" & ActiveCell.Offset(0, 10).Address(False, False)).Delete shift:=xlUp
End Sub
