• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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?
 
Bildiğim kadarıyla yok.

Böyle bir şey mümkün olsaydı kötü amaçlarla kullanmak isteyenler çıkabilirdi.
 
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:
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.
 
:mutlu: Yeni bişey daha öğrendim. yihhuuu yihhuuuu
oleey yaşasıııın :mutlu:
 
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.
 
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]
 
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
 
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.
 
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.
 
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
 
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]
 
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 ....
 
Workbooks("Dosyaismi.XLS").Close False 'Dosyayı save etmeden kapatır.

kolay gelsin
 
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]
 
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
 
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? :?
 
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.
 
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... :?
 
Geri
Üst