Değişkenin ismi nokta, boşluk # & veya $ içeremez.

Benzer belgeler
Yukarıdaki fonksiyonun anlamı: Bulunulan hücreye, B2 hücresinden B17 hücresine kadar olan hücreleri toplam ve yaz.

Window Script Host. Message Box Kullanımı. Pupup(Acilir)Message Kullanımı. Arslan ACAR

BİLGİ GİRİŞ VE MESAJ PENCERELERİ. 1-Sadece kullanıcıya mesaj vermek için kullanılır.

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Uygulama 1) Aşağıdaki genel (global) değişken tanımlamalarını VB üzerinde yapınız. Süre 10 dak.

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

AOSB 2017 EĞİTİM PROGRAMI

Verimlilik İçin ETKİN BİLGİ YÖNETİMİ KENDİ FONKSİYONUMUZU YAZALIM

INPUTBOX() ile Veri Girişi

İşletme Fakültesi Bil. Kullanımı Ders notları 2

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

NAZMİYE DEMİREL ORTAOKULU BİLİŞİM TEKNOLOJİLERİ DERSİ 1. DÖNEM 6. SINIFLAR DERS NOTU EXCEL 2007 DERS NOTLARI

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

Microsoft Visual Basic kullanarak makro oluşturma

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

Matematiksel Operatörler

Temel Excel Kullanım Bilgisi

Timer İle arka plan renk değişimi

Diziler İndisli Değişkenler

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1

MT 373 Visual Basic Programlama Dersi

Fatura Dinamik Kodlama İyileştirmeleri

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

FORMÜLLER VE FONKSİYONLAR

Microsoft Office Excel 2007

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

HSancak Nesne Tabanlı Programlama I Ders Notları

GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

İŞLETMELERDE BECERİ EĞİTİMİ DERSİ MİCROSOFT WORD 2007 ÇALIŞMALARI

Android Ders Notları

PASCAL PROGRAMLAMA DİLİ YAPISI

ENF110 Temel Bilgisayar Uygulamaları Vize Öncesi Tüm Notlar - Episode 2 Excel

ÖNDER BİLGİSAYAR KURSU. Microsoft Office Kursu Eğitim İçeriği

öğrenci arkadaşların(derse gelen) sınavlara çalışırken kendi ders notlarına da (ders de tutmuş oldukları notlara) bakarak çalışmaları gerekmektedir.

UYGULAMALAR -2 Select case Yapısı: Select Case case case case case case is case Else End Select Örnek:

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

1. LabVIEW ile Programlama

Bilgisayar Programlama

FORMÜL ADI (FONKSİYON) FORMÜLÜN YAZILIŞI YAPTIĞI İŞLEMİN AÇIKLAMASI

HSancak Nesne Tabanlı Programlama I Ders Notları

3- A1 ve A6 hücrelerinin toplamını hesaplayan formül aşağıdakilerden hangisidir?

Bu uygulama, MSGBOX fonksiyonun ve Form nesnesinin QueryUnload olayının kullanımı ile ilgili bir uygulamadır.

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Veri Yapıları ve Algoritmalar

Zoru Kolay Yapmak İçin...

Excel' de formüller yazılırken iki farklı uygulama kullanılır. Bunlardan;

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

C Programlama Dilininin Basit Yapıları

Uygulama 1) Sabit olarak belirlenen sayıda tekrar eden (5 kez) Visual Basic kaynak kodlarını yazınız.

C#(Sharp) Programlama Dili

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

EXCEL 2007 ELEKTRONİK ÇİZELGE

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

NB Macro Kullanımı Hakkında Genel Bilgiler

Açılan programın pencere görünümü aşağıdaki gibidir. 2. Araç Çubuğundan kaydet düğmesi ile

PostgreSQL ve PL/pgSQL

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

3. Aşağıdakilerden hangisi B5 hücresinin değerini getirir (Kopyalar)? a-) =B5 b-) B5 c-) =B(5) d-) =5B

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

