MAKRO PROGRAMLAMA DERS NOTLARI



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

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

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

UYGULAMALAR. İkinci liste kutusu (List 2) Birinci liste Kutusu (List 1) Metin Kutusu

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

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

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

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

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

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

UZAKTAN EĞİTİM YÖNETİM SİSTEMİ (MMYO)EĞİTMEN YARDIM KILAVUZU

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

HESAP MAKİNASI YAPIMI

ASP.NET ile Bir Web Sitesi Oluşturma

MİCROSOFT EXCEL PROGRAMI DERS NOTLARI

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

DENEME SINAVI. ECDL BAŞLANGIÇ Hesap Tablosu

Görev Çubuğu Özellikleri

DENEME SINAVI CEVAP ANAHTARI

8.Sayfa ve 9.Yazım 10.Belge Görünüm 11.Ekran Yakınlaştırma Sözcük Sayısı Denetimi Düğmeleri ve Uzaklaştırma

Web sayfalarında yapılan her çalışma ve düzenleme tablolar aracılığı ile yapılır. Dolayısıyla çoğu web sayfalarında tablo kullanmak zorunluluktur.

1. ÇALIŞMA ALANI hücre çalışma sayfası kitap Başlık çubuğu Formül çubuğu Aktif hücre Sekmeler Adres çubuğu Kaydırma çubukları Kılavuz çizgileri

MS POWERPOINT Şekil 111 Powerpoint 2010 Programını Başlatmak

1. MİCROSOFT EXCEL 2010 A GİRİŞ

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

Metin Tabanlı İçerik Oluşturma Araçları

Görsel Programlama (Visual Programming) 2.Hafta

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

Animasyon Teknikleri, Ses ve Video İşlemleri 1 / 18

4 Front Page Sayfası Özellikleri

Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri

Kelime işlemcilerin işlevlerini öğrenmek. Başlıca kelime işlemcileri tanımak. Microsoft Word 2010 programı hakkında temel bilgileri öğrenmek.

7 Temmuz Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar

düğmesine ile bir sayfa yukarıya, düğmesi ile bir sayfa aşağı gidebilirsiniz.

Görsel Programlama (Visual Programming) 2.Hafta

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak.

Microsoft Visual Basic kullanarak makro oluşturma

Şekil 2.1. Bu bölümde ASP.Net platformumuzu açtığımızda Toolbox penceresindeki Standart bölümündeki kontrollerden bahsedeceğiz.(şekil 2.2) Şekil 2.

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

BİR İNŞAAT ŞİRKETİNİN DEPO İŞLERİ TAKİP PROGRAMININ ACCESS İLE OLUŞTURULMASI

BM 102 Bilgisayar Programlama II. Windows Form Application

Zoru Kolay Yapmak İçin...

VERİ TABANI UYGULAMALARI

İçindekiler. Akıllı Tahta Uygulaması (ATU) Kullanma Kılavuzu. İçindekiler. Bölüm 1: Uygulama Hakkında Genel bilgi 2

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


Form Nesnesi. Şekil 1. SDI Form. Şekil 2. MDI Form ve alt (Child) formlar

Açılan penceren gerekli ayarlamalar yapılarak sayfa numaraları görüntülenir.

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

Klavye Kullanımı KLAVYE KULLANIMI

EKOM WEB DESIGNER PROGRMI KULLANMA KILAVUZ. 1 - Web Sayfası Tasarımı Oluşturma / Var Olan Tasarımı Açma:

Resim 7.20: Yeni bir ileti oluşturma

MS WORD 4.BÖLÜM. Bölüm Adı: NESNE EKLEME Bölümün Amacı: Belgeye nesne ekleme işlemlerini gerçekleştirmek.

5.Slayt ana hat görünümü 6.Görev bölmesi penceresi 7.Not alanı 8.Durum çubuğu

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

BĐLGĐSAYARDAN BAĞIMSIZ YAZDIRMA ĐŞLEMĐ

MICROSOFT WORD Şekil 1

Response : Sunucunun istemciye veri yollamasını

Excel de çalışma alanı satır ve sütunlardan oluşur. Satırları rakamlar, sütunları ise harfler temsil eder. Excel çalışma sayfası üzerinde toplam

WEB SİTESİ YÖNETİM PANELİ KULLANMA YÖNERGESİ

MICROSOFT OFFICE WORD 2010 ÖRNEK TEST SORULARI

T.C. İçişleri Bakanlığı Bilgi İşlem Dairesi Başkanlığı. Evrak Logo Ekleme Kılavuzu. Kasım 2012

7. BELGEYE RESİM EKLEME, YAZIM ve ÇİZİM ÖZELLİKLERİ

1. BELGE İŞLEMLERİ. Şekil 1.2: Open Office ilk açıldığında gelen ekran

ASP.NET M U S T A F A K I L I Ç M C S E, M C D B A

MİCROSOFT OFFİCE EXCEL SORULARI

1 Organizasyon Tanımlama

PERSONEL BANKA IBAN BİLGİSİ DEĞİŞİKLİĞİ UYGULAMA KILAVUZU

