Makro Güvenlik Ayarı

Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhabalar;

Excelde makro güvenlik ayarlarını düşük olarak kullanıyorum. Bu durumda, bir çalışma kitabındaki userform işlk açılışta açılıp çalışmaya devam ediyorum.
Güvenlik ayarını çok yüksek olarak ayarladığımda ise, normal olarak
userform açılmıyor ve "güvenlik ayar yüüksek ayarlandığı için makrolar devre dışı bırakıldı......" şeklinde uyarı gelmekte.

Öğrenmek istediğim:
Excelde yapılmış bir demo programda, güvenlik ayarı çokyüksek ayarlansa bile, userform açılmaktadır.

Ayar çok yüksek ayarlansa bile, makrolar nasıl bir kodla çalışıyor?

Teşekkürlerimle....
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bahsettiğiniz demo program hakkında daha detaylı bilgi verirseniz ve hatta bize ulaştırırsanız(hem memnun kalırız) hemde sorunuza cevap bulabiliriz.

Ben kendim Delphi ile bu sorunu hallediyorum ama excel VBA içerisine kod yazarak nasıl halledildiğini bilmiyorum.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Makrolar etkinleştirilmeden dosya açılırsa, doğal olarak dosya içindeki hiçbir VBA kodu çalışmayacaktır.

Bu nedenle, makrolu dosyanın makrolar etkinleştirilerek açılması için mutlaka harici başka bir uygulama gerekir.

Bu diğer uygulama VB, Delphi .... ile hazırlanıp, derlenmiş bir exe olabilir.

Ya da, basit bir VBScript de bu işi görür.

Örnek;

http://www.excel.web.tr/viewtopic.php?t=12486

Benzer şekilde..... Office2000'den sonra gelen (sanırım XP versiyonunda) "Visual Basic Projelerine erişime güven" işinin VBA kodlarıyla yapılması ile bir çalışma da aşağıdaki linktedir.

http://www.excel.web.tr/viewtopic.php?t=16765
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Sayın Haluk önce şunu söyleyeyim ki şu an internet kafe deyim ve burada office yok verdiğiniz linkleri inceledim ancak uygulamaları indip göremedim.

1-Ama anladığım kadarıyla script uygulamanız excel vba içerisindeki kodu çalıştırıyor.
Bu durumda excel dosyamızın adı yada makro adı sabit olmalı ise pek kullanışlı görünmüyor.
2-Excel içerisinde yazılan kod ile de dosya ikinci bir sefer açılması gerekiyor.
Bu da zahmetli bir iş. Tek tıkta açılsın öyle değil mi?

Benim bu konuda delphi ile şöyle bir çözümüm var hatta bunu word documets vba kodu ile de yapabilirsiniz. Ancak bu sefer Word vba güvenlik seviyesi düşük olmalı.
Gelelim çözüm yoluna.
Excel vba kodu ile bir word dosyası oluşturduğumuzda (createobject) o word dosya içerisinde vba kodu olsa ve güvenlik düzeyi yüksekte olsa makrolar çalışacaktır. Ben delphi ile bu yolu kullnarak sorunu çözüyorum.
Hem böylelikle kimsenin bilgisayarının ayarları ilede oynamamış oluruz.

Bu yol hakkındaki görüşünüzü merak ediyor olacağım
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sayın alpi, ben örnek olması için orada adı belli bir makronun çalışmasını sağlamıştım.

Eğer, dosyanın açılışta bazı kodları çalıştırması istenirse o kodlar Thisworkbook modulü içinde Workbook_Open yordamına yazılabilir veya bu yordamdan çağırılabilir. Üstelik, kullanıcının bilgisayarında da hiçbir değişiklik yapmıyoruz.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Teşekkür ederim. o halde uygulamanız çok kullanışlı.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
alpi' Alıntı:
....

Gelelim çözüm yoluna.
Excel vba kodu ile bir word dosyası oluşturduğumuzda (createobject) o word dosya içerisinde vba kodu olsa ve güvenlik düzeyi yüksekte olsa makrolar çalışacaktır. Ben delphi ile bu yolu kullnarak sorunu çözüyorum.
Hem böylelikle kimsenin bilgisayarının ayarları ilede oynamamış oluruz.

Bu yol hakkındaki görüşünüzü merak ediyor olacağım
Sayın alpi, zaten incelediğiniz script de aynı mantıkta çalışmaktadır.

Delphi ile hazırlanmış bir exe veya bir MS Word VBA .... ya da bir VBscript.

Hepsi aynı amaç için hazırlanmış benzer kodlar içerir. Zaten benim Script içinde de "CreateObject" yöntemi ile bir Excel uygulaması başlatılıyor.

Esasen ben bu iş için exe kullanılmasına karşı değilim zaten..... bu yanlış anlaşılmasın.

Bende lisanslı bir VB veya Delphi olmadığı için işimizi mecburen böyle açık kod kaynaklı uygulamalarla idare ediyoruz....:mrgreen:
 
Üst