7) Çoklu Formlar. Şekil7.1. Araç kutusundaki Add Form butonuna basarak projeye yeni bir form ekleyiniz.

SAB104 Bilgisayar Programlama

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

Değerlendirme Soruları 140. Şerit Kullanımı 124 Şerit Sekmeleri 124 Şeridi Gizleme 125 Eklentiler 125

HSancak Nesne Tabanlı Programlama I Ders Notları

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

BİLGİSAYAR PROGRAMLAMA

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

SEÇİM İŞLEMLERİ. Yüzde Hesaplamaları HÜCRE KOPYALAMA & TAŞIMA FORMÜL GİRİŞİ FORMULLER 3) DÖRT İŞLEM. a) Bugün: b) Şimdi: c) Topla: d) Çarpım:

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Uygulama 1) Tur sayısını 1 den klavyeden girilen n e kadar ekrana yazarak birikimli (kümülatif) toplam alan kaynak kodları yazınız.

HESAP MAKİNASI YAPIMI

notlarına da (ders de tutmuş oldukları notlara) bakarak çalışmaları gerekmektedir.

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

EXCEL DE ARİTMETİKSEL İŞLEMLER

PROGRAMLAMA DİLLERİ I

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

BİL-142 Bilgisayar Programlama II

MENÜ AYARLAMA 1. MENÜ AYARLAMA. [X] [X] Standard. [X] [X] Yeni Fonksiyon

MS Excel. Excel Microsoft Office in bir parçasını oluşturur. Office 2007, Office 2010, Office 2013, Office 2016

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

MICROSOFT EXCEL 2000

BİLGİSAYAR PROGRAMLAMA DERSİ

Transkript:

Excel Makro MAKROLARA GİRİŞ 1 Değişkenler (Variables) Dim degisken_adi as type Dim sayi as integer Sayı adında tam sayı bir değişken tanımlar. Integer değişken tipi 2 byte tır ve -32.768 ile 32.767 arasında değerler alabilir. Ek-A daki listede diğer değişken tiplerinin de özellikleri verilmiştir. VBA in anahtar sözcükleri kullanmayın. Maksimum uzunluk 255 karakterdir. İlk karakterin bir harf olması gerekir. Değişkenin ismi nokta, boşluk yada! @ # & veya $ içeremez. Mantıksal değişken tanımlama Dim bugunhaftaicimi as Boolean Bugunhaftaicimi=true Tarihsel değişken tanımlama Dim d1, d2, d3 as date d1=# 01/01/1999 # 2 Sabitler (Const) Const sabit_adi as Type=değer Const sayi as double=0.055 Const yol= c:\deneme.xls Sabit için type belirtmezseniz, VBA seçtiğiniz değere en uygun değişken tipini kullanır. İsimlendirme kuralları değişken tanımlamada kullanılan kurallar ile aynıdır. 3 Diziler Dim dizi(10) as string Dim ikiboyutlu(10,5) as integer

Diziler birden fazla değeri bir değişken üzerinde tutmak ve bunlara bir index vermek için kullanılır. VBA da diziler 0 dan başlar. Örneğin 10 genişlikli bir dizinin 0...10 a kadar 11 elemanı olabilir. 4 Kontrol deyimleri if...then...else yapısı if then else yapısı en sık kullanılan kontrol bloklarındandır. Temelde program içersinde karar vermeyi sağlar. AND, OR, NOT, XOR gibi yardımcı ifadelerle de güçlendirilir. if koşu1 then işlemler elseif koşul2 then işlemler else işlemler end if Örnek if not<45 then durum= KALDI elseif not>=45 and <70 durum= ORTA elseif not>=70 and not<85 then durum= İYİ else durum= ÇOK İYİ end if Select case yapısı if then else yapısında oluşturulduğunda karmaşaya yola açabilecek yada daha uzun yazmak gerektiğinde select case yapısı if then else yapısının yerine geçer ve işlemleri basitleştirirek yazılmasını kısaltır. Select case değişken