WEB SİTESİ YÖNETİM PANELİ KULLANMA YÖNERGESİ

MICROSOFT WORD Şekil 1 TABLO HAZIRLAMA : Word 2002/II TAB AYARLARI :

OÖ lçu mu Uygulaması

MICROSOFT WORD Word 2000/II TAB AYARLARI :

BİLGİSAYAR PROGRAMLAMA

Frontpage ile Çerçeve Sayfası Yaratmak

Bölüm 4 Microsoft Power Point Sunum Hazırlama

5. HAFTA MS OFFICE EXCEL 2016 ÇUKUROVA ÜNİVERSİTESİ BİLGİSAYARDA VERİ ANALİZİ VE RAPORLAMA

Metin İşlemleri, Semboller

LUCA YENİ ARAYÜZ UYGULAMASI

Örgün Öğrenci Sistemi Anadolu Üniversitesinde öğretim elemanlarının verdikleri

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik

BİLGİSAYAR PROGRAMLAMA


Amaçlarımız. Powerpoint de slaytlara eklentiler yapmak. Asıl slayt kavramını tanımlamak. Asıl slayt üzerinde değişklikler yapmak.

BÖLÜM 5 5. TABLO OLUŞTURMAK


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

Kopyalama ve Taşıma konularıyla ilgili daha değişik uygulamalar yaparak bu konunun pekiştirilmesini sağlamanız yararınıza olacaktır.

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

WORD KULLANIMI

Silmek istediğiniz satır/sütun/hücre yi seçin ve aşağıdaki adımlardan birini takip edin:

Photoshop programında dosyalar üzerinde işlem yaparken genellikle dosya menüsünden yararlanılır.

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

Bu Hafta Öğreneceklerimiz

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

IV. Ünite A. BAŞLANGIÇ B. TEMEL İŞLEMLER C. FORMÜLLER VE FONKSİYONLAR D. BİÇİMLEME E. İLERİ ÖZELLİKLER ELEKTRONİK TABLOLAMA

Bölüm-6 Excel XP - 1 -

BİL 810 İnşaat Mühendisliğinde Bilgisayar Uygulamaları

MEB E-Posta Hizmetleri ve Outlook Programı

12. Kat Oluşturma. Bu konuda mevcut bir katın bilgilerini kullanarak nasıl yeni katlar oluşturulabileceği incelenecektir.

PowerPoint 2010 Sunu Hazırlama Programı

Transkript:

MAKRO PROGRAMLAMA DERS NOTLARI Excel içerisinde kaydedilen visual basic programlama komutlarıyla çalışarak program geliştirme faaliyetine makro programlama denilmektedir. Bu derste Excel çalışma sayfasında makro kaydederek ve kodları inceleyerek makro programlarını anlamaya çalışacağız. Form tasarlama, bileşenleri ekleme, modül ekleme, kod yazma işlemleri yapacağız. Form elemanları özelliklerini öğreneceğiz. 1

Makroları çalıştırma ayarı Makrolar güvenlik nedeniyle varsayılan olarak devre dışı bırakılmaktadır. Makroların çalıştırılması için etkinleştirmek gereklidir. İşlem adımları aşağıdaki gibidir. Dosya menüsü Excel seçenekleri Güven merkezi Güven merkezi ayarları butonu Makro ayarları Tüm Makroları etkinleştir seçimi Tamam butonuyla işlemi bitiriniz. Ayrıca makro bulunan Excel çalışma kitabınızı kaydederken dosya türü seçimi yaparak da çalıştırmanız mümkündür. Türü Makro İçerebilen Excel Çalışma Kitabı 2

Örnek uygulama İşçi Kazanç Tablosu Bir firmadaki işçilerin çalıştığı gün sayısına göre kazancını hesaplayan bir makro yazınız. Günlük ücreti makro programı içerisinde gun=70 olarak tanımlayınız. Hesaplamaları buna göre yaparak kazanç tablosunu oluşturunuz. 3

Form ve Form Bileşenleri Program ara yüzü hazırlamak için formlara ihtiyaç vardır. Formlar üzerine çeşitli nesneler yerleştirilerek ara yüz içeriği tanımlanır. Microsoft Visual Basic kod penceresinde Insert menüsünden UserForm satırı tıklanarak form eklenir. Form eklenince otomatik olarak Toolbox (araç kutusu) görünür hale gelmektedir. Aşağıda bir form ve üzerine bazı nesneler (Controls) eklenmiştir. Form bileşenlerine kontroller de denilmektedir. Label Etiket anlamına gelen bu nesne ile form üzerine istediğiniz konuma metin ekleyebilirsiniz. Eklediğiniz metni özellikler penceresinden yazı tipi ile büyüklüğünü, görünümünü değiştirmeniz mümkündür. TextBox Metin kutusu anlamına gelen bu nesne ile form üzerine istediğiniz konuma metin giriş kutusu ekleyebilirsiniz. Eklediğiniz giriş kutusuna girilecek olan metni özellikler penceresinden yazı tipi ile büyüklüğünü, görünümünü değiştirmeniz mümkündür. CommandButton Komut butonu anlamına gelen bu nesne ile form üzerine istediğiniz konuma komut butonu ekleyebilirsiniz. Eklediğiniz komut butonu üzerine girilecek olan metni özellikler penceresinden belirleyip, yazı tipi ile büyüklüğünü, rengini ve görünümünü değiştirmeniz mümkündür. 4

