안녕하세요, 질문이 하나 있습니다..!
제가 매크로에 단축키를 지정해서 사용했는데, 이게 모든 엑셀 파일에 해당 단축키를 누르면 매크로가 작동되는 것 같더라구요...
예컨대 Ctrl+b를 누르면 작동하는 매크로를 엑셀 파일에 하나 설정해둔 다음에, 다른 엑셀 파일을 새로 열어서 Ctrl+b를 누르면 새로 연 엑셀 파일에는 매크로 설정을 안 했는데도 bold체로 변하는 게 아니라 매크로가 작동합니다..!
혹시 엑셀 파일마다 매크로 설정을 개별적으로 할 수 있는 방법이 있을까요..??
오직 매크로 설정한 엑셀 파일에서만 작동하고, 다른 엑셀 파일에서는 작동 안 하게요!
안녕하세요~
1. "제가 매크로에 단축키를 지정해서 사용했는데, 이게 모든 엑셀 파일에 해당 단축키를 누르면 매크로가 작동되는 것 같더라구요..."
→ 이러한 경우는 매크로가 PERSONAL.XLSB에 들어있을 수 있습니다. 매크로 파일을 올려주시면 확인해 볼 수 있습니다.
2. "엑셀 파일마다 매크로 설정을 개별적으로 할 수 있는 방법이 있을까요..??"
→ 이렇게 해보세요.
ThisWorkbook에 다음과 같이 코드를 넣고,
Option Explicit
Private Sub Workbook_Open()
RegKey
End Sub
Private Sub Workbook_Activate()
RegKey
End Sub
Private Sub Workbook_Deactivate()
UnRegKey
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
UnRegKey
End Sub
엑셀의 기본 단축키와 충돌을 피하기 위해 Ctrl + Shift + M 으로 설정하는 코딩을 일반 모듈에 넣습니다.
Option Explicit
Public Sub RegKey()
'// Ctrl + Shift + B 등록
Application.OnKey "^+M", "'" & ThisWorkbook.Name & "'!RunMyMacro"
End Sub
Public Sub UnRegKey()
On Error Resume Next
'// 단축키 해제
Application.OnKey "^+M"
On Error GoTo 0
End Sub
Public Sub RunMyMacro()
If ActiveWorkbook Is Nothing Then Exit Sub
If Not ActiveWorkbook Is ThisWorkbook Then Exit Sub
With Selection.Font
.Size = 12
.Bold = True
.Color = RGB(192, 0, 0)
End With
MsgBox ThisWorkbook.Name & "에서만 사용하는 단축키 Ctrl + Shift + M 입니다!", vbExclamation
End Sub
이렇게 하면,
이 파일을 열거나, 이 파일로 다시 돌아오면 → 단축키 등록
다른 엑셀 파일로 이동하면 → 단축키 해제
파일 닫을 때도 → 단축키 해제
즉, 다른 통합문서에서는 이 단축키가 작동하지 않습니다.

오..자세히 적어주셔서 감사합니다ㅠㅠ 한번 설정해볼게요!