Case koşul1 İşlemler Case koşul2 İşlemler Case else İşlemler End select Örnek Dim not as integer not=inputbox( Öğrencinin Notunu Giriniz, Not Girişi ) select case not case not <45 msgbox KALDI case not>=45 and not<70 msgbox ORTA case not>=70 and not<85 msgbox İYİ case else msgbox ÇOK İYİ end select 5 Döngüler For next döngüsü Çok fazla tekrarlanan işlemleri döngüler yardımıyla daha az kod ile yazarız. For next döngüsü bir değişken kullanarak tekrarlanan işlemler yapar. Toplam=0 For i=1 to 5 Toplam=toplam+i^2 Next i

Msgbox toplam i i 2 Toplam 1 1 1 2 4 5 3 9 14 4 16 30 5 25 55 Not: for i=5 to 1 step -1 olsaydı 1 azalarak döngü dönerdi. Do while döngüsü Bir koşula bağlı olarak tekrarlı işlemleri yapmak için kullanılan döngülerdir. Koşul sağlandığı sürece işlemler yapılır. Koşul sağlanmasa bile While ifadesi şayet loop un yanında ise döngü en az bir kez döner. i=0 Do while i<=5 i=i+1 Toplam=toplam+i^2 Loop ---------------------------------------------------- Toplam=0 i=5 do i=i-1 toplam=toplam+i^2 loop while i>5 Yukarıdaki döngü sadece bir kez döner ve toplam=16 çıkar. Do until döngüsü Koşul sağlanana kadar işlemler yapılır. Koşul sağlanmasa bile until ifadesi şayet loop un yanında ise döngü en az bir kez döner.

i=0 Do until i=5 i=i+1 Toplam=toplam+i^2 Loop Msgbox toplam ---------------------------------------------------- Toplam=0 i=5 do i=i-1 toplam=toplam+i^2 loop until i=4 Yukarıdaki döngü sadece bir kez döner ve toplam=16 çıkar. 6 MSGBOX kullanımı Msgbox kullanıcıya mesaj vermek için kullanılır. Aşağıdaki Yapıda Yazılır. Msgbox (Mesaj, Parametre1+Paremetre2+Parametre3, Başlık) Parametre1: Mesaj kutusundaki simgenin ne olacağını belirler. (VbInformation, VbQuestion vb..) Parametre2: Mesaj kutusundaki Butonların stilini belirler (VbYesNo, VbOkCancel, VbOkOnly vb..) Parametre3: Mesaj kutusundaki butonlardan hangisinin ilk açılışta varsayılan buton olacağını belirler. (VbDefaultbutton1, VbDefaultButton2 vb..) Örnek Bir form üzerinde çalışıldığında programı bir mesaj ile kullanıcıya sorarak sonlandırır. Private Sub CommandButton6_Click() cevap = MsgBox("Çıkmak İstediğinizden Emin misiniz?", vbquestion + vbyesno + vbdefaultbutton2, "Çıkış") If cevap = vbyes Then End

End If Not: Daha fazla bilgi için Ek-B den yararlanabilirsiniz... 7 INPUTBOX kullanımı İnputbox kullanıcıya bir mesaj vererek kullanıcıdan bir değer almayı sağlar ve bu değeri bir değişkene aktarır. Değişken=inputbox(Mesaj, Başlık, İfade) not= inputbox ( Bir not giriniz, Not Girişi, Buraya Not Yazın ) if not<45 then durum= kaldı else durum= geçti end if WORKBOOKS Çalışma Kitabı nesnesidir. Bir VBA dilinde yada Visual Basicte program yazarken workbooks nesnesi çalışma kitaplarını gösterir. Bir Workbook oluşturmak ve eklemek Private Sub CommandButton1_Click() Dim Workbook1 As Workbook Dim Workbook2 As Workbook Set Workbook1 = Workbooks.Add Set Workbook2 = Workbooks.Add Workbook1.Activate Private Sub CommandButton13_Click() Dim sayfam As Excel.Worksheet Set sayfam = Worksheets.Add()