Properties Makro Programlama Dersleri Öğr. Gör. Ramazan BAYKAL Özellikler anlamına gelen bu pencerede seçili olan form nesnesine ait özellikler ayarlanabilmektedir. Caption Font ForeColor BackColor Name Value Text Height Width : Başlık veya görünecek metin : Yazı tipi özellikleri : Ön renk, yazı rengi : Arka renk, zemin rengi : Nesneye verilecek isim : Değer : Metin : Yükseklik : Genişlik Private Sub CommandButton1_Click() TextBox3.Value = TextBox1.Value * TextBox2.Value 5

Private Sub CommandButton2_Click() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" Private Sub CommandButton3_Click() UserForm2.Hide 6

Form Özellikleri Name BackColor BorderStyle Caption Enabled Font ForeColor Height Left MouseIcon MousePointer Picture PictureAlignment PictureSizeMode PictureTiling ScrollBars StartUpPosition Top WhatThisButton Width Zoom : Form adı : Form rengi : Pencere kenarlığı stili : Pencere başlığı : Kullanılabilirlik (True, False) : Yazı tipi özellikleri : Metin rengi : Form yüksekliği : Formun ekranın sol kenardan uzaklığı : Fare simgesi : Fare işaretçisi : Form yüzeyine resim ekleme : Form yüzeyine eklenen resmin hizalanması : Form yüzeyine eklenen resmin boyutlandırma modu : Form yüzeyine eklenen resmi döşeme (True, False) : Kaydırma çubukları : Formun başlangıç pozisyonu : Formun ekranın üst kenardan uzaklığı : Bu nedir butonu ekler (True, False) : Formun genişliği : Formu büyütme/küçültme yüzdesi Açılır liste kutusu yapma 7

Form üzerine Bir adet Label ve Bir adet combobox yerleştiriniz. Sayfa1 de ders isimlerini önceden yazınız. ComboBoxRowSource özelliğine Sayfa1!A1:A10 yazınız. ComboBoxText özelliğine Ders seçimi yapınız : ifadesini yazınız. Label için Ders seçimi ifadesini Caption olarak belirtiniz. F5 ile çalıştırınız. 8

Liste kutusu yapma Form üzerine Bir adet Label ve Bir adet ListBox yerleştiriniz. Sayfa1 de ders isimlerini önceden yazınız. ListBoxRowSource özelliğine Sayfa1!A1:A10 yazınız. Label için Ders seçimi ifadesini Caption olarak belirtiniz. F5 ile çalıştırınız. 9

MultiPage yapma Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox yerleştiriniz. Page1 Caption özelliğini Zorunlu Dersler olarak değiştiriniz. Page2Caption özelliğini Seçmeli Dersler olarak değiştiriniz. CheckBoxcaptionlarını ders isimleri olarak belirleyiniz. F5 tuşuyla çalıştırınız. 10

GrupBox ve OptionButton hazırlama Form üzerine bir adet GrupBox yerleştiriniz. Caption özelliğine Eğitim Durumu yazınız. GrupBox içerisine dört adet OptionButton yerleştiriniz. Caption özelliğine İlkokul, Ortaokul, Lise, Üniversite kelimelerini yazınız. Form üzerine bir adet Label yerleştiriniz. Caption özelliğine Tahsil Durumu yazınız. Font özelliğinde yazı boyutunu 12 ve kalın seçiniz. Form üzerine bir adet TextBox yerleştiriniz. Font özelliğinde yazı boyutunu 12 ve kalın seçiniz. Form üzerine bir adet CommandButton yerleştiriniz. Caption özelliğine Kaydet yazınız. Font özelliğinde yazı boyutunu 11 ve kalın seçiniz. CommandButton1 nesnesi altına yazılacak kodlar şu şekildedir: Private Sub CommandButton1_Click() Range("B1").Value = TextBox1.Text OptionButton nesneleri için yazılacak kodlar şu şekildedir: Private Sub OptionButton1_Click() TextBox1.Text = "Zayıf" 11

Private Sub OptionButton2_Click() TextBox1.Text = "İdare eder" Private Sub OptionButton3_Click() TextBox1.Text = "İyi" Private Sub OptionButton4_Click() TextBox1.Text = "Çok iyi" ToggleButton Kullanımı Değiştirici düğmeleri anlamında kullanılır. Form üzerine bir adet ToggleButton yerleştiriniz. Caption özelliğine Resmi Gizle yazınız. Form üzerine bir adet Image yerleştiriniz. Picture özelliğini kullanarak bir resim seçiniz. ToggleButton altında çalıştırılacak kodlar şu şekilde olmalıdır: 12

