Arcade Türü Oyun Programlamayı
ve Bilgisayar Bilimleri ÖğreninExcel Makro Gösterimi
5.1 Giriş
İş dünyasında bir çalışma günü sık sık birçok tekrar eden işten oluşur. Bu sıkıcıdır, hata yapılması olasıdır ve pahalıdır. Bilgisayarlar bunları daha hızlı ve ucuz yapmakta daha üstün gelmektedir ve ayrıca işleri nasıl otomatikleştireceğini ortaya çıkarmak eğlenceli olabilmektedir. Okulda programlamayı öğrenen bir öğrenci, buna rağmen yıllar içerisinde üreticiliğini kaybederek tekrar eden görevleri programlamaya uyarlamakta başarısız olmaktadır.
Bu kitapta ilgilenilen dilin Python olmasına rağmen, burada öğrenilen fikirler herhangi bir dile uygulanabilir. Bu bölüm, Microsoft Excel ve Visual Basic programlama dili kullanılarak nasıl kullanışlı programlar yapılabileceğini gösterecektir.
Bu örnek aslında yazarın kendi tecrübesinden ortaya çıkmıştır. Bir yatırım firmasında kendi işini otomatikleştiren bir program oluşturmuştur. Bu farkedilen üreticilik onun firmada sorumluluklarında hızlı bir ilerleme kaydetmesine izin vermiştir.
Bu video eğitimin notları alttaki videoda yer almaktadır:
5.2 Eğitim
- İş hayatımıza bir amele olarak başlıyoruz. İşte işimiz:
- İnternetten veri almak zorundayız.
- Verinin grafiğini almak zorundayız.
- Bu grafiklerden farklı veri kümeleri için her gün 10 tane oluşturmak zorunda kalacağız.
- Şimdi, buna ihtiyaç duyabilecek herhangi bir işe bakalım. Bu veri her şey olabilir. Bu örnekte, borsa verilerini kullanacağız.
- Harika, bizim işimiz sıkıcı. Hata vermeye meyilli. Ayrıca çok uzun bir iş. Özellikle de
süslü görünen grafikler yapmak istiyorsanız.
- Ama bekleyin, biz Profesör Craven'in programlama dersini alıyoruz. Hadi bunu deneyelim.
- Bir Excel programı oluşturalım ve bu program internetten aldığı verilerle yeni borsa grafikleri oluştursun
- Bizim programımızın ne yapmasını istediğimizin planı:
- Yeni bir dosya aç
- İnternetten veri al
- Grafik oluştur
- Excel programlamanın aşamaları:
- Excel'i aç
- İlk hücreye “This spreadsheet has our program” yaz.
- Bunu “chart maker” olarak kaydet. Bunu bir Makro çalışma kitabı olarak kaydettiğinden emin ol!
- “view” sekmesine bas
- Makrolara tıkla, ve sonra “record macro”yu seç
- Makroya CreateChart ismini ver
- Boşluk kullanamaz, bu bir fonksiyon adı
- Boşluk kullanamaz, bu bir fonksiyon adı
- Dosya sekmesi...Yeni...Boş Kitap
- Veri sekmesi...Wen'den (Pencereyi yeniden boyutlandırmayın, Excel'de bir bug gösterir.)
- Yahoo'yu kullanın: http://finance.yahoo.com/q/hp?s=wfc
- İlgilendiğimiz tabloyu seçin ve import edin
- Grafiğini çizmek istediğimiz hücreleri seç (ctrl-shift-sol, sonra ctrl-shift aşağı, sonra bir yukarı)
- Ekle sekmesi...Çizgi Grafik
- Yeni sayfaya taşı
- Grafiğe sağ tıkla, "veri seç"
- Sadece grafik kapanmaya ayarlı
- Düzen menüsünü seçin
- Eksen etiketlerini belirleyin
- Lejandı silin
- Başlığı değiştirin
- Kaydediciyi durdurun (sekme, makro butonları, kaydı durdur)
- Yeni oluşturduğumuz tabloya yakın. (Grafik oluşturucu değil)
- Şunu deneyin:
- Grafik yapıcı makroyu çalıştır.
- Güzel, fakat bu bizim çalıştığımız şeyle bu birlikte ne yapmalı?
- Sorduğunuza sevinin. Makroyu oynatmak yerine, düzenlemeye basın.
- İlk satıra dikkat edin. Sub kelimesi subroutine(alt program)'in kısaltmasıdır. Bu da fonksiyon, metot için başka bir isimdir.
- Bakın, Workbooks.Add çalışma kitabına eklenecek bir fonksiyondur. Parametrelere bakın! Boolean'lar! Nesneler!
- Onaylayıcıyı(ticker) değiştirirsek ne olur?
- Güzel! Peki ya ticker'ı temsil eden bir değişkenimiz olsaydı?
- Tamam, sonuç olarak peki ya verdiğimiz adresi bir fonksiyona aktarsaydık?
- Daha sonra bütün bir onaylayıcı sembol yığını ile yeni bir fonksiyon çağıran bir fonksiyon oluşturduk.
Sub CreateCharts() CreateChart ("WMT") CreateChart ("INTC") CreateChart ("WFC") CreateChart ("BBY") CreateChart ("FDX") End Sub
5.3 Kodun Listelenmesi
Sub CreateChart() ' ' CreateChart Macro ' ' Workbooks.Add With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://finance.yahoo.com/q/hp?s=wfc", Destination:=Range("$A$1")) .Name = "hp?s=wfc" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "16" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$G$69") ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.ChartArea.Select ActiveChart.Legend.Select Selection.Delete ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(5).Select ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.ChartArea.Select ActiveChart.ChartTitle.Select ActiveChart.ChartTitle.Text = "WFC" Selection.Format.TextFrame2.TextRange.Characters.Text = "WFC" With Selection.Format.TextFrame2.TextRange.Characters(1, 3).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 3).Font .BaselineOffset = 0 .Bold = msoTrue .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.RGB = RGB(0, 0, 0) .Fill.Transparency = 0 .Fill.Solid .Size = 18 .Italic = msoFalse .Kerning = 12 .Name = "+mn-lt" .UnderlineStyle = msoNoUnderline .Strike = msoNoStrike End With End Sub
Sub CreateChart(ticker) ' ' CreateChart Macro ' ' Workbooks.Add With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://finance.yahoo.com/q/hp?s=" + ticker, Destination:=Range("$A$1")) .Name = "hp?s=wfc" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "16" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$G$69") ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.ChartArea.Select ActiveChart.Legend.Select Selection.Delete ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(1).Select ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).Delete ActiveChart.ChartArea.Select ActiveChart.ChartTitle.Select ActiveChart.ChartTitle.Text = ticker Selection.Format.TextFrame2.TextRange.Characters.Text = ticker With Selection.Format.TextFrame2.TextRange.Characters(1, 3).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 3).Font .BaselineOffset = 0 .Bold = msoTrue .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.RGB = RGB(0, 0, 0) .Fill.Transparency = 0 .Fill.Solid .Size = 18 .Italic = msoFalse .Kerning = 12 .Name = "+mn-lt" .UnderlineStyle = msoNoUnderline .Strike = msoNoStrike End With End Sub
Sub CreateCharts() CreateChart ("WMT") CreateChart ("INTC") CreateChart ("WFC") CreateChart ("BBY") CreateChart ("FDX") End Sub
5.4 Tekrar
Çoktan seçmeli test için buraya tıklayın.
You are not logged in. Log in here and track your progress.
English version by Paul Vincent Craven
Spanish version by Antonio Rodríguez Verdugo
Russian version by Vladimir Slav
Turkish version by Güray Yildirim
Portuguese version by Armando Marques Sobrinho and Tati Carvalho
Dutch version by Frank Waegeman
Hungarian version by Nagy Attila
Finnish version by Jouko Järvenpää
French version by Franco Rossi
Korean version by Kim Zeung-Il
Chinese version by Kai Lin