açılışta makro güvenliğinin otomatik etkinleştirilmes

Katılım
9 Eylül 2004
Mesajlar
243
Excel Vers. ve Dili
Office2003Trk
excel de makrolarla hazırlanmış olan proğramı makro güvenlik seviyesi yüksek veya çok yüksekse bunu açılışta otomatik olarak orta veya düşük güvenlik seviyesine getirmek için bir çözüm varmı acaba.
başka deyişle proğrama tıkladığımızda excelin makro güvenliği ne olursa olsun karşımıza makro güvenliği düşük mesajı almadan direk çalıştırabilmenin çözümü varmı acaba?
 

mehmett

Altın Üye
Katılım
18 Mayıs 2005
Mesajlar
2,571
Excel Vers. ve Dili
Excel 2010 Türkçe
Bildiğim kadarıyla yok.

Böyle bir şey mümkün olsaydı kötü amaçlarla kullanmak isteyenler çıkabilirdi.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Böyle bir durumda şöyle birşeyler yapılabilir;

1) Excel VBA projesine dijital sertifika eklenir ve bir kereye mahsus olarak, kullanıcıdan bu sertifakayı onaylaması istenir. Projenin kodlarında herhangibir değişiklik yapılmadığı sürece, bu Excel dosyası açılırken bir daha makro uyarısı vermeden dosya, makrolar etkinleştirilmiş olarak açılır.

2) Diğer bir alternatif ise aşağıdaki gibidir. Bunun için;

2.1) Sözkonusu Excel dosyasını açmak için başka bir script hazırlanır ve kullanıcıya Excel dosyası ile birlikte verilir. Excel dosyası yerine, bu verilen script dosyasını tıklayarak çalıştırması söylenir.

2.2) Bununla ilgili örnek olarak, ekli zip dosyasını indirin. İçindeki Test.xls dosyasını bilgisayarda C:\Test.xls olarak yerleştirin. Daha sonra, zip dosyasının içindeki Starter.vbs dosyasını çift tıklayın. .... Excel dosyanız açılacaktır.

2.3) Makro güvenlik seviyesi ne olursa olsun, bu şekilde bir Excel dosyasını açabilir ve içindeki herhangibir prosedürü çalıştırabilirsiniz.

3) Her zaman dedikleri gibi ...... "Nerden geldiği belli olmayan, güvenmediğiniz exe, bat, com, reg, vbs ... uzantılı dosyaları açmayın." ....... :mrgreen:
 

Ekli dosyalar

Moderatör tarafında düzenlendi:
Katılım
16 Aralık 2005
Mesajlar
130
Bu harika bir çalışma teşekkürler.
sayın üstat, VB Script ile ilgili paylaşımlarınızın devamını bekliyoruz. Mesela Excel Dersleri bölümünde bizlere bilgi verseniz size minnettar kalırız, ellerinize sağlık.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
:mutlu: Yeni bişey daha öğrendim. yihhuuu yihhuuuu
oleey yaşasıııın :mutlu:
 
Katılım
14 Ocak 2005
Mesajlar
792
Excel Vers. ve Dili
Ofis 2010 2016
Altın Üyelik Bitiş Tarihi
13/03/2022
SAYIN HALUK BEY ACABA SADECE BİR PROSÃ?DÜR MÜ YOKSA BU PROSÃ?DÜRE VERDİÐİMİZ LİNGLE DİÐER PROSÃ?DÜRDEKİ MACROLARIMIZDA ÇALIÞIRMI TEÞEKKÜRLER

VE BİRAZDAHA DETAYLI BİLGİ VERİSENİZ SEVİNİRİM TEÞEKKÜRLER.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Starter.vbs scripti içine yazdığımız kodları incelediyseniz; yukarıdaki mesajımda Madde-2.3'de belirttiğim gibi, sözkonusu Excel dosyasında istediğimiz herhangibir prosedürü (veya prosedürleri) çalıştırabiliriz.

Eğer yukarıdaki örnek Excel dosyasında hem MyMacro, hem de MyMacro2 adında 2 adet prosedür olsaydı ve biz de bu 2 adet prosedürü çalıştırdıktan sonra Excel dosyasının görünmesini istedeydik, Starter.vbs dosyasına bir satır daha ilave ederek, bu işi yapabiliriz.

[vb:1:09bb068ce7]......
....

