Şeffaf UserForm Oluşturma Kodu

26 Aralık 2020 27 Aralık 2020 1306

Şeffaf UserForm Oluşturma Kodu isimli makro kodlarını kullanarak, bir UserForm nesnesinin şeffaf olarak açılamasını sağlayabilirsiniz.

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
        ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
 ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreateRoundRectRgn Lib "gdi32" ( _
 ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
 ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, _
 ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
 ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
 ByVal nCombineMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, _
 ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Private frmRegion As Long, hWnd As Long, msg1 As String, msg2 As String

Private Sub CommandButton1_Click()
  Unload Me
End Sub

Private Sub UserForm_Initialize()
  seffaf
End Sub

Private Sub seffaf()
  Dim W As Single, H As Single, cl As Long
  Dim ct As Long, cw As Long, ch As Long
  Dim i As Integer, R As Long, Outer As Long, Inner As Long
  ' 1 pixel = 0.75 point / 1 point = 1.33 pixel
  hWnd = FindWindow(vbNullString, Me.Caption)
  W = Me.Width * 1.33: H = Me.Height * 1.33
  frmRegion = CreateRectRgn(0, 0, 0, 0)
  ' X = (W - ScaleWidth) / 2 -> Genelde 3
  ' Y = H - X - ScaleHeight  -> Genelde 22
  Const X As Single = 3: Const Y As Single = 22
  Const RGN_OR = 2
  Const RGN_DIFF = 4
  Outer = CreateRectRgn(0, 0, W, H)
  Inner = CreateRectRgn(X, Y, W - X, H - X)
  CombineRgn frmRegion, Outer, Inner, RGN_DIFF
  For i = 0 To Me.Controls.Count - 1
    If Me.Controls(i).Visible Then
      ct = Y + (1.33 * Me.Controls(i).Top)
      ch = ct + (1.33 * Me.Controls(i).Height)
      cl = X + (1.33 * Me.Controls(i).Left)
      cw = cl + (1.33 * Me.Controls(i).Width)
      R = CreateRectRgn(cl, ct, cw, ch)
      CombineRgn frmRegion, R, frmRegion, RGN_OR
    End If
  Next
  SetWindowRgn hWnd, frmRegion, True
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  SetWindowRgn hWnd, 0, False
  DeleteObject frmRegion
End Sub

Gerekli Adımlar

Kodu çalıştırmanız için aşağıdaki adımları yerine getirmeniz gerekir.

  1. Microsoft Visual Basic for Applications penceresini (Alt + F11) açın.
  2. Project - VBAProject alanının, ekranın sol tarafında görüldüğünden emin olun. Görünmüyorsa, Ctrl + R kısayolu ile hızlıca açın.
  3. Araç çubuklarından Insert -> UserForm yazısına tıklayın.
  4. Solunda klasör simgesi olan Forms yazısının başındaki + simgesine tıklayın.
  5. Alt kısma eklenecek olan UserForm(1) yazısına çift tıklayın.
  6. Üstteki kodu yapıştırın.

Kod Açıklaması

Kodlar sadece UserForm'un şeffa olarak açılmasını sağlayıp, üzerine eklenmiş diğer nesneleri şeffaflaştırmaz. 64 bit sürümlerde hata verebilir.

50 Farklı Hazır Makro (VBA) Kodu
Sayfa Üzerindeki Formüllerin Sayısını Bulma
Kopyala ve Değer Olarak Yapıştır
Aktif Hücreye Günün Tarihini Yazma
Makrolar ile Eliptik Form Oluşturma
Hücredeki Değere Göre İşlem Yapma
Yazı Efekti Verme Kodu
Negatif Sayıları Vurgulama
Excel Üzerinden Klasör Alma Kodu
Toplu Satır Silme
Metinden Konuşma Oluşturma
Kullanıcı Adınızı Bulma
Satır Yüksekliğini Ayarla
Birden Çok Çalışma Sayfası Ekleme
Sütunda Yazılı Olanlardan Sayfa Adı Yapma
MsgBox ile Uyarı Çıkarma Kodu
Açılışta UserForm Nesnesinin Otomatik Gösterilmesi
Hücredeki Değişikliklerin Kaydını Tutma
UserForm Üzerinde Dört İşlem
Excel Menüsüne Ekleme Yapma Kodu
Yardım Menüsünü Açma
Excel Üzerinden Klasör Açma Kodu
Hedef Aramayı Kullanma
Seçimdeki Alternatif Satırları Vurgulama
UserForm Kapatma Kodu
Seçili Alanda Yinelenenleri Vurgulama
Aktif Hücreye Açıklama Ekleme
Excel Makroları ile Dosya Sayısını Bulma
Birleştirilmiş Hücrelerin Başlangıç Bitiş Sütununu Belirleme
Excel Açılırken Otomatik İşlem Yaptırma
Hesap Makinesini Açma
Bir Değeri Renklendirme
Excel Dosya Arama Yapma Makrosu
Seçili Her Satırdan Sonra Bir Satır Ekleme
Excel Makroları ile İşlemci Bilgilerini Bulma
Çift Satırlı Msgbox Örneği
Kopyala ve Biçimleri Yapıştır
Aktif Sayfayı Kopyala Yeni Bir Kitaba Yapıştır
Kullanılan Tüm Sütunları Otomatik Sığdır
Özel Sayfaları Yazdırma
Zaman Aralığı Ekleme
Seçili Hücrenin Sütun Harfini Bulma
Aktif Çalışma Sayfası Dışında Tümünü Silme
Aktif Hücrenin Üstüne Satır Ekleme
Makrolar ile Klasör Silme
Hücredeki Değer Sıfırdan Büyükse İşlem Yapma
Toplama İşlemi Yapan Kullanıcı Tanımlı Fonksiyon
Her Kapatma İşleminde Otomatik Olarak Kaydetme
Çalışma Sayfasının Ekran Görünümünü Büyütme
Bir Çalışma Kitabında Kaç Sayfa Var
Çalışma Sayfalarını Alfabetik Olarak Sıralama

Daha önce yorum yapılmamış!

YARARLI KISAYOLLAR
Otomatik Toplama Ctrl M
Sonraki Sayfaya Gitmek Ctrl Page Down
Filtre Ekleme/Kaldırma Ctrl Shift L
VB Penceresini Açmak Alt F11
TL Simgesi Eklemek Ctrl Alt T
Backlink Reklam Bu alanda 50 karakterlik açıklama ile web sitenize ait Backlink Reklam yayınlayabilirsiniz.
Yükleniyor...