Private Sub ToggleButton1_Click() If ToggleButton1.Value = False Then Image1.Visible = True ToggleButton1.Caption = "Resmi Gizle" Else Image1.Visible = False ToggleButton1.Caption = "Resmi Göster" End If ToggleButtona tıkladığınızda resmi gizliyor veya gösteriyor. Her seferide buton üzerindeki metin duruma uygun olarak değişiyor. Seçilen resim Image çerçevesinden büyük veya küçük olması durumunda stretch özelliği ile çerçeveye göre boyutlandırabilirsiniz. Image1.PictureSizeMode=1- fmpicturesizemodestretch gibi. 13

SpinButton ve ScrollBar Kullanımı SpinButton, değer değiştirici olarak bilinen bir form nesnesidir. Üzerindeki aşağı/yukarı veya sağa/sola doğru ok işaretlerine tıklayarak değer değiştirilir. Başlangıç değeri belirlenebilir. Minimum ve Maksimum değerler belirlenebilir. Orientation özelliği ile pozisyonu değişebilir. Başlangıçta SpinButton değeri Minimum 0, Maximum 100 dür. İstenirse bu değerler -10/+10 gibi değiştirilebilir. ScrollBar, kaydırma çubuğu olarak bilinen bir form nesnesidir. Üzerindeki aşağı/yukarı veya sağa/sola doğru ok işaretlerine tıklayarak değer değiştirilir. Başlangıç değeri belirlenebilir. Minimum ve Maksimum değerler belirlenebilir. Orientation özelliği ile pozisyonu değişebilir. Başlangıçta ScrollBar değeri Minimum 0, Maximum 32767 dir. İstenirse bu değerler -100/+100 gibi değiştirilebilir. Örnek uygulamada form üzerine bir adet SpinButton, bir adet ScrollBar, iki adet label nesnesi, iki adet TextBox nesnesi yerleştirelim. Label nesnelerinin Caption özelliğini ekran görüntüsündeki gibi değiştirelim. TextBox nesnelerinin BackColor özelliğini kullanarak renklendirelim. SpinButton nesnesine tıklandıkça değer değişecektir. Bu değeri TextBox1 değeri olarak tanımlayalım. 14

ScrollBar nesnesine tıklandıkça değer değişecektir. Bu değeri TextBox2 değeri olarak tanımlayalım. Şimdi sıra geldi kod yazmaya: SpinButton nesnesine tıklandıkça çalıştırılacak procedure aşağıdaki gibi olmalıdır. Private Sub SpinButton1_Change() TextBox1.Value = SpinButton1.Value ScrollBar nesnesine tıklandıkça çalıştırılacak procedure aşağıdaki gibi olmalıdır. Private Sub ScrollBar1_Change() TextBox2.Value = ScrollBar1.Value Kodlar yazılıp çalıştırıldığında aşağıdaki görüntüye ulaşabilirsiniz. Değerleri fareyle değiştiriniz. ScrolBar üzerindeki değer noktasını fareyle tutup çekerek de değeri değiştirmek mümkündür. 15

For Döngüsü Bir işlemi tekrarlamak için oluşturulan programlama yapısıdır. Bir değişken, başlangıç ve bitiş değerleri belirlenmelidir. Aşağıdaki form tasarımını yapalım. Yazdır butonu altına gerekli kodları yazalım. Örnek olarak girilen bir metni yineleme sayısı kadar tekrarlayarak hücrelere yazdıralım. Kodlar şu şekilde olmalıdır: PrivateSub CommandButton1_Click() For i = 1 To TextBox1.Value Range("A" & i).value = TextBox2.Value Next i EndSub 16

If sorgusu Makro Programlama Dersleri Öğr. Gör. Ramazan BAYKAL Bir değişkeni veya bir durumu sorgulamak için kullanılan programlama yapısıdır. Aşağıdaki form tasarımını yapalım. Yazdır butonu altına gerekli kodları yazalım. Örnek olarak onaylanmış dersleri hücrelere yazdıralım. Kodlar şu şekilde olmalıdır: PrivateSub CommandButton1_Click() If CheckBox1.Value = True Then Range("D1").Value = CheckBox1.Caption EndIf If CheckBox2.Value = True Then Range("D2").Value = CheckBox2.Caption EndIf If CheckBox3.Value = True Then Range("D3").Value = CheckBox3.Caption EndIf If CheckBox4.Value = True Then Range("D4").Value = CheckBox4.Caption EndIf EndSub 17

Onay kutusunun her iki durumunu da kontrol etmek isterseniz kodlar aşağıdaki şekilde hazırlamalısınız. Private Sub CommandButton1_Click() If CheckBox1.Value = True Then Range("D1").Value = CheckBox1.Caption Else Range("D1").Value = "" End If If CheckBox2.Value = True Then Range("D2").Value = CheckBox2.Caption Else Range("D2").Value = "" End If If CheckBox3.Value = True Then Range("D3").Value = CheckBox3.Caption Else Range("D3").Value = "" End If If CheckBox4.Value = True Then Range("D4").Value = CheckBox4.Caption Else Range("D4").Value = "" End If 18

