İlan
Bir Excel elektronik tablosunu veya bir Word belgesini açabilmeniz ve herhangi bir şey yapmanız gerekmeden iyi bir şey olmaz mıydı? tümü, veriler doğrudan bir metin veya CSV veri dosyasından okunur ve doğrudan e-tablonuza veya Word'e gömülü bir grafiğe yüklenir Belge? Bu, Office ürünlerini kullanan bir otomasyon şeklidir, çünkü Office'te veri grafiğini otomatikleştirmek mümkünse, olasılıkları düşünün. Patronunuz için bir araya getirdiğiniz bir raporun grafiğine otomatik olarak veri yükleyebilirsiniz - veri girişi gerekmez. Veya doğrudan bir tabloya Outlook'taki bir e-postaya veri yükleyebilirsiniz.
Bunu gerçekleştirme tekniği, Office Web Bileşenleri eklentisini yüklemeyi içerir. Ayrıca, Office uygulamasında verileri almak için kullanmak istediğiniz birkaç şeyi yapılandırmanız yeterlidir ve raporlama çalışmanızı otomatikleştirmeye hazırsınız. Bu makalede daha önce kullanacağımız bazı öğeleri ele aldım VBA makaleleri VBA ile Kendi Basit Uygulamanızı Nasıl Yapabilirsiniz?Sorunları çözmek için kendi VBA başvurunuzu nasıl yapacağınızı bilmek ister misiniz? Kendi VBA yazılımınızı oluşturmak için bu ipuçlarını kullanın. Daha fazla oku burada MakeUseOf. Bunlardan birkaçı veri aktarımı içeriyordu. pano ile uygulamalar Panoyu Kullanarak VBA Uygulamaları Arasında Bilgi AktarınBelirli uygulamalarda VBA ile çalışmanın en sinir bozucu kısımlarından biri, iki uygulamanın birbiriyle “konuşması” her zaman kolay olmamaktır. Çok hızlı işlemleri deneyebilirsiniz ... Daha fazla oku , dışa aktarma Excel'e Outlook görevleri Outlook görevlerinizi VBA ile Excel'e vermeMicrosoft'un bir hayranı olsanız da olmasanız da, en azından MS Office ürünleri hakkında söylenebilecek iyi bir şey, her birini birbiriyle entegre etmenin ne kadar kolay olduğudur ... Daha fazla oku ve gönderme Excel'den e-postalar VBA Komut Dosyalarını Kullanarak Excel Elektronik Tablodan E-posta GöndermeKod şablonumuz, İşbirliği Veri Nesneleri (CDO) ve VBA komut dosyalarını kullanarak Excel içinden otomatik e-postalar oluşturmanıza yardımcı olacaktır. Daha fazla oku senaryo.
Size göstereceğim, Office Web Bileşenlerini metin dosyası komut dosyasıyla nasıl birleştireceğinizi bilgisayarınızdaki düz metin dosyasından Office ürününüze kesintisiz, otomatik veri akışı (bizim durumumuzda) Excel). Bu aynı tekniği - birkaç küçük değişiklikle - Word, Outlook veya hatta PowerPoint'te kullanabilirsiniz. Geliştiriciler için VBA arka ucu olan herhangi bir Office ürünü (veya bu konudaki herhangi bir ürün) bu tekniği kullanmanıza izin verecektir.
Veri Dosyalarından Grafik İçe Aktarma ve Oluşturma
Veri dosyalarından bir grafik oluşturabilmeniz için önce birkaç şeyi etkinleştirmeniz gerekir. Bu örnekte, bu özellikleri Excel'de nasıl etkinleştireceğinizi göstereceğim, ancak işlem diğer tüm Office ürünlerinde neredeyse aynı.
İlk olarak, herhangi bir VBA geliştirmesi yapmadan önce, araç çubuğundaki geliştirici sekmesini etkinleştirmeniz gerekir (henüz yapmadıysanız). Bunu yapmak için, Seçenekler menüsüne gidin, “Şeridi Özelleştir” e tıklayın ve “Geliştirici” sekmesini etkinleştirin.
Excle'a döndüğünüzde, artık menülerde "Geliştirici" ifadesinin göründüğünü göreceksiniz. Üzerine tıklayın ve “Tasarım Modu” na tıklayın. Ardından VBA düzenleyicisini görmek için “Kodu Görüntüle” ye tıklayın.
Düzenleyicinin içinde, size çalışacağım kod için ihtiyaç duyacağınız referansları etkinleştirmeniz gerekecek. Bunu yapmadan önce Office Web Bileşenleri eklentisini yüklediğinizden emin olun, aksi takdirde Microsoft Chart nesnesi kullanılamaz.
Araçlar'ı ve ardından Referanslar'ı tıkladığınızda sisteminizde bulunan tüm referansların bir listesini görürsünüz. Bunların ne olduğunu bilmiyorsanız - referanslar temel olarak kendi projenize çekebileceğiniz kod kütüphaneleri ve nesnelerdir. Bunlar, hangi referansı etkinleştirdiğinize bağlı olarak gerçekten harika şeyler yapmanıza izin verir. Office Web Bileşenlerini sisteminize yeni yüklediyseniz, bunu yeni bir kitaplık olarak eklemeniz gerekir, bu nedenle doğru .dll dosyasını bulmak için Gözat düğmesini tıklayın.
Office Web Bileşenleri'ni yüklediyseniz, DLL dosyasına OWC11.dll adı verilir ve c: \ program files \ common files \ microsoft shared \ web components \ 11 \
“Microsoft Office Web Components 11.0” başvurusu için onay kutusunu tıklayın ve ayrıca şunu da unutmayın: "Microsoft Komut Dosyası Çalıştırma Zamanı" nı da seçin; Dosyalar.
Referansı eklediğinize göre, gerçek grafiği sayfanıza eklemenin zamanı geldi. Excel'de, Geliştirici menüsünde "Ekle" yi ve "ActiveX Denetimleri" nin altındaki köşedeki küçük araçlar simgesini tıklayarak kontroller ekleyebilirsiniz.
“Microsoft Office Chart 11.0” 'a gidin ve Tamam'a tıklayın.
Sonunda işe başlıyoruz. MS Web Bileşeni grafiğinin bir e-tabloya katıştırılmış hali aşağıdaki gibidir. Bir Word belgesine veya başka bir şeye gömülü olarak aynı görünecektir.
Bu nedenle, Excel durumunda, çalışma kitabı dosyasını açtıktan sonra grafiğin veri dosyasından anında veri yüklemesini istiyorum. Bunu yapmak için, Geliştirici menüsünde “Kodu Görüntüle” ye tıklayarak kod düzenleyicisine gidersiniz ve çalışma kitabı kodunu görmek için Çalışma Kitabı'na çift tıklayın. Sağ açılır menüyü “Aç” olarak değiştirin. Bu, çalışma kitabı dosyası ilk açıldığında çalıştırılacak komut dosyasıdır.
Grafiği koddaki verilerle yüklemek için grafiğin kendisinin bir adı olması gerekir. E-tabloya dönün, grafiğe sağ tıklayın ve Özellikler'i seçin. “ChartSpace1” gibi bir şey içeren “Name” alanını göreceksiniz. Bunu herhangi bir şeyle değiştirebilirsiniz. Benimkine “MyChart” adını verdim.
Ayrıca, veri dosyasının nasıl olduğunu da bilirsiniz - benimki virgülle ayrılmış biçimde veri değerleriyle dolu bir metin dosyasıdır. Bu dosya hiç bir şey olabilir - sensörlerden dışa aktarılan laboratuvar verileri, stajyerler tarafından manuel olarak dosyaya yazılan finansal bilgiler veya başka herhangi bir şey. Kodunuzla birlikte dosyayı okuyacaksınız, bu nedenle programınız okuduğunda her satırın nasıl görüneceğini bildiğiniz sürece verilerin nasıl göründüğü önemli değildir.
Şimdi, eğlenceli kısım için. Size kodu küçük bölümlerde göstereceğim, bu yüzden bunaltıcı değil ve kodun ne yaptığını açıklayacağım. Kodun üst kısmı önce metin dosyasındaki tüm değerleri okuyacak ve bunları x dizisi (xVar) ve y değişkeni (yVar) için olmak üzere iki dizi halinde depolayacaktır.
Dim fso Yeni FileSystemObject olarak. Dim fnum. MyFile As String. Dim strDataLine As String. Varyant Olarak Dim xVar (). Varyant Olarak Dim yVar (). Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Girişim için MyFile'ı # 1 olarak açın. intNumOfLines = 0. EOF Değilken Yap (1) intNumOfLines = intNumOfLines + 1 Giriş # 1, strDataLine Giriş # 1, strDataLine. Döngü. Kapat # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) # 1 olarak Girdi İçin Dosyamı Aç. intNumOfLines = 0. EOF Değilken Yap (1) Giriş # 1, xVar (intNumOfLines) Giriş # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Döngü. Kapat # 1
Bu kod temel olarak veri dosyası üzerinden iki kez çalışır - dizileri ilk kez boyutlandırmak için veriyi saklamak için gereken tam uzunluk ve daha sonra verileri bu veriye okumak için ikinci kez diziler. Bir dizinin ne olduğunu bilmiyorsanız - değerin dizide saklandığı sırayı kullanarak erişebileceğiniz uzun bir değer listesi içeren bir değişken veya depolama alanıdır. Örneğin, üçüncüsü (3) olur.
Artık bu dizilerden ikisinin veri dosyanızdaki tüm değerlerle yüklü olduğuna göre, bu değerleri zaten katıştırdığınız grafiğe yüklemeye hazırsınız. İşte bunu yapan kod.
Sheet1.MyChart ile .Clear .Refresh Set oChart = .Charts. OChart ekleyin. HasTitle = Gerçek oChart. Başlık. Caption = "Veri Değerlerim" 'oChart. İç. Renk = "mavi" oChart. Arsa alanı. İç. Color = "white" Set oSeries = oChart. SeriesCollection. OSeries ile Ekle .Caption = "Veri Değerlerim" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Renk = "mavi". DashStyle = chLineDash .Line. Ağırlık = 2.Tip = chChartTypeLine Sonu oChart ile. HasLegend = Doğru. oChart. Efsane. Position = chLegendPositionBottom. İle bitmek
Kodu yerleştirdiğiniz gerçek grafiğe bağlayan “Sheet1.MyChart” dır. Ne adını verdiğinize dayanıyor. Word, Powerpoint veya başka herhangi bir Office ürününe katıştırdığınızda durum böyle olacaktır. Buna "Sayfa1" kullanarak değinmeyeceksiniz, bunun yerine örneğin Word'deki "belge1" gibi Grafiği tutan öğe ne olursa olsun.
Yukarıdaki kod daha sonra grafiğin etiketlenmesini ve renklendirilmesini ayarlar ve ardından 2 boyutlu veri kümesinin hem x hem de y değerleri için “.setdata” yöntemini kullanarak değerleri yükler. Yukarıdaki kod çalıştırıldıktan sonra, aşağıdaki grafik görünecektir.
Bu veriler doğrudan metin dosyasından çıkar. Buradaki tek dezavantaj, veri dosyalarının yalnızca yukarıdaki kodu kullanmak istiyorsanız iki boyutlu olması gerektiğidir. Veri kümesine daha fazla değer ekleyebilirsiniz, ancak döngüdeki her seferinde üçüncü değeri okumak için yukarıdaki kodu değiştirmeniz ve ardından “SeriesCollection” ı çoğaltmanız gerekir. Ekle ”bölümüne gidin ve daha sonra aynı şekilde grafiğe ekleyin.
Sadece yukarıdaki kodu okumak karmaşık görünebilir, ancak bunlardan birini yaptıktan sonra, ihtiyaçlarınız ne olursa olsun değiştirmek için çok kolay. Aynı grafiği ve benzer kodu, aynı nesneyi kullanarak çubuk grafik, dağılım grafiği veya istediğiniz başka bir grafik türü oluşturmak için kullanabilirsiniz. Çok yönlü ve esnektir - ve daha fazla üretkenlik için otomasyona bağlı bir taraftarsanız cephaneliğinizde güçlü bir araçtır.
Yukarıdaki kodla oynayın ve uygulamalarınıza otomatik olarak veri yükleyip yükleyemeyeceğinizi görün. Bu tür bir otomasyon için hangi yaratıcı kullanımları düşünebilirsiniz? Düşüncelerinizi ve geri bildirimlerinizi aşağıdaki yorumlar bölümünde paylaşın!
Ryan Elektrik Mühendisliği lisans derecesine sahiptir. 13 yıl otomasyon mühendisliği, 5 yıl BT'de çalıştı ve şu anda bir Uygulama Mühendisi. MakeUseOf'un eski bir Genel Yayın Yönetmeni, Veri Görselleştirme üzerine ulusal konferanslarda konuştu ve ulusal TV ve radyoda yer aldı.