Caps Lock Tuşunu Otomatik Açmak

Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Excelde dosyanın her açılışında caps lock tuşunu aktif yapan bir makro varmıdır?
Yardımlarınızı bekliyorum...
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Kod:
Sub auto_open()
CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
End Sub
Ekteki dosyada caps lockun açık veya kapalı olduğunu kontrol eder.
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Merhaba Mahmut bey yardımınız için teşekkür ederim. Yalnız bu verdiğiniz kod tam olarak işimi görmedi.
Bu kod ile açılıştı mevcut durum tersine dönüyor. Caps Lock açıksa kapatıyor. Kapalıysa açıyor.
Caps Lock açıkken de durumu açık olarak seçen bir kod yokmudur acaba?
Yardımlarınızı bekliyorum...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Bu şekilde deneyin.

Kod:
Private Declare Function GetKeyState Lib _
        "user32" (ByVal nVirtKey As Long) As Long
    
Private Function GetCapsLockKey() As Boolean
    GetCapsLockKey = GetKeyState(vbKeyCapital)
End Function


Sub test()
If GetCapsLockKey Then _
    CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
End Sub
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Zeki bey bu kod da direk açık olan caps locu kapatıyor..
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Bu konuda yardım edecek kimse yokmu acaba??
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Zeki bey bu kod da direk açık olan caps locu kapatıyor..
Küçük bir eksik vardı.

Kod:
Private Declare Function GetKeyState Lib _
        "user32" (ByVal nVirtKey As Long) As Long
    
Private Function GetCapsLockKey() As Boolean
    GetCapsLockKey = GetKeyState(vbKeyCapital)
End Function


Sub test()
If [COLOR=Blue][B]Not[/B][/COLOR] GetCapsLockKey Then _
    CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
End Sub
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
SORUN ÇIKTI:
Açılışta otomatik çalışması için açılmasını istediğim diğer kodların bulunduğu Auto_Open isimli makroya ekledim.

Private Declare Function GetKeyState Lib _
"user32" (ByVal nVirtKey As Long) As Long
olarak yazan satırda uyar veriyor.
Ne yapmam lazım acaba?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Hata veren satırı Auto_Open ile başlayan satırın üstüne yazın. Yani bu satır kodların en üst kısmında olmalı.

Auto_Open içeren modülünüzü aşağıdaki şekilde düzenlemelisiniz.


Kod:
Private Declare Function GetKeyState Lib _
"user32" (ByVal nVirtKey As Long) As Long
 
Private Function GetCapsLockKey() As Boolean
GetCapsLockKey = GetKeyState(vbKeyCapital)
End Function
 
[LEFT]Sub Auto_Open()[/LEFT]
If [COLOR=black]Not[/COLOR] GetCapsLockKey Then CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
[COLOR=red]'Sizin kodlarınız...[/COLOR]
[LEFT]End Sub[/LEFT]
 
Son düzenleme:

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Alternatif.
Ekteki örneği inceleyiniz.
 
Son düzenleme:

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Değişik bir alternatif.
Bu kodlarda açık veya kapalı olduğunu belirtir.

Kod:
Option Explicit
 
Private Declare Function GetKeyState Lib _
"user32" (ByVal nVirtKey As Long) As Integer
 
Public Function CapsLockOn() As Boolean
    Dim iKeyState As Integer
    iKeyState = GetKeyState(vbKeyCapital)
    CapsLockOn = (iKeyState = 1 Or iKeyState = -127)
End Function
 
Sub Auto_Open()
   If CapsLockOn() Then
      MsgBox "CapsLock Açık"
   Else
      MsgBox "CapsLock Kapalı"
   End If
End Sub
 
Son düzenleme:
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Mahmutt bey teşekkür ederim emeğinize sağlık....
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
İyi günler. Bu konuda capslock ve numlock tuşları için nasıl düzenleme yapabiliriz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kod:
Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Private Const kCapital = 20
Private Const kNumlock = 144

Public Function CapsLock() As Boolean
    CapsLock = KeyState(kCapital)
End Function

Public Function NumLock() As Boolean
    NumLock = KeyState(kNumlock)
End Function

Private Function KeyState(lKey As Long) As Boolean
    KeyState = CBool(GetKeyState(lKey))
End Function

Sub Test()
    If CapsLock = False Then CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
    If NumLock = True Then CreateObject("Wscript.Shell").SendKeys "{NUMLOCK}"
End Sub
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Korhan Hocam çok teşekkür ederim kodlar çalıştı. Elinize Emeğinize sağlık. İyi akşamlar.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Çok teşekkürler arkadaşlar
Saygılarımla
 
Üst