NewXL.Application.Run "MyMacro"

NewXL.Application.Run "MyMacro2"

.....
...
[/vb:1:09bb068ce7]
 
Katılım
14 Ocak 2005
Mesajlar
792
Excel Vers. ve Dili
Ofis 2010 2016
Altın Üyelik Bitiş Tarihi
13/03/2022
bu şekilde benim dosyamı salt okunur olarak açtı kaydetmek istediğim zaman
başka bir isimde kaydetmemi istiyor macro seviyem çok yüksekte
bunu da aşabilirmiyiaz
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Makro güvenlik seviyenizin yüksek veya düşük olması ile hiçbir ilgisi yok. Orjinal mesajımda Madde-2.3'de belirttiğim gibi, güvenlik seviyesi ne olursa olsun, kodlar çalışır.

Diğer taraftan; o script dosyanızı salt okunur olarak açmaz, çünkü script'in içinde o şekilde davranılmasına dair herhangibir kod yok. Bunu da, script içindeki kodu inceleyerek görebilirdiniz.

Bu durumda söylenebilecek tek şey, dosyanızın herhangibir özelliği veya içindeki herhangibir kod .... böyle bir olaya sebep olmuş olabilir.
 
Katılım
17 Şubat 2006
Mesajlar
117
ACİL
Arkadaşlar, yine makro güvenlik ayarlarında,
"visual basic project erişime güven" kutusunu kodla aktive edebilir miyiz?
bazı object library leri otomatik eklemek icin bu gerekli. kullanicinin yapmasina gerek kalmadan dedigim yapilabilirmi? tesekkurler.
 
Katılım
7 Şubat 2006
Mesajlar
9
Excel Vers. ve Dili
excel 2002
Haluk' Alıntı:
Merhaba;

Starter.vbs scripti içine yazdığımız kodları incelediyseniz; yukarıdaki mesajımda Madde-2.3'de belirttiğim gibi, sözkonusu Excel dosyasında istediğimiz herhangibir prosedürü (veya prosedürleri) çalıştırabiliriz.

Eğer yukarıdaki örnek Excel dosyasında hem MyMacro, hem de MyMacro2 adında 2 adet prosedür olsaydı ve biz de bu 2 adet prosedürü çalıştırdıktan sonra Excel dosyasının görünmesini istedeydik, Starter.vbs dosyasına bir satır daha ilave ederek, bu işi yapabiliriz.

[vb:1:b6e2372c63]......
....


NewXL.Application.Run "MyMacro"

NewXL.Application.Run "MyMacro2"

.....
...
[/vb:1:b6e2372c63]

Şöyle bir sorum olacak ;
Yardımcı olabilirseniz sevinirim;

Starter.vbs dosyası ile excel 'deki bir makroyu çalıştırdık makroda bir userformu load ve arkasından show ediyor. Şu ana kadar excel'i ekranda hiç görmüyoruz ve benim için her şey normal ; userform kapatıldıktan sonra excel sayfasına geri dönüyor. Ben userformu kapattıktan sonra da excel sayfasının da açılmamasını istiyorum mümkünmüdür :
Bir kaç şey denedim sonuç alamadım:
1. starter.vbs dosyasında bulunan NewXL.Visible = true satırını false yaptım . Bu değişiklikten sonra userformu kapattım ve excel'in açılmadığını gördüm ancak CTRL+ALT+DEL ile çalışan işlemlere baktığımda EXCEL'in ekrana gelmemesine rağmen arka planda hala çalıştığını gördüm. Bu işime yaramadı çünkü işlemden sonra excel de bir şey açmak istediğim zaman salt okunur açmayı önerdi. Birde starter dosyası üzerinden makroyu her çalıştırdığımda arka planda çalışan programlara starter dosyasına tıkladığım kadar EXCEL birikimi oldu
2. İkinci olarak da starter dosyasının çağırdığı makronun sonuna end yada workbooks.close yada application.close gibi komutlar yazarak excelin kapanmasını sağlamayı düşündüm ancak bu seferde excel kapandı ama starter.vbs dosyası excel kapandığı için kendi içindeki son iki satırı yorumlayamadı ve hata kodu verdi.

Önerileriniz için şimdiden teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bunun için açılan excel dosyasındaki userforma; kapanınca excelide kapatan bir kod ilave edilebilir. Aşağıdaki kodu useforma kopyalayın.