Bir workbook nesnesi açmak Private Sub CommandButton4_Click() Dim Workbook1 As Workbook Set Workbook1 = Workbooks.Open(FileName:="C:\book1.xls") MsgBox Workbook1.Name Private Sub CommandButton2_Click() Dim Workbook1 As Workbook Set Workbook1 = Workbooks.Add(Template:="C:\book1.xls") Daha önceden kaydedilmiş bir workbook açar ve A1 hücresine bugünün tarihini formatlayarak girer. Private Sub CommandButton10_Click() Dim Workbook1 As Workbook Set Workbook1 = Workbooks.Open(FileName:="c:\book1.xls") Range("A1").Value = Format(Date, "ddd mmm dd, yyyy") Range("A1").EntireColumn.AutoFit Workbook1.Close SaveChanges:=True Bir workbook nesnesini kapatmak Private Sub CommandButton5_Click() ActiveWorkbook.Close Work book nesnesini kaydetmek, ancak aynı isimle daha önceden var ise dosya sonuna bir sonraki dosya sayısını atar. Private Sub CommandButton9_Click() Dim Workbook1 As Workbook Dim i As Integer

Dim FileName As String Set Workbook1 = Workbooks.Add(Template:=ThisWorkbook.Path & "\book1.xls") i = 0 Do i = i + 1 FileName = ThisWorkbook.Path & "\book1.xls" & i & ".xls" Loop While FileExists(FileName) Workbook1.SaveAs FileName:=FileName Work book nesnesini aynı isimli diğer dosya üzerine kaydetmek Private Sub CommandButton7_Click() Dim Workbook1 As Workbook Set Workbook1 = Workbooks.Add Application.DisplayAlerts = False Workbook1.SaveAs FileName:=ThisWorkbook.Path & "\book1.xls" Application.DisplayAlerts = True Workbook klasör içinde daha önceden kaydedilmiş mi? Private Sub CommandButton8_Click() Dim FileName As String FileName = ThisWorkbook.Path & "\book1.xls" If FileExists(FileName) Then MsgBox FileName & " daha önce kaydedilmiş" Else MsgBox FileName & " kaydedilmemiş" End If

WORKSHEETS Worksheetlerin index numaralarının mesaj ile gösterilmesi. Private Sub CommandButton11_Click() Dim i As Integer For i = 1 To ThisWorkbook.Worksheets.Count MsgBox Worksheets(i).Name & " has Index = " & ThisWorkbook.Worksheets(i).Index Next i Girilen isimdeki çalışma sayfasını siler. Private Sub CommandButton12_Click() sayfaadi = InputBox("Bir Çalışma Sayfası Adı Giriniz", "Çalışma Sayfası Silme", "") Application.DisplayAlerts = False ActiveWorkbook.Worksheets(sayfaadi).Delete Application.DisplayAlerts = True Girilen isimdeki çalışma sayfasını kopyalar. Private Sub CommandButton14_Click() sayfaadi = InputBox("Bir Çalışma Sayfası Adı Giriniz", "Çalışma Sayfası Kopyalama", "") ActiveWorkbook.Worksheets(sayfaadi).Copy after:=worksheets(worksheets.count) RANGE B3 ten E10 a kadar olan aralığı seçer. C5 hücresini aktif eder. Private Sub CommandButton15_Click() Range("B3:E10").Select Range("C5").Activate Aktif çalışma sayfasının A1:A10 hücre aralığındaki değerlerin toplamını mesajlar.