Bir adet ToggleButton kullanarak derslerin hepsini seçebilir veya hiç birini seçmeyebilirsiniz. Aşağıdaki kodları ToggleButton altına yazarak buton adını değiştirebilir veya onay kutularının tümünü onaylayıp kaldırabilirsiniz. Private Sub ToggleButton1_Click() If ToggleButton1.Value = True Then ToggleButton1.Caption = "Hiç Birini Seçme" CheckBox1.Value = True CheckBox2.Value = True CheckBox3.Value = True CheckBox4.Value = True Else ToggleButton1.Caption = "Tümünü Seç" CheckBox1.Value = False CheckBox2.Value = False CheckBox3.Value = False CheckBox4.Value = False End If Burada öğrendiğiniz makro programlama kodlarıyla derslerin hepsini veya dilediğiniz birkaçını onaylayarak ders kaydı yapabilirsiniz. Çift görünümlü buton başlığının hangi durumda nasıl olması gerektiğine dikkat ediniz. 19

Çarpım tablosu oluşturma 2 den 9 a kadar sayılar için çarpım tablosu komutları aşağıdadır. Sadece çarpım sonuçlarını gösterir. 2, 4, 6, 8, 10, 12, 14, 16, 18 gibi sayılar verecektir. Private Sub UserForm_Click() s = 3 Range("B1").Value = "ÇARPIM TABLOSU" Range("B2").Value = " " For i = 2 To 9 For j = 1 To 9 Range("B" & s).value = i * j s = s + 1 Next j Next i Tablo görünümünde tek sütunda hazırlamak için değişken değerlerini ve aritmetik operatörleri de görüntülemek gerekecektir. 2 X 1 = 2 2 X 2 = 4 2 X 3 = 6 gibi Private Sub UserForm_Click() s = 3 Range("B1").Value = "ÇARPIM TABLOSU" Range("B2").Value = "------------------------" For i = 2 To 9 For j = 1 To 9 Range("B" & s).value = i & " X " & j & " = " & (i * j) s = s + 1 Next j Next i 20

Tablo görünümünde çok sütunda hazırlamak için değişken değerlerini ve aritmetik operatörleri de görüntülemek istendiğinde kod yazılımı aşağıdaki gibi olmalıdır. 2 X 1 = 2 3 X 1 = 3 2 X 2 = 4 3 X 2 = 6 2 X 3 = 6 3 X 3 = 9 gibi Private Sub CommandButton1_Click() s = 3 st = 2 Range("D1").Value = "Ç A R P I M T A B L O S U" Range("D2").Value = "--------------------------------------------" For i = 2 To 9 For j = 1 To 9 Cells(s, st).value = i & " X " & j & " = " & (i * j) s = s + 1 Next j s = 3 st = st + 1 Next i 21

Makro kodlarıyla bir butondan herhangi bir programı çalıştırma Çalıştırılabilen dosya adlarını kullanarak bu işlem Shell komutuyla yapılmaktadır. Örneğin hesap makinası programını çalıştıralım. Gerekli kod şöyle olmalıdır: Private Sub CommandButton1_Click() Shell "C:\WINDOWS\system32\Calc.exe", vbnormalfocus Not Defteri programı için gerekli kod ise aşağıdaki gibidir. Private Sub CommandButton1_Click() Shell "C:\WINDOWS\system32\notepad.exe", vbnormalfocus 22

Form Olayları Activate AddControl BeforeDragOver BeforeDropOrPaste BeforeUpdate Click Change DblClick DeActivate DropButtonClick Error Initialize KeyDown KeyPress KeyUp Layout MouseDown MouseMove MouseUp QueryClose : Form aktif olduğunda : Kontrol eklendiğinde : Sürüklemeden önce : Bırakma veya yapıştırmadan önce : Güncellemeden önce : Fare tek tıklandığında : Değerde değişiklik olduğunda : Fare çift tıklandığında : Form pasif olduğunda : Butonu tıklayıp bıraktığında : Hata ile karşılaştığında : Başlatıldığında : Tuş aşağı indiğinde : Tuşa basılı durumda : Tuş yukarı kalktığında : Düzenlendiğinde : Fare sol tuşuna basıldığında : Fare üzerine geldiğinde : Basılan fare sol tuşu bırakıldığında : Sorgu kapandığında 23

RemoveControl Resize Scroll Terminate Zoom : Kontrol kaldırıldığında : Form boyutu değiştirildiğinde : Kaydırıldığında : Form kapatıldığında : Büyütme/Küçültme yapıldığında Kontrol(Nesne) Olayları AfterUpdate BeforeDragOver BeforeDropOrPaste Click DblClick Enter Error Exit KeyDown KeyPress KeyUp MouseDown MouseMove : Güncelleme sonrasında : Sürüklemeden önce : Bırakma veya yapıştırmadan önce : Fare tek tıklandığında : Fare çift tıklandığında : Enter tuşuna basıldığında : Hata olduğunda : Çıkıldığında : Tuşa aşağı indiğinde : Tuşa basılı durumda : Tuş yukarı kalktığında : Fare sol tuşuna basıldığında : Fare üzerine geldiğinde 24

