Bu şablon, VBA'daki MsgBox uyarı penceresinin ekranda varsayılan yerinde değil, istenen konumda açılmasını sağlayan makro örneklerini içerir. Konum, hazır köşe/merkez seçenekleriyle ya da piksel cinsinden X ve Y koordinatlarıyla belirlenebilir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- exceldestek.com | exceldepo.com: A1:G29 aralığındaki tek çalışma sayfasıdır; formül içermez.
- MsgBox_X_Y modülü: MsgboxEx fonksiyonunu ve konum seçeneklerini içerir.
- Module1: Koordinat vererek konumlandıran MsgBoxPos ve TestMsgBox yordamlarını içerir.
- Module2: Excel penceresine göre sağ üst, sağ alt, sol üst ve sol alt konumlandırma örneklerini içerir.
- Module3: form adlı yordam Test yordamını çağırır.
Makrolar
- MsgboxEx: Standart MsgBox ile aynı parametreleri alır, ek olarak Position parametresi kullanır. Position için eTopLeft, eTopRight, eTopCentre, eBottomLeft, eBottomRight, eBottomCentre, eCentreScreen ve eCentreDialog değerleri tanımlıdır; varsayılan değer eCentreScreen'dir. Penceresi açılırken bir CBT hook (SetWindowsHookEx) kurulur ve pencere SetWindowPos ile taşınır. Kodda eCentreDialog, eCentreScreen ve eBottomRight koşulları etkindir; diğer köşe koşulları yorum satırı durumundadır. Sol kenar ekran dışına taşarsa pencere ekran ortasına alınır.
- ScreenWorkArea: Görev çubuğu hariç çalışma alanı ölçüsünü SystemParametersInfo ile alır.
- TestMsgBox / MsgBoxPos: MsgBox'ı verilen X ve Y değerinde açar. Örnek çağrıda "Ekran Pozisyonu" iletisi 1100, 550 koordinatında gösterilir.
- Module2 içindeki TopRight, BottomRight, TopLeft ve BottomLeft işlevleri, Excel ana penceresinin genişlik ve yüksekliğinin %10 veya %90'ına göre konum hesaplar. Bunları ShowMsgBoxTopRight, ShowMsgBoxBottomRight, ShowMsgBoxTopLeft ve ShowMsgBoxBottomLeft yordamları çağırır; yordamlar Private tanımlıdır, VBA düzenleyicisinden çalıştırılır.
- FindMe: Module2 içinde yer alan ek yordamdır.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Alt+F11 ile VBA düzenleyicisini açın.
- Hızlı deneme için Module1 içindeki TestMsgBox yordamında F5'e basın.
- Koordinatı değiştirmek için MsgBoxPos çağrısındaki 1100 ve 550 değerlerini düzenleyin.
- Kendi projenizde köşe veya merkez seçeneği için MsgBox_X_Y modülünü aktarıp MsgboxEx fonksiyonunu Position parametresiyle çağırın.
- Excel penceresine göre konumlandırma için Module2 içindeki ilgili ShowMsgBox yordamını çalıştırın.