Private Sub CommandButton16_Click() MsgBox WorksheetFunction.Sum(ActiveWorkbook.ActiveSheet.Range("A1:A10")) Range Nesnesi üreten özellik ve metodlar ActiveCell Etkin hücre (Application, Window nesnelerinde) Currentregion En yakındaki boş satırlar, boş sütunlar ve çalışma sayfası kenarıyla sınırlanan ancak bunların dahil olmadığı bir aralık. (Range nesnesinde) Dim rng as range Rng=ActiveCell.CurrentRegion Selectionà Geçerli seçim (Application, Window nesnelerinde) UsedrangeàÇalışma sayfasındaki kullanılan bütün hücreleri içeren en küçük dikdörtgen alan (Ws nesnesinde) SpecialCellsàBelirtilen tip ve değerle eşleşen bütün hücreleri seçmeyi sağlar. (Range nesnesinde) SpecialCells metodu için Rng.SpecialCells(Type, Value) Type zorunludur. Value ihmal edilebilir. Value ihmal edilirse tiplerine bakmadan bütün hücreler için seçme işlemi geçerli olur. Type Argumanları xlcelltypeallformatconditionsàherhangi bir formattaki hücreler. xlcelltypeallvalidationàgeçerlilik denetimi ölçütleri içeren hücreler. xlcelltypeblanksàboş Hücreler xlcelltypecommentsànot içeren hücreler xlcelltypeconstantsàsabit (sayı yada metin) içeren hücreler xlcelltypeformulasàformül içeren hücreler xlcelltypelastcellàkullanılan aralıktaki en son hücre xlcelltypesameformatconditionsàaynı formata sahip hücreler xlcelltypesamevalidationàaynı geçerlilik denetimine sahip hücreler xlcelltypevisibleàgörünür durumdaki hücreler. Value Argumanları

xlerrorsàhatalı formül hücreleri xllogicalàmantıksal formüller içeren hücreler xltextvaluesàmetin içeren hücreler xlnumbersàsayı içeren hücreler Etkin hücreyi çevreleyen geçerli bölge içinde metin bulunan bütün hücrelerin içeriğini siler. Private Sub CommandButton17_Click() Dim r As Range Worksheets("deneme").Activate Set r = ActiveCell.CurrentRegion r.specialcells(xlcelltypeconstants, xltextvalues).value = "" Selection özelliği kullanımı Sub secme() Dim rng As Range Set rng = Application.Selection adres = rng.address MsgBox adres Range.Range Kullanımı Private Sub CommandButton19_Click() Dim range3 As Range Dim range4 As Range Set range3 = Worksheets("deneme").Range("b2") Set range4 = range3.range("c4") 'b2 den dolayı c5 hücresini gösterir. b2 yi ilk hücre yani a1 kabul eder Range nesnesinin Offset Özelliği ile Union ve Intersect metodları

Offset belli bir satır veya sütun kadar öteleme sağlar. Range.Range özelliğinden farklı olarak Alfa numerik öteleme yerine sayısal bir öteleme avantajı sağlar. Worksheets( sheet1 ).Activate ActivateCell.Offset(ColumnOffset:=3).Activate Union ile birden fazla range birleştirilir. Böylece union metodu kullanılmış range ler üzerinde bir işlem aynı anda yapılabilir. Dim r1 as range Set r1=union(range( a1:b2 ), range( b2:c4 )) r1.value= Merhaba Yukarıda a1:b2 ve b2:c4 içeren birleştirilmiş aralık içersine merhaba mesajını koyar. Intersect iki yada daha fazla aralığın kesişen hücreleri üzerinde işlem yapmayı sağlar. Dim r1 as range Set r1=intersect(range( a1:b2 ), range( b2:c4 )) r1.value= Merhaba Sadece b2 hücresine Merhaba yazar. CELLS Cells özelliğinin kullanımı Worksheets.Cells(5,5) Worksheets.Cells.item(5,5) B1:B10 aralığındaki hücreleri 10,20,30... 100 değerleriyle doldurur. Dim i as integer For i=1 to 10 Worksheets( sheet1 ).Cells(2,i).Value=i*10 Cells ifadesi kullanarak içiçe fordöngüsü ile 10,5 matris oluşturup içlerine i ve j nin çarpımını koyar. Yani 10x5 lik çarpım tablosu oluşturur. Private Sub CommandButton18_Click() Dim i As Integer, j As Integer For i = 1 To 10 For j = 1 To 5

