1. Apps Komut Dosyası'na hoş geldiniz
Apps Komut Dosyası nedir?
Apps Komut Dosyası, Google Workspace deneyiminizi otomatikleştirebilmenizi, özelleştirebilmenizi ve genişletebilmenizi sağlayan hızlı bir uygulama geliştirme platformudur. Apps Komut Dosyası ile Google Workspace'teki zorlu veya karmaşık işleri kolaylaştırarak zamandan ve emekten tasarruf edebilirsiniz.
Apps Komut Dosyası özellikleri arasında şunlar bulunur:
- Apps Komut Dosyası'nın yerleşik hizmetleri, Google Workspace uygulama verilerinizi komut dosyalarıyla okumanıza, güncellemenize ve değiştirmenize olanak tanır.
- Apps Komut Dosyası'nın tarayıcı içi kod düzenleyicisini kullanarak komut dosyaları oluşturabilirsiniz. Kod geliştirme yazılımı yüklemeniz veya çalıştırmanız gerekmez.
- Google Workspace düzenleyicileri için, menü öğelerini, iletişim kutularını ve kenar çubuklarını kullanarak doğrudan bu düzenleyicilerden komut dosyalarını etkinleştirmenize olanak tanıyan kullanıcı arayüzleri tasarlayabilirsiniz.
Bu Google E-Tablolar ile Apps Komut Dosyası Temelleri codelab oynatma listesinde, Apps Komut Dosyası'nın temelleri ve Google E-Tablolar deneyiminizi iyileştirmek için nasıl kullanacağınız açıklanmaktadır. Bu codelab, Apps Komut Dosyası'nın temellerini öğretmeye odaklanmaktadır.
E-tablo hizmeti
Zaman ve emekten tasarruf etmek için Apps Komut Dosyası'nı kullanarak Google E-Tablolar'ın işlevlerini genişletebilirsiniz. Apps Komut Dosyası, komut dosyalarının Google E-Tablosu dosyalarınızla ve içerdiği verilerle etkileşim kurmasına olanak tanıyan E-Tablo hizmetini sağlar. Bu hizmeti kullanarak aşağıdaki yaygın e-tablo görevlerini otomatikleştirebilirsiniz:
- E-tablo oluşturma veya değiştirme
- Hücre verilerini, formülleri ve biçimlendirmeyi okuma ve güncelleme
- Özel düğmeler ve menüler oluşturun.
- Diğer Google uygulamalarından veya üçüncü taraf kaynaklarından veri içe ve dışa aktarma
- E-tabloları paylaşın ve e-tablolara erişimi kontrol edin.
Neler öğreneceksiniz?
Bu oynatma listesinde, Google E-Tablolar ile Apps Komut Dosyası'nı kullanmaya başlamak için ihtiyacınız olan tüm konular ele alınmaktadır:
- Makrolar ve Özel İşlevler
- E-Tablolar, sayfalar ve aralıklar
- Verilerle çalışma
- Veri biçimlendirme
- Slaytlar'da verileri grafiklerle gösterme ve sunma
Bu oynatma listesindeki codelab'ler sırayla okunacak şekilde tasarlanmıştır. Bu nedenle, en iyi öğrenme deneyimi için bu codelab'den başlayıp sırayla tamamlayın.
Bu codelab'in içeriği hakkında daha fazla bilgi edinmek için sonraki bölüme geçin.
2. Giriş
Bu oynatma listesindeki ilk codelab'e hoş geldiniz. Bu codelab'de, Apps Komut Dosyası'nı Google E-Tablolar ile kullanmanın temel bilgilerini öğreneceksiniz. Bu codelab'de özellikle iki temel kavram olan makrolar ve özel işlevler üzerinde durulmaktadır.
Makro, Google E-Tablolar'da kaydedilen bir dizi işlemdir. Kaydettikten sonra, menü öğesi veya kısayol tuşuyla bu işlemleri daha sonra tekrarlamak için makroyu etkinleştirebilirsiniz. Hem Google E-Tablolar'da hem de Apps Komut Dosyası kod düzenleyicisinde kendi makrolarınızı oluşturabilir ve güncelleyebilirsiniz.
Apps Komut Dosyası kod düzenleyicide özel işlevler de oluşturabilirsiniz. E-Tablolar'ın sunduğu yerleşik işlevlere (ör. SUM
veya AVERAGE
) benzer şekilde, Apps Komut Dosyası'nı kullanarak basit ve niş işlemler (ör. dönüşümler veya dize birleştirme) için kendi özel işlevlerinizi yazabilirsiniz. Oluşturulduktan sonra bu işlevleri, yerleşik işlevleri kullandığınız gibi E-Tablolar'da çağırabilirsiniz. Özel işlevler, yazdığınız hücre formüllerinde de kullanılabilir ve gerektiğinde diğer işlevlerle birleştirilebilir.
Bu codelab'in hangi kavramları ve koşulları içerdiğini öğrenmek için aşağıyı okuyun.
Neler öğreneceksiniz?
- Google E-Tablolar için komut dosyası oluşturma
- Apps Komut Dosyası düzenleyicide gezinme
- Makro oluşturma ve güncelleme
- İlk E-Tablolar özel işlevinizi oluşturma
İhtiyacınız olanlar
- JavaScript hakkında temel düzeyde bilgi sahibi olma
- Google E-Tablolar'ı temel düzeyde kullanabilme
- E-Tablolar A1 Notasyonunu okuma özelliği
Tanıtım bölümünü tamamladınız. Makrolarla çalışmaya başlamak için sonraki bölüme geçin.
3. E-Tablolar'da makro oluşturma
Genellikle e-tablolarda çalışırken hücre değerlerini kopyalama, biçimlendirme, formül oluşturma gibi tekrarlayan işlemler döngüsüne girebilirsiniz. Bu durum sıkıcı olabilir ve hatalara yol açabilir. Google E-Tablolar, tekrarlanan işlemleri otomatikleştirmenize yardımcı olmak için makrolar sunar. Makrolar, bir e-tablodaki bir dizi işlemi "kaydetmenize" olanak tanır. Kaydedilmiş bir makroyla, elektronik tablonun başka bir yerinde aynı işlemleri basit bir kısayol tuşuyla tekrarlayabilirsiniz.
Bu bölümde, E-Tablolar'da makro oluşturmayı öğreneceksiniz. Bir sonraki bölümde, Apps Komut Dosyası kullanılarak makroların nasıl oluşturulduğunu göreceksiniz.
Başlamadan önce
Devam etmeden önce bazı verilerin bulunduğu bir e-tabloya ihtiyacınız var. Sizin için bir tane hazırladık: Veri sayfasını kopyalamak için bu bağlantıyı, ardından Kopya oluştur'u tıklayın.
Kullanabileceğiniz örnek e-tablonun bir kopyası Google Drive klasörünüze yerleştirilir ve "En Çok Hasılat Yapan İlk 10 Film (2018) Kopyası" olarak adlandırılır.
Makro oluşturma
Çalışacağınız bir e-tablonuz olduğuna göre artık Google E-Tablolar'da makro kaydedebilirsiniz. Bu örnekte, verileriniz için bir başlık satırını biçimlendiren bir makro oluşturacaksınız. Aşağıdaki adımları uygulamanız yeterlidir:
- İmleci satıra yerleştirmek için A1 hücresini tıklayın. Bu, başlık satırınızdır.
- Menüde Uzantılar > Makrolar > Makro Kaydet'i seçin.
Kaydı başlattığınızda Google E-Tablolar, e-tabloda yaptığınız her işlemi (ör. hücreleri vurgulama, veri ekleme, farklı sayfalara geçme, biçimlendirme) hatırlar. Bu işlemler, makroyu kaydedip daha sonra etkinleştirdiğinizde tekrarlanan "komut dosyası" haline gelir.
- Makro iletişim kutusunda Göreceli başvuru'yu seçin.
- 1. satırı seçin.
- En üst satırın Dolgu Rengi'ni beyazdan koyu magenta 3'e değiştirin.
- En üst satırın Metin Rengi'ni siyahtan beyaza değiştirin.
- Metni kalınlaştırmak için Ctrl+B (veya macOS'te Cmd+B) tuşlarına basın.
- En üstteki satırı dondurmak için Görünüm > Dondur > 1 satır'ı seçin.
- Makro iletişim kutusunda Kaydet'i tıklayın. Yeni bir iletişim kutusunda makroyu adlandırmanız istenir. "Başlık" adını girip Kaydet'i tıklayın.
E-Tablolar'ın kullanıcı arayüzünü kullanarak üstbilgileri biçimlendirmeye özel bir makro oluşturdunuz.
Makronuzu etkinleştirme
Aşağıdaki talimatları uygulayarak yeni makronuzu E-Tablolar'da kullanabilirsiniz:
- E-tablo oluşturmak için E-tablo ekle'yi
tıklayın.
- Yeni sayfada A1:C2 aralığına biraz metin ekleyin. Aşağıdaki örnek girişleri kullanabilirsiniz:
- İlk satırı vurgulayın.
- Makroyu seçili alana uygulamak için Uzantılar > Makrolar > Başlık'ı tıklayın.
- Ekrandaki talimatları uygulayarak makroyu yetkilendirin.
- Makroyu tekrar çalıştırmak için 4. adımı tekrarlayın (yetkilendirme, ilk yürütmeyi durdurur).
Tebrikler, E-Tablolar'da makro uygulamayı öğrendiniz. E-tablonuz şu şekilde görünmelidir:
Makrolar, e-tabloları verimli bir şekilde oluşturmanıza olanak tanır. Bu codelab'in bir sonraki bölümünde, makrolarınızı daha da güçlü hale getirmeyi öğreneceksiniz. İşin sırrı şudur: Makro kaydettiğinizde aslında Apps Komut Dosyası kodu yazarsınız. E-Tablolar, arka planda makro işlemlerine uygun kodu oluşturur. Sonraki bölümde, Apps Komut Dosyası'nın tarayıcı içi düzenleyicisini kullanarak kodu doğrudan nasıl değiştireceğinizi öğreneceksiniz.
4. Komut dosyası düzenleyicisindeki makrolar
Bir makro oluştururken Google E-Tablolar, işlemlerinizi Apps Komut Dosyası işlevi olarak kaydeder. Makroyu etkinleştirdiğinizde Google E-Tablolar, bu işlemleri aynı sırada uygulamak için Apps Komut Dosyası işlevini çağırır.
Komut dosyası düzenleyici
Makro oluşturduğunuza göre artık koduna bakabilirsiniz. Makro komut dosyasını görüntülemek için Uzantılar > Apps Komut Dosyası'nı tıklayarak Apps Komut Dosyası'nın tarayıcı kod düzenleyicisini açın.
Komut dosyası düzenleyici, Apps Komut Dosyası'nda kod yazmanıza ve bu komut dosyalarını Google sunucularında çalıştırmanıza olanak tanır.
macros.gs
analizi
Mevcut senaryoyu inceleyin. E-Tablolar, Header
makrosunu kaydettiğinizde macros.gs
komut dosyası oluşturup Header
adlı ilgili bir Apps Komut Dosyası işleviyle doldurdu. Header
makrosunu etkinleştirdiğinizde E-Tablolar bu işlevi çalıştırır.
Apps Komut Dosyası'ndaki makro işlevinizin yapısını öğrenmek için aşağıdaki resme bakın. Adımları farklı bir sırada kaydettiyseniz veya kayıt sırasında e-tabloda farklı yerleri tıkladıysanız kodunuz bu koddan biraz farklı görünebilir.
İlk satır, yetkilendirmeyi etkileyen bir açıklama yorumudur:
/** @OnlyCurrentDoc */
Çoğu komut dosyası çalıştırılmadan önce kullanıcıdan bazı izinler ister. Bu izinler, kullanıcının komut dosyasının yapmasına izin verdiği işlemleri kontrol eder. Bir komut dosyası projesinde @OnlyCurrentDoc
yorumu varsa Apps Komut Dosyası yalnızca mevcut e-tabloya erişme ve e-tabloyu güncelleme izni ister. Bu yorum olmadan Apps Komut Dosyası, kullanıcının tüm e-tablolarına erişmek ve bunları güncellemek için izin ister. Tek bir dosyayla çalışırken bu ek açıklamayı eklemek her zaman en iyi uygulamadır. Makro kaydedici bu yorumu sizin için otomatik olarak ekler.
Apps Komut Dosyası'nın makronuzun talimatlarını nasıl temsil ettiğini anlamak için aşağıdaki işlevi inceleyebilirsiniz:
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, sheet.getMaxColumns()).activate();
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
};
Bu kod, Header
makrosunu etkinleştirdiğinizde çalışır. function
sonrasında gelen Header()
etiketi, işlevin adını ve parametrelerini tanımlar. Apps Komut Dosyası'ndaki makro işlevlerinin girişlere ihtiyacı olmadığından Header()
için parametre gerekmediğini unutmayın. Küme parantezleri, Apps Komut Dosyası'nda her zaman bir işlevin gövdesini kapsar.
Bu oynatma listesindeki sonraki codelab'lerde makro oluşturmayla ilgili sınıflar ve kavramlar açıklanmaktadır. Şimdilik, bileşenleri ve makronuzu oluşturmadaki rolleri hakkında genel bir fikir edinmek için aşağıdaki kod açıklamalarını inceleyebilirsiniz. İlk satırı ele alalım:
var spreadsheet = SpreadsheetApp.getActive();
Burada getActive()
, E-Tablolar'daki mevcut etkin e-tablo dosyasını temsil eden bir nesne döndürür ve bunu yeni değişken spreadsheet
olarak ayarlar.
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, sheet.getMaxColumns()).activate();
Bu satırlar, ilk satırı tıklayarak vurgulama işlemine karşılık gelir. Buna etkinleştirme denir. İlk satır, geçerli sayfayı sheet
değişkeninde saklarken ikinci satır, getRange()
yöntemini kullanarak ilk satırın tamamını alır ve ardından etkinleştirmek için activate()
yöntemini çağırır. İlk satır, belirli satır ve sütun numaraları kullanılarak belirtilir. spreadsheet.getCurrentCell().getRow()
işlevi geçerli satırın numarasını, sheet.getMaxColumns()
işlevi ise sayfadaki maksimum sütun sayısını döndürür.
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
Bu kod parçası daha karmaşık hale gelir. spreadsheet
ile yöntemleri verimli bir şekilde çağırmak için kod, bu spreadsheet
yönteminin birden fazla kez gereksiz yere çağrılmasını önlemek amacıyla üç yöntemi getActiveRangeList()
üzerine yığar. Apps Komut Dosyası'nı kullanarak daha fazla kod yazdıkça tek bir sınıfta birden fazla yöntemi çağırma (yöntem zincirleme olarak da bilinir) kuralına daha fazla alışacaksınız. Şimdilik kod bloğundaki her yöntemle ilgili kısa açıklamalar için aşağıdakileri okuyabilirsiniz:
getActiveRangeList()
,spreadsheet
içindeki geçerli etkinRangeList
değerini döndürür. Bu durumda, önceki satırın etkinleştirdiği ilk satır yeterlidir.- Hem
setBackground(color)
hem desetFontColor(color)
yöntemleri, etkin aralıktaki hücrelerin renk özelliklerini değiştirir. setFontWeight(fontWeight)
, etkin aralıktaki hücrelerin yazı tipi ağırlığını ayarlar.
Son olarak, son satır makronun ilk satırını dondurur:
spreadsheet.getActiveSheet().setFrozenRows(1);
Bu, makronuzu kaydederken oluşturduğunuz komut dosyasıdır. Yukarıda bahsedilen yabancı terimler veya yöntemler konusunda endişelenmeyin. Bu açıklama, Apps Komut Dosyası'nın tipik bir makro işlevinde odaklandığı bazı fikirler ve gelecekteki codelab'lerin ele alacağı konular hakkında düşünmenizi sağlamak için hazırlanmıştır.
Sonraki bölümde, makroları daha fazla kişiselleştirmek için komut dosyası düzenleyiciyi nasıl kullanabileceğinizi göstermek amacıyla Header()
işlevinin kodunu değiştirme konusu ele alınmaktadır.
Apps Komut Dosyası ile makroları özelleştirme
Apps Komut Dosyası düzenleyicisinde, daha önce Google E-Tablolar'da oluşturduğunuz makro gösterilir. İşlev gövdesinin içeriğini ayarlayarak makronuzun talimatlarını farklı veya ek işlemler yapacak şekilde daha da özelleştirebilirsiniz. Aşağıdaki alıştırmalarda, komut dosyası düzenleyiciyle makroları kullanmanın çeşitli yolları gösterilmektedir.
Etkilenen hücreleri değiştirme
Makronuzu, satırın tamamı yerine yalnızca ilk satırın ilk 10 sütununu etkileyecek şekilde değiştirmek istediğinizi varsayalım. Makroyu silip yeniden kaydedebilirsiniz. Ancak Apps Komut Dosyası düzenleyiciyi kullanarak bu değişiklikleri doğrudan yapabilirsiniz. Bunu yapmanın bir yolu şudur:
- Komut dosyası düzenleyicide
sheet.getMaxColumns()
değerini10
ile değiştirin. Bu düzenleme, makronun e-tabloda etkilediği hücre aralığını değiştirir.
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
/* sheet.getMaxColumns() replaced with 10.*/
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- Senaryonuzu kaydetmek için Kaydet'i
tıklayın.
- Projenizi yeniden adlandırmak için yeni proje adı olarak "Makrolar ve Özel İşlevler"i girin ve Yeniden adlandır'ı tıklayın.
- E-Tablolar'da sayfa oluşturmak için Sayfa ekle'yi
tıklayın.
- Komut dosyası düzenleyicide, işlevler listesinden
Header
simgesini seçin ve Çalıştır'ı tıklayın.
Yeni sayfanızda aşağıdaki sonucu görmeniz gerekir:
Etkin veya hedef aralığı değiştirerek makronuzun artık yalnızca ilk satırın bir bölümünü etkilemesini sağlayabilirsiniz. Birçok Apps Komut Dosyası yöntemi, hangi hücrelerde işlem yapılacağını belirtmek için parametre olarak bir aralık veya A1 gösterimi alır.
Şimdi de makro renklerinizi özelleştirme hakkında bilgi edinelim.
Makronuzun renklerini değiştirme
Apps Komut Dosyası, E-Tablolar'daki makroların veya diğer öğelerin renk şemasını tasarlamanıza yardımcı olmak için bir aralığın dolgu veya metin rengini değiştirebilir. Makronuzun renklerini nasıl özelleştirebileceğinizi öğrenmek için aşağıdaki talimatları uygulayın.
Bu talimatlar, makronuzun arka plan rengini değiştirmeye odaklanmaktadır:
- E-Tablolar'da, orijinal verileri içeren sayfaya (Sayfa1) geri dönün.
- İlk satırı tıklayarak vurgulayın.
- Komut dosyası düzenleyicide arka plan rengi
#4c1130
yerine#afeeee
yazın. Bu değerler, onaltılık üçlü gösterimi kullanılarak farklı renkleri ifade eder.
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
spreadsheet.getActiveRangeList().setBackground('#afeeee')
/* #4c1130 replaced with #afeeee.*/
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- Senaryonuzu kaydetmek için Kaydet'i
tıklayın.
- İşlevler listesinden
Header
simgesini seçip Çalıştır'ı tıklayın.
E-Tablolar'da, ilk satırdaki ilk 10 sütunun arka plan dolgusu özel bir turkuaz renge dönüşür:
setBackground(color)
parametrelerindeki onaltılık renk gösterimini #4c1130
(koyu macenta 3) yerine #afeeee
(soluk turkuaz, Sheets'in varsayılan renk menüsünde erişilemeyen bir seçenek) olarak değiştirerek makronuzun arka plan rengi özelliğini değiştirirsiniz.
Artık makronuz tarafından ayarlanan arka plan rengini değiştirdiniz. Metin rengini de değiştirmek istiyorsanız ikinci renk kodunu değiştirin.
- E-Tablolar'da, ilk satırın vurgulanmaya devam ettiğinden emin olmak için bu satırı tıklayın.
- Komut dosyası düzenleyicide yazı tipi rengi
#ffffff
değerini#191970
ile değiştirin. Bu, makronun yazı tipi rengini lacivert olarak ayarlamasına neden olur.
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
spreadsheet.getActiveRangeList().setBackground('#afeeee')
.setFontColor('#191970')/* #ffffff replaced with #191970.*/
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- Senaryonuzu kaydetmek için Kaydet'i
tıklayın.
- İşlevler listesinden
Header
simgesini seçip Çalıştır'ı tıklayın.
Başlık satırının metin renginin artık lacivert olduğunu görmek için E-Tablolar'a dönün.
Makroların, Apps Komut Dosyası kodu olarak kaydedilen E-Tablolar işlemleri olduğunu öğrendiniz. Bir sonraki bölümde, Apps Komut Dosyası'nın Google E-Tablolar ile çalışmanıza yardımcı olabileceği başka bir yolu (özel işlevler) inceleyebilirsiniz.
5. İlk komut dosyanızı kodlama: Özel işlevler
Çoğu e-tablo uygulamasında olduğu gibi Google E-Tablolar'da da e-tablo verileri üzerinde hızlı hesaplamalar yapmayı sağlayan =SUM()
gibi çeşitli yerleşik formül işlevleri bulunur. Özel işlevler, Apps Komut Dosyası'nı kullanarak belirttiğiniz işlevlerdir. Tanımladığınız özel işlevleri, yerleşik işlevler gibi e-tablonuzun herhangi bir yerinde kullanabilirsiniz.
Bu bölümde, Apps Komut Dosyası'nda para birimi dönüştürme işlemi yapan özel bir işlevin nasıl oluşturulacağı açıklanmaktadır.
Komut dosyası oluşturma
Makrolar bölümündeki aynı e-tablo ve komut dosyası projesini kullanarak yeni bir komut dosyası oluşturmayı öğrenmek için aşağıdaki talimatları uygulayın (bu komut dosyasını ilk özel işlevinizi oluşturmak için kullanabilirsiniz):
- Apps Komut Dosyası oluşturmak için komut dosyası düzenleyiciye dönün.
- Dosyalar'ın yanında Dosya ekle
> Komut Dosyası'nı tıklayın.
- Yeni komut dosyasına ad verin
customFunctions
ve Enter tuşuna basın. (Apps Komut Dosyası, komut dosyası adına otomatik olarak.gs
uzantısını ekler.)
Düzenleyicide customFunctions.gs
adlı yeni bir sekme gösterilir.
Özel işlevler için özel bir komut dosyası oluşturduğunuza göre artık bu dosyayı kodla doldurabilirsiniz.
ABD dolarını İsviçre frangına dönüştürme
"2018'in En Çok Hasılat Yapan İlk 10 Filmi" ile ilgili verileri, yalnızca ABD doları cinsinden dünya çapındaki brüt değerleri değil, İsviçre frangı cinsinden değerleri de gösterecek şekilde değiştirmek istediğinizi varsayalım. Özel işlevlerle bu işlemi kolayca yapabilirsiniz. Aşağıdaki alıştırmada, dolar değerlerinizi matematiksel olarak frank değerlerine dönüştürmek için özel bir işlevin nasıl oluşturulacağı gösterilmektedir.
İlk özel işlevinizi yazmadan önce, işlevin uygun bir çıkış göstermesine olanak tanımak için veri kümenizi değiştirin. Bunu yapmak için:
- E-Tablolar'da H sütununu sağ tıklayın.
- Açılan menüde Sağa 1 sütun ekle'yi tıklayın.
- I1 hücresindeki sütunu "Worldwide_Gross (Swiss francs)" (Dünya Çapında Toplam Hasılat (İsviçre frangı)) olarak etiketleyin.
Artık dönüşüm özel işlevinizin sonuçlarını depolayabileceğiniz bir sütununuz var. Ardından, ilk özel işlevinizi oluşturmak için komut dosyası düzenleyiciyi kullanabilirsiniz.
customFunctions.gs
içindemyFunction()
kodunu aşağıdaki kodla değiştirin:
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {number} swissFrancs The converted total of Swiss francs.
* @customfunction
*/
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return swissFrancs;
}
Bu kod, ABD dolarını İsviçre frangına dönüştürür. Aşağıdaki talimatları deneyin ve özel işlevleri e-tablolarda nasıl çalıştırabileceğinizi öğrenin.
- Senaryonuzu kaydetmek için Kaydet'i
tıklayın.
- E-Tablolar'da I2 hücresini seçin.
- İşlev çubuğuna
=USDTOCHF(H2)
yazın.
Formülü sütundaki diğer hücrelere uygulamak için:
- İmlecinizi I2 hücresinin sağ alt köşesine getirin ve küçük mavi kutuyu seçin (imleciniz mavi kutuyu işaret ederken
şekline dönüşmelidir).
- Mavi kutuyu aşağı sürükleyerek I3:I11 aralığını vurgulayın.
I sütununda artık H sütunundaki ABD doları değerlerinin İsviçre frangı cinsinden dönüşümleri listeleniyor.
Tebrikler, ilk özel işlevinizi oluşturdunuz. Bir sonraki bölümde USDTOCHF()
simgesini oluşturan kod açıklanmaktadır.
USDTOCHF()
analizi
İlk yorumlarda kodun amacı ayrıntılı olarak açıklanıyor:
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {number} swissFrancs The provided value in Swiss francs.
* @customfunction
*/
Bu tür yorum blokları, programlamada işlevlerin ne yaptığını açıklamak için sıkça kullanılır.
Bu yorumda iki bölüm tanımlayabilirsiniz: işlev açıklaması (doları franga dönüştürmek için) ve işlevin parametrelerini ve dönüş türünü açıklayan ek açıklamalar.
Apps Komut Dosyası, kodunuzu belgelemenize ve kodunuz için otomatik tamamlama ipuçları oluşturmanıza yardımcı olmak üzere açıklamalarda JSDoc'u kullanır. USDTOCHF()
içinde kullanılan her bir ek açıklamanın Apps Komut Dosyası geliştirme sürecinde size nasıl yardımcı olduğunu aşağıda okuyabilirsiniz:
@param
: İşleve iletilen her parametreyi açıklamak için@param
ek açıklamasını kullanabilirsiniz.@return
: İşlevin ne döndürdüğünü açıklamak için@return
ek açıklamasını kullanabilirsiniz.@customfunction
: Özel işlevlerin doküman yorumlarına her zaman@customfunction
eklemeniz gerekir. Bu ek açıklama, bir hücreye işlev adı girdiğinizde E-Tablolar'ın yerleşik işlevleri otomatik tamamladığı gibi E-Tablolar'ın özel işlevinizi otomatik tamamlamasını sağlar.
Otomatik tamamlama pop-up'ında görünen metnin, yorum bloğuna yerleştirdiğiniz açıklama metniyle tam olarak eşleştiğini fark edin. Oluşturduğunuz açıklamaların iyi yazılmış ve eksiksiz olduğundan emin olarak özel işlevlerinizi daha kolay kullanılabilir hale getirebilirsiniz.
Ardından, USDTOCHF()
işlevindeki koda odaklanın:
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return swissFrancs;
}
Daha önce belirtildiği gibi, USDTOCHF()
sayısal değişkeni alır, sabit bir döviz kuruyla çarpar ve swissFrancs
sayısal değişkeninde İsviçre frangına dönüştürülmüş bir değer döndürür. Giriş parametresi, özel işlev bir hücreye eklenirken belirtilen hücrede bulunan değerdir. Bu örnekte, giriş dolar tutarları H sütunundan alınmaktadır. Çıkış değeri swissFrancs
, işlevin hücresine (bu örnekte I sütunu) yerleştirilir.
Özel işlevler, bir sonraki bölümde göreceğiniz gibi sayısal veya dize değerleriyle çalışabilir.
Dize öneki birleştirme
USDTOCHF()
işlevinin sayısal çıktısının İsviçre frangı önekini CHF
içermesini istediğinizi varsayalım. Aşağıdaki talimatlarda gösterildiği gibi birleştirme operatörünü (+
),
kullanarak Apps Komut Dosyası ile bunu yapabilirsiniz:
- Komut dosyası düzenleyicide,
@return
açıklamasını sayı yerine dize döndürecek şekilde güncelleyin. return swissFrancs
olan önceki oranıreturn 'CHF' + swissFrancs
olarak değiştirin.
+
operatörü, swissFrancs
içinde bulunan değerin önüne CHF
dizesini ekler. Kodunuz artık şu şekilde görünmelidir:
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {string} swissFrancs The provided value in Swiss francs.
* @customfunction
*/
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return 'CHF' + swissFrancs;
}
- Senaryonuzu kaydetmek için Kaydet'i
tıklayın.
İsviçre frangı dizesi artık I sütununun değerlerinin önüne ekleniyor:
Özel işleviniz artık yalnızca ABD dolarını İsviçre frangına dönüştürmekle kalmıyor, aynı zamanda para birimini dize önekiyle birlikte çıkış olarak veriyor.
Gelişmiş: Harici verileri getirme
Bu, temel bir özel işlev için iyi bir başlangıçtır ancak bu örnekte, doların İsviçre frangı karşısındaki döviz kurunun sabit olduğu varsayılmaktadır. Bunun yerine geçerli döviz kurunu kullanmak istediğinizi varsayalım. Böylece, sayfa her yeniden yüklendiğinde değerler yeniden hesaplanarak geçerli dönüşümü temsil edecek. Bunu yapmak için mevcut döviz kurunun ne olduğunu öğrenmeniz gerekir. Bu bilgi Google E-Tablolar'da kolayca bulunmaz ancak Apps Komut Dosyası'nı kullanarak bu bilgiye ulaşabilirsiniz.
İsviçre frangının ABD doları karşısındaki mevcut dönüşüm oranını almak için aşağıdaki gibi bir kod kullanabilirsiniz:
function USDTOCHF(dollars){
// Gets a cache that is common to all users of the script.
var cache = CacheService.getScriptCache();
// Accesses the memory location (rates.CHF) of the script cache.
var rate = cache.get('rates.CHF');
// If a cache miss occurs, the program fetches the current
// CHF rate from an API and stores the rate in the cache
// for later convenience.
if (!rate) {
var response =
UrlFetchApp.fetch('https://api.exchangeratesapi.io/latest?base=USD');
var result = JSON.parse(response.getContentText());
rate = result.rates.CHF;
cache.put('rates.CHF', rate);
}
// Converts dollars to CHF according to the latest rate.
var swissFrancs = dollars * rate;
// Returns the CHF value.
return 'CHF' + swissFrancs;
}
Bu kod, üçüncü taraf döviz kuru API'si kullanarak mevcut döviz kurunu bir finansal bilgi sunucusundan getirir. Bu işlem, UrlFetchApp
ve CacheService
gibi Apps Komut Dosyası hizmetleri kullanılarak yapılır. Bu gelişmiş kavramlar bu özel kod laboratuvarının kapsamı dışındadır ancak Google E-Tablolar'da karmaşık görevleri otomatikleştirmek için Apps Komut Dosyası'nın çok yönlülüğünü görmeye başlayabilirsiniz.
Özel işlev yönergeleri
Özel işlevlerle ilgili alıştırmaları tamamladığınız için tebrik ederiz. Projelerinizde özel işlevleri kullanırken belirli kısıtlamaları olduğunu anlamanız önemlidir. Aşağıdaki listede, Google E-Tablolar'daki Özel İşlevler rehberinde ayrıntılı olarak açıklanan sınırlamalar özetlenmiştir:
- Kullanıcı yetkilendirmesi gerektiren özel işlevler oluşturmayın. Bunun yerine, örnek veri hesaplamaları ve metin düzenleme gibi daha basit görevleri yerine getirmek için özel işlevlerinizi oluşturun. Apps Komut Dosyası hizmetlerini kullanma başlıklı makaleye gidin.
- Özel bir işlevi başka bir yerleşik işlevle aynı şekilde adlandırmayın veya adı alt çizgiyle bitirmeyin. Adlandırma kurallarını inceleyin.
- Özel işlevlere değişken bağımsız değişkenler iletmeyin. Özel işlevlere yalnızca deterministik (sabit) değerleri bağımsız değişken olarak iletebilirsiniz.
=RAND()
sonucu gibi değişken bağımsız değişkenler iletmek özel işlevi bozar. Arguments yönergelerine bakın. - Tamamlanması 30 saniyeden uzun süren işlevler oluşturmayın. İşlev kodunu basit ve kapsamı sınırlı tutun. Aksi takdirde, işlem daha uzun sürerse hata oluşur. Özel işlevlerde yapılan hesaplamaları olabildiğince basit tutmak en iyisidir. Döndürülen değerlerle ilgili yönergeleri inceleyin.
Artık makrolarla çalışmak ve özel işlevler oluşturmak için komut dosyası düzenleyiciyi kullanarak e-tablolarınızı iyileştirebilirsiniz. Sonraki bölümde, öğrendiklerinizi ve komut dosyası yazma becerilerinizi geliştirmek için yapabileceklerinizi inceleyebilirsiniz.
6. Sonuç
Google E-Tablolar ile Apps Komut Dosyası'nın Temelleri adlı ilk codelab'i tamamlamış olmanız gerekir. E-Tablolar makroları ve özel işlevler oluşturup düzenleyerek temel Apps Komut Dosyası kavramlarını öğrendiniz. Apps Komut Dosyası bilginizi bir sonraki uygulamalı laboratuvarda daha da geliştirebilirsiniz.
Bu codelab'i faydalı buldunuz mu?
İşlediğimiz konular
- Temel Apps Komut Dosyası kavramları
- Komut dosyası düzenleyicide gezinme
- E-Tablolar'da makro oluşturma ve güncelleme
- Google E-Tablolar için özel işlevler oluşturma
Sırada ne var?
Bu oynatma listesindeki bir sonraki codelab'de, Apps Komut Dosyası E-tablo hizmetinin temel sınıfları ve terminolojisi açıklanmaktadır. Bu hizmet, Apps Komut Dosyası'nı kullanarak Google E-Tablolar'daki verilerin değerlerini ve sunumunu ayrıntılı bir şekilde kontrol etmenizi sağlar.
Bir sonraki codelab'i E-Tablolar, sayfalar ve aralıklar sayfasında bulabilirsiniz.