MouseUp Scroll SpinDown SpinUp : Basılan fare sol tuşu bırakıldığında : Kaydırıldığında : Aşağı dönüş yapıldığında : Yukarı dönüş yapıldığında Çalışma Kitabı olayları Activate AddinInstall AddinUninstall AfterSave AfterXmlExport AfterXmlImport BeforeClose BeforePrint BeforeSave BeforeXmlExport BeforeXmlImport DeActivate NewChart NewSheet : Çalışma kitabı aktif olduğunda : Eklenti kurulduğunda : Eklenti kaldırıldığında : Kaydettikten sonra : XML olarak veri dışarı aktarıldıktan sonra : XML olarak veri içeri aktarıldıktan sonra : Kapatmadan önce : Yazdırmadan önce : Kaydetmeden önce : XML olarak veri dışarı aktarıldıktan önce : XML olarak veri içeri aktarıldıktan önce : Çalışma kitabı pasif olduğunda : Yeni grafik sayfası eklendiğinde : Yeni çalışma sayfası eklendiğinde 25

Open PivotTableCloseConnection PivotTableOpenConnection RowSetComplete SheetActivate SheetBeforeDoubleClick SheetBeforeRightClick SheetCalculate SheetChange SheetDeActivate SheetFollowHyperlink SheetPivotTableAfterValueChange : Çalışma kitabı açıldığında : Özet tablo bağlantısı kapandığında : Özet tablo bağlantısı açıldığında :Satır eylemi tamamlandığında :Çalışma sayfası aktif olduğunda : Çalışma sayfasında çift tıklama yapıldığında : Çalışma sayfasında Farenin sağ tuşuna basıldığında : Çalışma sayfası hesaplandığında : Çalışma sayfası değiştiğinde : Çalışma sayfası pasif olduğunda : Çalışma sayfasında köprü izlendiğinde : Özet tablosu değeri değiştikten sonra SheetPivotTableBeforeAllocateChange : Özet tablosu ayırma değişikliğinden önce SheetPivotTableBeforeCommitChange : Özet tablosu değişikliği tamamlamadan önce SheetPivotTableBeforeDiscardChange : Özet tablosu değişikliği atılmadan önce SheetPivotTableChangeSync SheetPivotTableUpdate SheetSelectionChange Sync WindowActivate WindowDeActivate : Özet tablosu uyumu değiştiğinde : Özet tablosu güncellendiğinde :Seçim değiştiğinde :Senkronize : Pencere etkinleştiğinde : Pencere pasifleştiğinde 26

Çalışma Sayfası olayları Activate BeforeDoubleClick BeforeRightClick Calculate Change DeActivate FollowHyperlink PivotTableAfterValueChange PivotTableBeforeAllocateChange PivotTableBeforeCommitChange PivotTableBeforeDiscardChange PivotTableChangeSync PivotTableUpdate SelectionChange : Sayfa aktif olduğunda : Çift tıklamadan önce : Farenin sağ tuşuna basmadan önce : Hesaplandığında : Değiştiğinde : Pasif olduğunda : Köprü izlendiğinde :Özet tablo değeri değiştikten sonra : Özet tablosu ayırma değişikliğinden önce : Özet tablosu değişikliği tamamlamadan önce : Özet tablosu değişikliği atılmadan önce : Özet tablosu uyumu değiştiğinde : Özet tablosu güncellendiğinde : Çalışma sayfası seçildiğinde 27

Örnekler : Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MsgBox "Çift tıklama yaptınız" Private Sub UserForm_Resize() MsgBox UserForm1.Width Private Sub UserForm_Terminate() MsgBox "programı kapattınız." Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MsgBox "1. Text kutusu üzerindesiniz" Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MsgBox "1. Etiket üzerindesiniz" Private Sub CommandButton2_Click() UserForm1.Zoom = TextBox1.Value Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MsgBox "1. Komut Butonu üzerindesiniz" Private Sub Workbook_Open() UserForm1.Show 28

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) UserForm1.Show Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'MsgBox "sayfa1 seçildi" Soldaki formda textbox1 içine gireceğimiz sayısal değer oranına göre büyütme/küçülme yapılıyor Ayrıca Label, CommandButton veya TextBox üzerine fareyle gelindiğinde algılamakta ve mesaj kutusunda gerekli mesaj verilmektedir. Çalışma kitabı açıldığında bu form otomatik olarak ekrana getirilmektedir. 29