Cells(i, j).value = i * j Next j Next i Cells özelliğini kullanarak etkin hücre etrafındaki dolu hücrelere bakar ve 45 ten küçük olanları kırmızı diğerlerini yeşil olarak işaretler. Dim row As Integer, col As Integer Dim r As Range Set r = ActiveCell.CurrentRegion For row = 1 To r.width For col = 1 To r.height If r.cells(row, col) < 45 Then r.cells(row, col).font.color = RGB(255, 0, 0) Else r.cells(row, col).font.color = RGB(0, 255, 0) End If Next col Next row Aralıkların adlandırılması Dim r As Range Set r=range( A2 ) r.name= rng range( rng ).value=12 adresgoster=range( rng ).adress msgbox adresgoster Çalışma Sayfasının İçeriğini Yönetmek Range( A1 ).Value=12 Range( A2 ).Value=15

Range( A3 ).Value= =A1+A2 Range( A4 ).Value= =topla( a1:a2) v=range( A3 ).Value f=range( A3 ).Formula Range nesnesinin metodları FONKSİYONLAR 1 Sık Kullanılan Fonksiyonlar Tarih ve saat fonksiyonları, tarih ve saat (zaman) bilgisinin elde edilmesi ve işlenmesini sağlar. DATE Fonksiyonu: Excel'de her güne bir seri numarası verilir. DATE fonksiyonu belirtilen bir tarihin (günü) seri numarasını verir. =DATE(yıl, ay, gün) =TARİH(yıl, ay, gün) Sonucunda o tarihin numarası elde edilir. TODAY Fonksiyonu: Bulunulan günü verir. Genellikle sistem tarihinden gün bilgisini alarak işlem yapıldığında kullanılır. =TODAY() - "1/1/2001" = BUGÜN() Yukarıdaki ifade ile bugün ile yıl sonu arasında kaç gün olduğu hesaplanır. TIME Fonksiyonu: Zamanın seri numarası olarak karşılığını verir. Bir günün başlangıç anı 0 ile, bitiş anı da 0.9999 değeri ile ifade edilir. =TIME(saat, dakika, saniye) Sonucunda o zaman değerinin numarası elde edilir. NOW Fonksiyonu: O anki zamanı tarih ve zaman olarak verir. Diğer bir deyişle o anki zamanı gün, ay, yıl ve saat olarak verir. =NOW() = ŞİMDİ()

Sonucunda o anın değeri elde edilir. INT Fonksiyonu: Belirtilen bir sayıyı tam sayıya yuvarlar. =INT(2.34) Sonucu: 2 =TAMSAYI() Örneğin rastgele üretilen bir değeri tamsayıya çevirmek için: =INT(RAND()+1) Sayısal loto sayısı üretmek: =TAMSAYI((S_SAYI_ÜRET()*49)+1) PRODUCT Fonksiyonları Verilen sayıları çarpar. =PRODUCT(3,7) ya da =ÇARPIM(3,7) Sonucu: 21 RAND Fonksiyonu: 0 ile 1 arasında rastgele bir sayı üretir. =S_SAYI_ÜRET() =RAND() RAND() fonksiyonu 0 ile 1 arasında bir gerçek bir sayı üretir. Bu nedenle genellikle bir sayı ile çarpılır ve tamsayıya çevrilerek kullanılır. =Int(Rnd(1) * 49) + 1 Yukarıdaki fonksiyon her çalıştığında 1 ila 48 arasında bir sayı üretir. ROUND Fonksiyonu Tanımlanan bir sayıyı belirtilen ondalık uzunluğa yuvarlar. =ROUND(sayı, hane sayısı) =ROUND(42.789, 1)

