2009-10-08 26 views
5

VBScript'in, dosya her açıldığında çalışabilecek şekilde oluşturulduğunda excel dosyasına bir Makro yazması mümkün mü?VBScript bir Excel dosyasına Makro Yazma

Ive bu kez çalışır ve tüm veri/türlü vb dosyası oluşturur, bir excel dosyası ve içindeki bazı verileri üretmek otomatik bir VBScript var

Ben normalde bazı etkileşim olması olduğunu gerekenler program çalışırken ve birisi verileri görüntüleyen bir makro ile çalıştırılacak, buradaki sorun otomatik olarak oluşturulmuş bir dosya olduğundan, hiçbir makro kaydedilmiyor.

Öyleyse nasıl uygulanacaksa, bir makro daha sonra nasıl çalıştırılabilir vbscript'e yazılabilir?

+0

makronun bir kopyasını içeren bir XLST şablondan dosya üretebilir miyim? – Mikeb

cevap

5

Harika tavsiyeler divo, evet Bir şablondan oluşturabilirim, ancak daha fazla esnekliğe ve komut dosyasındaki değişkenlerle bütünleşmeye ihtiyaç duyduğum bir durumdur.

excel nesne modeli nesne VBProject.VBComponents

bir cazibe gibi çalışır ve ben bu süre VBProject nesnesine içine bakarak bulundu benzer cevap arayan herkesten amacıyla, arıyordu tam olarak ne yapar:

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
objExcel.DisplayAlerts = False 
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls") 
     Set xlmodule = objworkbook.VBProject.VBComponents.Add(1) 
     strCode = _ 
     "sub test()" & vbCr & _ 
     " msgbox ""Inside the macro"" " & vbCr & _ 
     "end sub" 
     xlmodule.CodeModule.AddFromString strCode 
objWorkbook.SaveAs "c:\scripts\test.xls" 
objExcel.Quit 

Kaynaklar: Scripting Guy Add a Macro to an Excel Spreadsheet

String for excel macro creation

2

Muhtemelen en basit yol, istenen makroları içeren bir Excel belgesini el ile oluşturmak olabilir. Bu belge, VBScript'iniz için bir şablon olarak sunucu olur.

Yeni bir dosya oluşturmak yerine, bu şablonu kopyalayıp Excel'de açıp VBScript'inizi kullanarak verilerle doldurun.

Daha karmaşık ve esnek bir seçenek, Excel nesne modelini kullanmak olabilir. Geçerli belgenin VBA projesine formlar, modüller ve sınıflar eklemenize olanak tanıyan ActiveWorkbook.VBProject.VBComponents nesnesini arayın. Ancak, bu seçenek bazı güvenlik ayarlarını gerektirir (temel olarak VBA projesine programlı erişime izin vermeniz gerekir).