Personel kayıt programı Bu program açılan bir text dosyasına kişi bilgileri kaydı yapar. Kayıt üzerinde bul-değiştir işlemleri yapar. C sürücüsünde Personel.txt isimli bir metin dosyanız bulunmalıdır. Kayıt Formu tasarımını hazırlamak için; 4 adet Label, 4 adet TextBox ve 3 adet CommandButton kullanılacaktır. Captionları resimdeki gibi değiştirin. Button ve form isimlerini değiştirin. (Name=buldegistir, frmkaydet gibi.) Bul değiştir Formu tasarımını hazırlamak için; 4 adet Label, 4 adet TextBox, 1 adet SpinButton ve 4 adet CommandButton kullanılacaktır. Captionları resimdeki gibi değiştirin 30

Bul değiştir formu için makro kodları aşağıdadır; Private Sub SpinButton1_SpinDown() If TextBox1 = Empty Then TextBox1 = 1 ElseIf TextBox1 < 2 Then TextBox1 = 1 Else TextBox1 = TextBox1-1 End If Private Sub SpinButton1_SpinUp() If TextBox1 = Empty Then TextBox1 = 1 Else TextBox1 = TextBox1 + 1 31

End If Private Sub UserForm_Initialize() Open "c:\personel.txt" For Random As #1 Len = Len(ALAN) Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode <> 1 Then Cancel = 1 Kaydet formu için makro kodları aşağıdadır; Private Sub kaydet_click() ALAN.adsoyad = TextBox2.Text ALAN.gorev = TextBox3.Text ALAN.ikamet = TextBox4.Text Put #1, TextBox1, ALAN TextBox1 = TextBox1 + 1 TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox2.SetFocus Private Sub UserForm_Initialize() TextBox1.Locked = True TextBox2.SetFocus Open "c:\personel.txt" For Random As #1 Len = Len(ALAN) TextBox1 = LOF(1) / Len(ALAN) TextBox1 = TextBox1 + 1 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode <> 1 Then Cancel = 1 Text dosyasına aşağıdaki gibi kayıt yapılacaktır. 32