=YUVARLA(42.789, 1) Sonucu: 42.72 EXCEL'in en yaygın kullanıldığı alanlardan birisi de finanstır (mali işler). Çok sayıda finansal fonksiyonun kullanımını öğrenerek mevcut ticari işlemlerinizi kolaylaştırabilir ya da yeni çözümler ve uygulamalar yapabilirsiniz. PMT Fonksiyonu: En yaygın kullanılan finansal (mali) fonksiyondur. Payment (ödeme) fonksiyonu, belli bir faiz oranı üzerinden n dönem sonunda gerçekleşecek nakit girişi ya da çıkışını hesaplar. =PMT(ana para, faiz, süre) Örnek: Yıllık %90 faizle 400 milyon liralık malı 12 ay taksitle almak için ne kadar ödeme yapmanız gerekir? =PMT(%90/12;12;-400000000) 2 Kullanıcı Tanımlı Fonksiyonlar Excel'de bir çok Yerleşik Fonksiyon mevcuttur. Fakat bunlar bazen yapmak istediğiniz işi görmeyebilirler. Belki de siz kendinize özel bir program hazırlamak istiyorsunuz ve burada kullanmak istediğiniz bir fonksiyon Excel'de yok. O halde kendi Fonksiyonunuzu hazırlamalı ve Excel Çalışma Sayfasında kullanılabilir hale getirmelisiniz. İşte bu hazırladığınız fonksiyona Kullanıcı Tanımlı Fonksiyon denmektedir. Ama bu o kadar da kolay bir iş değil. Öncelikle VBA kodlamanın ne olduğunu ve nasıl yapıldığını bilmelisiniz. Eğer bu sayfada iseniz ve bu satırları merakla okuyorsanız, demek ki bu konu hakkında biraz da olsa bilginiz var. Şimdi kullanıcı tanımlı fonksiyon nasıl hazırlanır, bunun ön bilgilerini verelim.... Öncelikle şunu bilmelisiniz ki, bu tür fonksiyonları hangi Çalışma kitabında hazırlayıp kaydetmişseniz, ancak o Çalışma Kitabında kullanabilirsiniz.... Bir çalışma kitabı açın ve bu kitabı kaydedin.... Daha sonra VBA Kod sayfasına geçin.... Yeni bir Modül açın.... Yazmak istediğiniz fonksiyonu Function fonksiyonun_adı (fonksiyonda kullanılan değişkenler) End Function bloğu arasına yazın.... Hazırladığınız fonksiyonu kaydedin. (Bir çok kullanıcı bu işlemi yapmadan çalıştırmaya çalışıyor. Tabi ki, yapamıyor, önce kayıt işlemi yapılmalı, daha sonra çalıştırılacak)... Excel Çalışma Sayfasına geçin ve fonksiyonunuzu kullanmaya başlayın. Aşağıda sizin için basit bir örnek olsun diye böyle bir Kullanıcı Tanımlı Fonksiyon hazırladık. Siz de bunu uygulamaya geçerek işe başlayabilirsiniz. Örnek 1:

