
Mark Lucas
0
956
95
Bir grafik oluşturmak kadar basit bir şeyin bazen bu kadar karmaşık hissetmesi ne kadar şaşırtıcı değil mi? Excel, Word, Powerpoint veya Access kullanıyor olsanız da - bazen çok fazla yapılandırma ve karışıklık yapmak zorunda kalmadan bir sürü veri içeren hızlı bir grafik eklemek güzel olurdu.
Bu makalede, Microsoft Office Web Components'tan doğrudan bir belgeye, sunuma veya VBA kodunu çalıştırmak için oluşturabileceğiniz herhangi bir şeye doğrudan bir Grafik ekleyebilmenizi sağlayan gerçekten kullanışlı ve basit bir VBA nesnesinin nasıl kullanılacağını göstereceğim. Bu aynı zamanda birçok kişinin yaptığı VBA arka ucuna sahip Microsoft'a ait olmayan ürünleri de içerebilir..
Bu örnekte, programınızdaki tasarım modunu nasıl etkinleştireceğinizi (bu durumda, Microsoft Word'ü kullanacağız), grafik nesnesini projenize katıştırmayı ve ardından onu dolduran kodu nasıl yazacağınızı göstereceğim. verilerle birlikte.
Geçmiş VBA makalelerimin bazılarında, birkaçınız eldeki görevin daha önce hiç kod yazmamış olan kişiler için biraz fazla karmaşık olduğunu söylemişsiniz. Umarım bu makaleyi okuduktan sonra VBA ile elinizi denemek için motive olursunuz. Buraya dahil kod yazmak çok basit ve basittir. Bu tabloyu gömmek, daha önce hiç denemediyseniz, VBA ile ellerinizi kirletmenin harika bir yoludur.
VBA'yı biliyorsanız, o zaman bu, hızlı çizelgeleri projelerinize her zamankinden daha az çabayla katıştırmaya başlamak için harika bir araçtır.
Tasarım Modunu Etkinleştirme
Bu örnekte, bütçemin şu anki ayının yanı sıra, geçirdiğim yıllık harcama ortalamasının verilerini görüntüleyen katıştırılmış bir grafik içeren hızlı bir belge bir araya getirmek istedim..
Bu örnekte, bu değerleri sabit olarak kodlanmış bir değere yerleştireceğim. “dizi” VBA kodunun içinde, ancak sonuçta, bu dizi değişkenlerini (dizi yalnızca bir değer listesi içeren bir değişkendir) yüklemek için, harici bir elektronik tablo veya hatta girdiğiniz bir form gibi diğer kaynaklardan çeşitli teknikler kullanabilirsiniz. değerleri her ay manuel olarak.
Excel'den Word'e veri almayı öğrenmek için makalemi inceleyin Excel Verilerini Word Belgesine Entegre Etme Excel Verilerini Word Belgesine Entegre Etme Çalışma haftanızda, muhtemelen kendiniz kopyaladığınız birçok kez vardır ve bilgileri Excel'den Word'e veya başka bir yolla yapıştırma. Bu, insanların konuyla ilgili sık sık yazılı raporlar oluşturmasıdır. Bu makalenin amacı için, verileri görüntülemek üzere grafiği oluşturmaya odaklanacağız.
Şimdi belgeme başladım, koduna girmek istiyorum. Word veya Excel'de, bunu tıklayarak “Dosya”, “Seçenekler” ve sonra Şeridi Özelleştirme seçeneğine tıklayın. Seçeneklerin sağ tarafında “Şeridi Özelleştir” sütununda ve “Ana Sekmeler” görmen gereken alan “Geliştirici” kontrolsüz. Bu kutuyu işaretleyin.
Belgenize geri döndüğünüzde, şimdi “Geliştirici” menü öğesi kullanılabilir. Bu menüde “Tasarım modu” buton.
Tasarım Modu'nu tıklatın ve sonra bu klasör / araçlar simgesini tıklatın. “Eski Araçlar”, ve açılır pencerenin sağ alt köşesinde, ActiveX Denetimleri altında, simgesine tıklayın. “Daha fazla kontrol” buton.
Elinize kadar mevcut kontrollerin listesini aşağı doğru kaydırın “Microsoft Office Şeması xx.x”. Bilgisayarınızda Microsoft Office kurulu ise, bu kontrol büyük olasılıkla kullanılabilir olacaktır..
Denetimi belgenize ekledikten sonra, yazan bir kutu olarak göründüğünü göreceksiniz “Microsoft Office Web Bileşenleri” içeride. Bu aslında boş tablonuz, verilerinizi göstermeye hazır.
Bir sonraki adım, grafik tipinizi ayarlayacak kodu yazmak ve verileri görüntülemek. Sürecin manuel olmasını istiyorsanız, belgeye verileri grafiğe yükleyecek bir düğme koyabilirsiniz, ancak benim durumumda her şeyin tamamen otomatik olmasını istedim. Belgeyi açtığım an, grafiği yükleyen betiği çalıştırmasını istedim, böylece kodda yapabilirsiniz (kod editörüne girmek için Visual Basic düğmesine tıklayın) ve Belge Nesnesini ve “Açık” Etkinlik.
Bu otomatik olarak adlandırılan boş bir işlev yerleştirir. “Document_Open ()” koduna Bu işlevin içine, aşağıdaki kodu yapıştırmak istiyorsunuz.
Özel Alt Belge_Açık () Tamsayı Olarak Dim i Dim oChart Dim oSeries1 Dim oSeries2 'X değerleri ve y değerleri için diziler oluşturun. Dim xVantues As Variant, yValues1 As Variant, yValues2 Variant Olarak xValues = Array ("Elektrik faturası", "Mortgage", "Telefon faturası", _ "Isıtma faturası", "Bakkaliye", _ "Benzinli", "Kıyafet", "Alışveriş") yValues1 = Array (124.53, 1250.24, 45.43, 253.54, 143.32, 259.85, 102.5, _ 569,94) yValues2 = Array (110, 1250, 50, 200, 130, 274, 95, _ 300)
Bu kod bölümü üç dizi oluşturur. İlk (xValues), temelde, her veri öğesi için x ekseni açıklama listenizdir. Benim durumumda yValues1 ile bir sütun çubuk grafiği oluşturuyorum, ancak bir çizgi grafiği de oluşturabilirsiniz. Bunu nasıl yValues2 ile yapacağınızı göstereceğim. Şimdi aşağıdaki kod parçasını da yapıştırın.
ThisDocument.ChartSpace1 ile .Açık .Yenile Set oChart = .Charts.Add oChart.HasTitle = Doğru oChart.Title.Caption = "Aylık Bütçe Numaraları - Ortalama"
Bu kod bölümü oluşturur aslında grafik içinde kendini “campsite” bir kap. Grafiğiniz bu noktada herhangi bir veriye sahip değil, ancak birkaç komutla grafiğin başlığını hem resim yazısı başlığını ayarlayabilirsiniz. Şimdi veri ekleme zamanı. Aşağıdaki kodu zaten yapmak için yapıştırdığınız kodun altına yapıştırın.
SetSeries1 = oChart.SeriesCollection.Add öğesini ayarlayın. OSeries1 ile .Caption = "Bu Ay" .SetData chDimCategoriler, chDataLiteral, xValues .SetData chDimValues, chDataLiteral, yValues1 .Tür = chChartTypeColumnClustered İle bitmek 'Grafiğe x-değerleri ve y-değerleri ile başka bir seri ekle dizilerden dizi türünü çizgi grafiğe ayarlayın. Set oSeries = oChart.SeriesCollection.Add OSeries ile .Caption = "Ortalama Harcama" .SetData chDimCategoriler, chDataLiteral, xValues .SetData chDimValues, chDataLiteral, yValues2 .Tür = chChartTypeLineMarkers İle bitmek
Yukarıdaki kod, grafiğinizde görüntülenecek iki seri oluşturur. İlk seri, grafik nesnesinin içinde görüntülenecek verileri yapılandırır. “ColumnClustered” biçimlendirilir ve ikinci seri “TypeLineMarkers” biçim. Bu, aynı grafikte her iki değer kümesini de görüntüler, ancak farklı grafik türlerini kullanır - bu aslında birden çok veri kümesini görüntülemek ve karşılaştırmak için çok iyi bir yol olabilir.
Şimdi veriler eklendiğine göre geriye kalan tek şey ekseni düzeltmek ve grafik detaylarını bitirmek..
'Değer Eksenlerini BiçimlendiroChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0" oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000 'Grafiği altındaki göstergeyi göster oChart.HasLegend = Doğru oChart.Legend.Position = chLegendPositionBottomİle bitmekSon Alt
Yukarıdaki kod, sol dolardaki sayıları sayısal dolar biçiminde gösterecek şekilde biçimlendirir. Sonraki satır, dikey eksenin maksimum limitini yapılandırır. Tek tek öğelerin 1000 ABD Dolarını aşmayacağını bildiğim için, maksimum y ekseni sınırını bu değere ayarladım.
Belgeyi kaydedin, kapatın, yeniden açın ve işten çıkarma, iki dizinizdeki verilerle otomatik olarak yüklenen grafiğinize gelir.
Artık çizelgeleri nasıl ekleyeceğinizi ve verileri otomatik olarak bunlara nasıl yükleyeceğinizi bildiğinize göre, olasılıkları düşünün. Tek yapmanız gereken, herhangi bir dış veriyi bu dizilere almak - belki bir Excel elektronik tablosu, belki bir Access veritabanı veya başka bir şey - ve aniden bu belge depolanan verilere çok dinamik ve değerli bir pencere haline gelir.
Bu, MS Office Web Components nesneleriyle birlikte iceburg'un yalnızca görünen kısmı. Grafiklerle başladım çünkü bu özelliği en heyecan verici buluyorum. Çok kısa bir komut dosyasıyla istediğiniz VBA uygulamasına grafik eklemek için çok yararlı ve çok güçlü.
Tüm grafiklerle ilgili iseniz, neden bu grafik nesnesine bir denemeyi denemiyorsunuz? VBA için başka herhangi bir faydalı grafik nesnesi biliyor musunuz? Verileri uygulamalarınıza nasıl eklersiniz? Düşüncelerinizi ve deneyimlerinizi aşağıdaki yorumlar bölümünde paylaşın.
Image Credit: Shutterstock ile Tablet Finans Çubuk Şeması