[vb:1:f88faafb15]Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.Quit
End Sub
[/vb:1:f88faafb15]
 
Katılım
7 Şubat 2006
Mesajlar
9
Excel Vers. ve Dili
excel 2002
leventm' Alıntı:
Bunun için açılan excel dosyasındaki userforma; kapanınca excelide kapatan bir kod ilave edilebilir. Aşağıdaki kodu useforma kopyalayın.
Teşekker ederim işimi çözdü. Çok sağolun
Ancak çıkarken excel dosyasında yaptığınız değişiklikler kayıt edilsin mi sorusunu aşamadım bu seferde

SaveChanges:=true bunu denememe rağmen yanıt alamadım.

biraz daha uğraşacağım herhalde çözülecek ....
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Workbooks("Dosyaismi.XLS").Close False 'Dosyayı save etmeden kapatır.

kolay gelsin
 
Katılım
7 Şubat 2006
Mesajlar
9
Excel Vers. ve Dili
excel 2002
neden düşünemedim ki aşağıdaki kod ile hemde açık olan tüm excel sayfalarını kayıt ederek kapatabiliyoruz..

[vb:1:b91659e8e5]
For Each w In Application.Workbooks
w.Save
Next w
Application.Quit
[/vb:1:b91659e8e5]
 
Katılım
17 Şubat 2006
Mesajlar
117
baha X,
asagidaki kodu kullanirsaniz cikista excel dosyasında yaptığınız değişiklikler kayıt edilsin mi sorusunu sormaz. :hey:

Application.DisplayAlerts = False
 
Katılım
17 Şubat 2006
Mesajlar
117
serdenm' Alıntı:
ACİL
Arkadaşlar, yine makro güvenlik ayarlarında,
"visual basic project erişime güven" kutusunu kodla aktive edebilir miyiz?
bazı object library leri otomatik eklemek icin bu gerekli. kullanicinin yapmasina gerek kalmadan dedigim yapilabilirmi? tesekkurler.
arkadaslar bu sorumun cozumunu bilen var mi? yoksa kod ile bunu yapmak imkansiz mi? :?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tabii ki imkansız değildir...

Ama, benin kullandığım Office2000'de bahsettiğiniz durumu deneme şansım yok çünkü, kullandığım Office versiyonunda böyle bir durum sözkonusu değil ...

Bu durumda, sadece tahminde bulunabilirim;

1) Aşağıdaki linki inceleyin...

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

2) Dediğim gibi kullandığım Office versiyonunda dediğiniz olayın gerçekleşip, gerçekleşmediğini deneme şansım yok ama bir tahminde bulunmamı isterseniz; oradaki kodlarda registery'e DWORD olarak 4 değerini kullanın.

3) Bu tahmin doğru olsa bile, kod çalıştıktan sonra XL'i kapatıp, tekrar açmadan yeni registery değerlerini XL algılamaz.

4) Excel ve VBA ile aklınıza gelen hemen her tür konuda (problem, program, bilmece, bulmaca, virüsçük, oyun, eğlence .....) kod yazmış veya yazılmış kodları incelemiş birisi olarak benim fikrimi soracak olursanız....... bu tip konularda fazla takılmayın. XL'in ve Windows'un bazı ayarlarını istediğiniz gibi değiştiremezsiniz. Değiştirseniz bile, değişen ayarların aktif olması için daha bir takım işler daha yapılması gerekir. Bütün bunların yerine, kullanıcının yapacağı işleri tarif eden bir açıklama veya yardım dosyasını programın açılışına yerleştirin ve kullanıcının bunları uygulamasını isteyin.

Hayat böyle daha kolay olacaktır....

Kolay gelsin.
 
Katılım
17 Şubat 2006
Mesajlar
117
haluk bey cok haklisiniz, fakat yapacagim dosyayi bu tip islerden hic anlamayanlar kullanacak. o yuzden oncelikle oulook object library i otomatik olarak refere ettirmenin yolunu buldum (makro ile). fakat bu sefer onu da yapabilmek icin ustte karsilastigim problemi halletmem gerek.

dword falan demissiniz biraz daha ayrintili anlatirmisiniz?

yabanci forumlardanda arastirdim fakat cevabi bulamadim... :?
 
Üst