Amaç: Öğrencinin yıl sonu not hesabı Veriler: 1 vize ve 1 final notu var. Vize notunun %30'u final notunun ise %40'ı yıl sonu notuna etki edecek. Kullanılacak Formül: 0.3*Vize + 0.7*Final Modül sayfasına yazılacak Kod: Function basari(vize As Integer, final As Integer) basari = 0.3 * vize + 0.7 * final End Function Şimdi, her türlü önleme karşı yazdığınız bu kodu kaydedin. Bazı arkadaşlarımızın, bizim yukarıda yazdığımız kodu hemen alıp modül sayfasına kopyaladıklarını görüyor gibiyim. Tamam, bu da olur ama yazmak, kopyalamakla kıyaslanamayacak kadar iyidir. Eğer hep böyle kopyalama işine alışırsanız, VBA Kod sayfasındaki olayları anlamakta güçlük çekersiniz. Bu basit bir uyarıydı. Tabi ki bu arada siz Çalışma sayfasına geçtiniz. Bundan sonra yapılacak işlem çok kolay. Aşağıdaki şekilde görüldüğü gibi, herhangi bir hücreye gidin ve =basari(50;60) yazın ve Enter tuşuna basın. Sonucu göreceksiniz. Yerleşik Fonksiyonlarda olduğu gibi, Kullanıcı Tanımlı Fonksiyonlarda da, ister doğrudan değişkenlere değer vererek yazarsınız, isterseniz değişken yerine değerin bulunduğu hücre adresini yazarsınız. Burada size yapabileceğimiz tavsiye, tabi ki, ikincisi olan hücre adresini yazmanızdır. Bu değişkenler, adı üzerinde olduğu gibi değişkendir. Sürekli değiştiğinde formülün içine girip yazmanız zor olacaktır. Yine de seçim size kalmış. Yukarıda verdiğimiz örneği biraz daha geliştirelim. Örnek 2: Bu defa iki vize notu olsun ve yıl sonu başarı notuna bu vizelerin ortalaması eklensin. Function basari(vize1 As Integer, vize2 As Integer, final As Integer) vizeort = (vize1 + vize2) / 2 basari = 0.3 * vizeort + 0.7 * final End Function Excel Dosyanızda bir fonksiyon hazırladınız ve bu hazırladığınız fonksiyonu da bütün Excel dosyalarında kullanmak istiyorsunuz? Bunun için aşağıda anlattığımız adımları izlemeniz yeterli. 1. Excel Modül sayfasında bir fonksiyon hazırlayın. 2. Excel Çalışma sayfasına geçerek Dosya (File) menüsünden Farklı Kaydet (Save As) komutunu tıklayın. Aşağıdaki Save As penceresi açılacaktır. 3. Bu penceredeki, Farklı Kayıt Tipi (Save As Type) kutusundan, Microsoft Excel Eklentisi (Microsoft Excel Add-In) (*.xla) seçeneğini seçin. Bu arada Save in kutusundaki kayıt yerinin de AddIns klasörü olduğuna dikkat edin. Bu klasörün yolu şöyledir. "C:\...\Application Data\Microsoft\AddIns" 4. Dosyanız bu defa AddIns klasörünebasari.xla dosyası olarak kaydedilecektir. Artık dosyamız bir Eklenti dosyası olarak hazır. (unutmayın bu dosya yukarıdaki yolunu verdiğimiz klasörde bulunmalı)

5. Şimdi Excel'i Kapatın ve yeniden açın. 6. Araçlar (Tools) menüsünden Eklentiler...(Add-Ins...) komutunu seçin. Ekrana Eklenti penceresi gelecektir. basarı adında bir eklenti listede yerini almış. Sol tarafındaki kutuyu onaylayın ve Tamam (OK) düğmesine tıklayın. Artık, Exceliniz her dosya için basari fonksiyonunu kullanmaya hazır. Aralık ve Metin girildiğinde girilen metinden kaç adet olduğunu bulur. Metinsay fonksiyonu kullanılmıştır. Private Sub CommandButton20_Click() Dim aralik As String Dim metin As String aralik = InputBox("Aralık giriniz", "Aralık") metin = InputBox("Metin giriniz", "Metin") MsgBox metinsay(range(aralik), metin) Kullanılan Fonksiyonlar. Bir dosyanın uzunluğunu sıfırdan büyük olup olmadığına bakan fonksiyon Function FileExists(ByVal FileName As String) As Boolean FileExists = Len(Dir(FileName)) > 0 End Function Girilen metnin seçilen bölgede kaç adet olduğunu görünteleyen fonksiyon Function metinsay(rng As Range, metin As String) Dim sayi As Long Dim r As Range Dim ilkadres sayi = 0 Set r = rng.find(metin) If r Is Nothing Then sayi = 0 Exit Function Else

ilkadres = r.address Do sayi = sayi + 1 Set r = rng.findnext(r) Loop While r.address <> ilkadres End If metinsay = sayi End Function