Office Scripts: Excel'de tekrar eden işi betiğe çevirmek
Office Scripts, Excel'de her gün elle yaptığınız adımları bir kez kaydedip betik olarak yeniden çalıştırmanızı sağlar. Kaydetmeyi, kodu düzenlemeyi, paylaşmayı ve Power Automate ile bağlamayı öğrenirsiniz.
Bir bakışta
- Office Scripts, eylem kaydedici ve kod düzenleyiciyle çalışan, TypeScript tabanlı bir otomasyon aracıdır. Eylem kaydedici adımları kaydeder, kod düzenleyici ise koşul ve döngü gibi mantık eklemeyi sağlar.
- Başlangıç noktası kodlama değil, tekrar eden bir iş akışını kaydetmektir. Kaydedilen betik, başka çalışma sayfası ve kitaplarda aynı adımları yeniden uygular.
- Her betik, çalışma kitabını parametre olarak alan bir ana fonksiyonla başlar. Çalışma kitabı, sayfa, aralık ve tablo nesneleri üzerinden işlem yapılır.
- Zamanlama ve e-posta gibi dış tetikleyiciler için betik, Power Automate akışına bağlanır. Betik tek başına çalışma kitabının içinde, akış ise dışarıdaki olaylarla çalışır.
Office Scripts nedir, VBA makrosundan nasıl ayrılır?
Microsoft'un tanımına göre Office Scripts, Excel'deki günlük işleri otomatikleştirmenizi sağlar: eylem kaydediciyle elle yapılan adımlar yeniden kullanılabilir betiğe dönüşür; betikler kod düzenleyiciyle düzenlenebilir ya da sıfırdan yazılabilir. Betikler çalışma kitabıyla ilişkilendirilirse kitaba erişimi olan ekip arkadaşları da onları görüp çalıştırabilir.
Bu araç masaüstü VBA makrolarından farklı bir teknolojidir. Office Scripts'in dili TypeScript'tir; betik, çalışma kitabını temsil eden bir nesne üzerinden Excel'i yönetir. Masaüstü Excel'deki VBA makroları ise ayrı bir dil ve ortamdır. Hangi aracın sizin ortamınızda kullanılabilir olduğu, Excel sürümünüze ve kuruluşunuzun ayarlarına bağlıdır; bu yüzden başlamadan önce BT yöneticinizle erişimi doğrulamak gerekir.
Masaüstü makrolar için Excel makro ve VBA ile makro kaydetme sayfalarına bakabilirsiniz. Bu sayfa, Office Scripts'in kayıt, kod ve akış bağlantısı tarafına odaklanır.
Kayıttan koda: öğrenme yolu
En doğru başlangıç, kodu sıfırdan yazmak değil, her gün tekrar ettiğiniz bir işi kaydetmektir. Microsoft'un anlattığı örnek buna uygundur: bir muhasebe sitesinden indirilen CSV dosyasını açıp gereksiz sütunları silmek, tabloyu biçimlendirmek, formül eklemek ve yeni bir sayfada PivotTable oluşturmak gibi adımlar bir kez kaydedilir; sonrasında betik bu dönüşümü kendisi yapar. Böylece adım unutma riski ortadan kalkar ve süreci başkasına öğretmeden paylaşabilirsiniz.
Kayıttan sonra kod düzenleyicide betik kodunu açıp okuyun. Eylem kaydedicide, kaydın tamamını saklamadan yalnızca kodu kopyalamaya yarayan bir 'Copy as code' düğmesi de bulunur. Kodu okumak, hangi nesnenin hangi adıma karşılık geldiğini öğretir.
Düzenleme aşamasında arayüzden doğrudan erişilemeyen mantığı ekleyebilirsiniz: koşul (eğer ise, değilse) ve döngü gibi. Örneğin, kayıt sırasında yalnızca ilk tabloyu biçimlendirdiyseniz, döngüyle çalışma kitabındaki bütün tabloları biçimlendirebilirsiniz.
Önce kaydetmek, sonra kodu okumak, en sonda dış akışa bağlamak yeterlidir
Office Scripts için öğrenme yolu
- KaydetEylem kaydediciyle tekrar eden adımları kaydet.
- Kodu okuKaydedilen adımların kod karşılığını kod düzenleyicide incele.
- DüzenleKoşul ve döngü ekleyerek betiği esnek hale getir.
- PaylaşÇalışma kitabıyla ilişkilendir, gerekirse düğme ekle.
- Akışa bağlaZamanlama ya da e-posta gibi tetikleyiciler için Power Automate kullan.
Bir betiğin yapısı: ana fonksiyon ve nesneler
Microsoft'un temel belgesine göre her betik, ExcelScript.Workbook türünde bir parametre alan main adlı bir fonksiyon içermelidir. Excel betiği çalıştırınca bu fonksiyona çalışma kitabını verir. Fonksiyonun dışında kalan kod çalışmaz, ve bir betik başka bir betiği çağıramaz.
Nesne yapısı Excel arayüzündeki hiyerarşiye benzer: bir çalışma kitabı çalışma sayfalarını içerir, sayfa aralık (Range) nesneleri üzerinden hücrelere erişim sağlar, tablolar ve grafikler aralıklarla oluşturulur. Aşağıdaki küçük betik, çalışma kitabındaki bütün tablolara başlık ve filtre düğmelerini açar:
function main(workbook: ExcelScript.Workbook) { let tables = workbook.getTables(); tables.forEach(table => { table.setShowHeaders(true); table.setShowFilterButton(true); }); }
Burada getTables çalışma kitabındaki tablo koleksiyonunu döndürür, döngü her tabloya aynı ayarları uygular. Çoğul adlı get yöntemleri koleksiyonu, tekil olanlar ise adıyla tek bir nesneyi verir. Bir nesnenin varlığını denetlemek için tekil yöntemin tanımsız (undefined) döndürebileceğini unutmayın; yoksa kodunuz olmayan bir tabloda hata verir.
Değerleri okurken TypeScript'e beklediğiniz türü bildirmek gerekir; aralık değerleri sayı, metin ya da mantıksal değer olabilir. Bu, tür denetiminin sağladığı bir güvenliktir ama başlangıçta hata mesajlarının kaynağıdır.
Paylaşım, düğme ve Power Automate
Betik hazır olduğunda ona çalıştırma yolları çalışma kitabının içinde ve dışında olmak üzere ayrılır. İçeride: betiği çalışma kitabıyla ilişkilendirirseniz kitaba erişimi olan ekip arkadaşları da görüp çalıştırabilir. Betiği tek bir düğmeye bağlamak, meslektaşlarınızın kodu açmadan çalıştırmasını sağlar. Betikler OneDrive'da saklanır; dosyanın sahipliği ve depolanması hakkında Microsoft'un ayrı bir belgesi vardır.
Dışarıda ise Power Automate, farklı uygulamalar arasında otomatik iş akışları kuran bir hizmettir ve Office Scripts bu akışlara adım olarak girebilir. Veri, akış ile betik arasında main fonksiyonunun parametreleri ve dönüş değeriyle taşınır. Böylece bir e-postayla gelen ek dosya Excel'e aktarılıp betikle işlenebilir.
Zamanlama konusunda güncel durumu Microsoft'un belgesinden kontrol edin: belgeye göre betik zamanlaması geçici olarak kapalıdır, mevcut zamanlanmış betikler çalışmaya devam eder ve yeni zamanlama için Power Automate akışı kullanılması önerilir. Bu bilgi değişebileceğinden uygulamaya geçmeden önce güncel belgeye bakmak gerekir.
Betiğin nasıl çalışacağı, işin ne başlattığına göre seçilir
Elle mi, akışla mı?
- Ekip üyeleri gerektiğinde çalışma kitabında çalıştıracakBetik düğmesiBetik çalışma kitabıyla ilişkilendirilir.
- Düzenli bir zamanda otomatik çalışması gerekiyorPower Automate akışıBetik akışa adım olarak eklenir.
- Bir e-posta ya da dış olay betiği başlatacakPower Automate akışıVeri akış ile betik arasında parametre ve dönüş değeriyle taşınır.
Sık hatalar ve iyi uygulamalar
Başlangıçta karşılaşılan hatalar kendini tekrar eder.
Varlığı denetlenmemiş nesne: Betik 'Satışlar' adlı tabloyu bulacağını varsayar ama tablo yoktur. Çözüm, tekil get yöntemlerinin sonucunu kullanmadan önce kontrol etmektir.
Kayıtla yetinmek: Kaydedilen betik, kayıt anındaki sayfa ve aralık konumlarına bağlı olabilir. Başka bir kitapta çalışmıyorsa, sabit konumları tablo ya da ad üzerinden bulan koda çevirmek gerekir.
Aşırı büyük betik: Her şeyi tek betikte toplamak bakımı güçleştirir. Ana fonksiyon başka fonksiyonları çağırabilir; işi küçük, adlandırılmış parçalara bölmek okunabilirliği artırır.
Sahipsiz betik: Betiği yazan kişi ayrıldığında kitap ve betik arasındaki ilişki unutulur. Betiğe anlamlı bir ad ve açıklama vermek, ekip içinde sürekliliği korur.
Veri koruma: Betik, kitap içindeki bilgilere erişir. Hassas veri içeren dosyalarda betik paylaşımını kuruluşun veri politikasına uygun yapın.
Bir de beklenti yönetimi vardır: Office Scripts her Excel ortamında VBA'nın yerini almaz; masaüstü uygulamalarla etkileşim gerektiren işler için başka araçlar daha uygun olabilir. Hangisinin uygun olduğuna, işin başladığı yer ve çalışacağı ortamla karar verin.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Microsoft Excel ile Veri Analizi Eğitimi - İleri Excel (Uygulamalı) programı, 'Makro Programlama ve Otomasyon' modülü ile 'Veri Bağlantıları ve Dış Veri Aktarma' başlığını içerir; tekrar eden işleri otomatikleştirme mantığı bu başlıklarla ilişkilidir. Program modül başlıklarında Office Scripts ayrıca anılmaz; makro ve otomasyon mantığı ise bu aracı öğrenmek için kullanılabilecek bir zemin sunar.
Raporlama, finans ve operasyon ekiplerinde her gün aynı biçimlendirme adımlarını elle tekrarlayan analistler için, otomasyon mantığını önce makro modülüyle tanımak iyi bir temel oluşturur.
İlgili Mindset programı
Microsoft Excel ile Veri Analizi Eğitimi - İleri Excel (Uygulamalı)
Sık sorulan sorular
Office Scripts kullanmak için programcı olmak gerekir mi?
Başlamak için gerekmez; eylem kaydedici adımları sizin yerinize betiğe çevirir. Kodu düzenlemek istediğinizde ise temel programlama alışkanlığı (değişken, koşul, fonksiyon) yardımcı olur. Microsoft da kodlamaya başlamadan önce bu temel bilginin edinilmesini önerir.
Office Scripts ile VBA arasında nasıl seçim yapılır?
Karar, işin çalışacağı ortama ve ihtiyaca bağlıdır. İş çalışma kitabı içinde kalıyor ve ekip tarafından düğmeyle ya da bir akışla çalıştırılacaksa Office Scripts düşünülebilir. Masaüstü uygulamalarla etkileşim, mevcut VBA birikimi ya da kuruluşunuzun kısıtları varsa VBA ya da başka bir araç uygun olabilir.
Betikler nerede saklanır, kimler görebilir?
Microsoft'un belgesine göre betikler OneDrive'da saklanır. Bir betiği çalışma kitabıyla ilişkilendirirseniz kitaba erişimi olan kişiler onu görüp çalıştırabilir. Sahiplik ve depolama ayrıntıları için Microsoft'un ilgili belgesine bakın.
Betiği otomatik olarak her sabah çalıştırabilir miyim?
Bunun için Power Automate akışı kurulur ve betik akışa adım olarak eklenir. Microsoft'un belgesine göre betik içinden zamanlama şu an geçici olarak kapalıdır; mevcut zamanlamalar çalışır. Güncel durumu uygulamaya geçmeden önce belgeden doğrulayın.
Kaydettiğim betik başka dosyada çalışmıyor, neden?
Kayıt, o anki sayfa adı ve hücre konumlarına bağlı olabilir. Başka bir kitapta bu konumlar farklıysa betik hata verir ya da yanlış yere yazar. Çözüm, tablo ve ad kullanarak nesneleri konumdan bağımsız bulmak ve nesnenin var olduğunu denetlemektir.