Otomatik resim değiştirme Örnek olarak resim formatında 3 adet elimizde bulunsun. Sayfaya bir adet image yerleştirmeniz gerekmektedir. Bir hücreye resim adı yazıldığında otomatik olarak Image yenilensin istiyoruz. Sayfada değişiklik olduğunda makro kodları yeniden çalıştırılmalıdır. res1.jpg res2.jpg res3.jpg Private Sub Worksheet_Change(ByVal Target As Excel.Range) On Error Resume Next Image1.Picture = LoadPicture("D:\Yedek3\ex-makro\" & Cells(1, 1).Value & ".jpg") If Err.Number = 53 Then MsgBox "Dosya Bulunamıyor!" Image1.Picture = LoadPicture("D:\Yedek3\ex-makro\dosyayok.jpg") End If 33

A1 hücresine res1, res2, res3 yazarak Enter tuşuna basıldığında resim değişecektir. Resimler buradaki kodlara göre D:\Yedek3\ex-makro klasöründe bulunmaktadır. Değişiklik yaparak istediğiniz klasördeki resimleri görüntüleyebilirsiniz. Çalışma sayfasına kontrol eklemek Çalışma sayfasına kontrol(nesne) eklemek için şu adımları takip ediniz: Geliştirici sekmesine geçiniz. Denetimler grubundan ekle simgesini açınız. Eklemek istediğiniz kontrole tıklayınız. Sayfa üzerinde kontrolünüzü fareyle çizerek oluşturunuz. Boyutlarını, başlığını vs. değiştirmek için tasarım moduna geçmeniz gerekir. 34

Örnek Çalışma Kayıt Al butonu hazırlayarak, giriş kutusu yardımıyla notları alalım. Hesapla butonu yardımıyla girilen vize ve finalin ortalamasını, harf notunu ve GEÇER/TEKRAR durumunu yazdıralım. Sub Kayıtyap() vize = InputBox("Vize notu?") final = InputBox("Final notu?") kac = InputBox("Kaçıncı satıra yazılacak?") Cells(kac, 1).Value = vize Cells(kac, 2).Value = final Sub Düğme1_Tıklat() ' ' Düğme1_Tıklat Makro ' Makro abc tarafından 28.01.2002 tarihinde kaydedildi. kyt = InputBox("Kayıt Sayısı?") For i = 1 To kyt Cells(i, 3).Value = 0.4 * Cells(i, 1).Value + 0.6 * Cells(i, 2).Value hh = Cells(i, 3).Value Select Case hh Case Is >= 90 Cells(i, 5).Value = "AA" Case Is >= 80 Cells(i, 5).Value = "BB" Case Is >= 70 Cells(i, 5).Value = "CC" Case Is >= 60 Cells(i, 5).Value = "DC" Case Is >= 50 Cells(i, 5).Value = "DD" Case Is >= 40 Cells(i, 5).Value = "FD" Case Is >= 30 Cells(i, 5).Value = "FF" 35

End Select If Cells(i, 3).Value > 59 Then Cells(i, 4).Value = "GEÇER" Else Cells(i, 4).Value = "Tekrar" End If Next i Kayıt al butonuna tıkladığınızda vize, final ve yazılacak satır numarası girilmesi gerekir. 36

Hesaplama yaptırmak için satır numarası girmeniz gerekiyor. Örneğin 4 gibi. 37

FONKSİYON HAZIRLAMA Bir Excel çalışma kitabında fonksiyon hazırlamak ve tüm çalışma kitaplarında çalıştırmak için XLA türünde kaydetmeniz gerekmektedir. Bu türde kaydedilen dosyalar ADDINS klasörüne kaydedilecektir. ADDINS (EKLENTİ) NEDİR? Eklenti demektir. Tanımlı fonksiyonlar bulunan özel tanımlanmış dosyalardır. Örneğin Öğrenci notlarını harf notuna dönüştürmek için fonksiyon yazılarak bu fonksiyon bütün çalışma kitaplarında kullanılabilir. EKLENTİLERİ KULLANIMA AÇMAK Eklentileri kullanıma açmak için Geliştirici sekmesinde bulunan Eklentiler simgesine tıklayınız ve kaydettiğiniz eklenti dosyanızı işaretleyiniz. FONKSİYON HAZIRLAMA Function KUPKOK(SAYI As Integer) KUPKOK = SAYI ^ (1 / 3) End Function Function Puan(Notu As Integer) Select Case Notu Case Is > 100: Puan = "Yanlış girilen not" Case Is >= 90: Puan = "AA" Case Is >= 85: Puan = "BA" Case Is >= 75: Puan = "BB" Case Is >= 70: Puan = "CB" Case Is >= 60: Puan = "CC" Case Is >= 55: Puan = "DC" Case Is >= 50: Puan = "DD" Case Is >= 40: Puan = "FD" Case Is >= 0: Puan = "FF" Case Else: Puan = " Yanlış girilen not " End Select End Function 38

EXCEL DOSYASI AÇILDIĞINDA FORM EKRANA GETİRME Excel dosyası açıldığında form ekrana getirmek için aşağıdaki gibi bir prosedürü kullanmalıyız. Private Sub Workbook_Open() UserForm1.Show EXCEL AÇILDIĞINDA OTOMATİK OLARAK DOSYA AÇMA Bir çalışma kitabının (Excel dosyasının) Excel programı açılınca otomatik olarak açılması için XLSTART klasörüne kaydedilmesi gerekir. Bu klasörün yolu şöyle olabilir; C:\Program Files\Microsoft Office\Office14\XLSTART MAKRO KODLARINA ŞİFRE KONULMASI Makro kodlarını korumak için şifre konulması istenebilir. Bunun için şu adımlar takip edilir; VBA penceresine geçilir. Tools menüsü açılır. VBAProject Properties satırı tıklanır. Protection sekmesine geçilir Lock Protect for viewing onaylanır. Password (Şifre) yazılır. Confirm Password (Tekrar Şifre) yazılır. Tamam tıklanarak çıkılır. 39

BİR PROSEDÜR İÇERİSİNDE BAŞKA PROSEDÜR ÇALIŞTIRMA Bir prosedür içerisinde başka prosedür çalıştırmak mümkündür. Bunun için sadece prosedür adı kullanılr. Prosedürler altprogram (Sub) veya fonksiyon(function) olabilir. Aşağıdaki örnekte hesap1 adlı alt programda 1. Sütunda 1-20 arası satırlara i değeri yazdırılıyor. Sonra hesap2 adlı altprogramda 1. Sütunda 1-20 arası satırlarda bulunan değerlerin karekökleri 2. Sütuna yazdırılıyor. Son olarak hesap isimli alt programda hesap1 ve hesap2 adlı altprogramlar çağrılıyor. Sub hesap() hesap1 hesap2 Sub hesap1() For i = 1 To 20 Cells(i, 1) = i Next i Sub hesap2() For i = 1 To 20 Cells(i, 2) = Cells(i, 1) ^ (1 / 2) Next i GRAFİK EKLEME KODU Sütun grafiği ekleme kodu aşağıdaki gibi yazılmalıdır. Sub graf2() ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlcolumnclustered ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$22:$B$27") Pasta grafiği ekleme kodu aşağıdaki gibi yazılmalıdır. Sub graf3() ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlpie ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$22:$B$27") 40

X-Y Dağılım grafiği ekleme kodu aşağıdaki gibi yazılmalıdır. Sub graf1() ActiveSheet.Shapes.AddChart.Select % Grafik ekleniyor. ActiveChart.ChartType = xlxyscatterlines % Grafik türü belirtiliyor. ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$1:$B$17") % Veri alanı belirleniyor. X-Y Dağılım Grafiği butonuna atanan makroyu çalıştırmak için tıklamak gerekmektedir. 41

42

SAYFAYA BUTON EKLEME Geliştirici sekmesine geçiniz. Denetimler grubunda bulunan Ekle simgesini açınız. Burada Form denetimlerinden Düğme simgesini seçiniz. Sayfada istediğiniz yere düğmeyi çiziniz. 43

BUTONA MAKRO ATAMA Düğme üzerinde sağ tuşa basınız. Makro Ata satırına tıklayınız. Kayıtlı olan bir makro seçiniz. Tamam butonuna tıklayınız. 44