Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Как присвоить макросу клавиши F5-F12


Автор: kashemirny 30.9.2009, 18:15
Всем привет  smile 
Как присвоить макросу комбинацию клавиш, отличную от <Ctrl + буква>, например, что-нибудь из кнопок F5-F12? 


Автор: CaptainNemo 1.10.2009, 22:09
Код

Private Sub Workbook_Open()
    Application.OnKey "{F5}", "macros"
End Sub

Sub macros()
    MsgBox "Hello World!"
End Sub

Автор: kashemirny 1.10.2009, 22:33
спасибо smile 

Автор: kashemirny 27.10.2009, 11:40
требуется немного усовершенствовать конструкцию и добавить проверку существования файлов - пробую через метод Exist - в обоих случаях выдает ошибку... что не так, подскажите, пожалуйста.

Код

Private Sub Workbook_Open()
    Dim profile1 As File
    Dim profile2 As File
    If profile1.FileExists("C:\metoda.dtb") And profile2.FileExists("C:\baza.dtb") Then
    Application.OnKey "{F5}", "macros"
    End If
End Sub


Код

Private Sub Workbook_Open()
    If "C:\metoda.dtb" And "C:\baza.dtb" Exist Then
    Application.OnKey "{F5}", "macros"
    End If
End Sub

Автор: Akina 27.10.2009, 12:41
Эксель не знает метода/функции FileExists. Это метод FSO.

Код

Dim fso as FileSystemObject
Set fso = New FileSystemObject
If fso.FileExists("C:\metoda.dtb") And fso.FileExists("C:\baza.dtb") Then
    Application.OnKey "{F5}", "macros"
End If

Автор: kashemirny 27.10.2009, 15:08
Akina, спасибо, только вот что выдает:

user posted image

подозреваю, что нужно подключить объектную либу.... - вопрос какую?  smile 

Автор: Akina 27.10.2009, 15:14
Microsoft Scripting Runtime

Автор: kashemirny 27.10.2009, 15:44
огромное спасибо!  smile 

Автор: kashemirny 30.11.2009, 12:57
подскажите, пожалуйста, требуется выполнить проверку If - Then для нажатия клавиши F5-  пробую так, но выдает ошибку в 1й строке:

Код

                If Application.OnKey "{F5}" Then
                Call Edit
                End If

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)