* .xlam 추가 기능에 userform을 만들고 IDE에 새로운 명령 모음과 단추를 만들었지 만 단추를 클릭하면 사용자 양식이 Excel에서 열리고 IDE에서 포커스가 멀리 이동됩니다. .Net COM 추가 기능을 사용하지 않고 호스트 응용 프로그램 대신 IDE에서 사용자 양식을 여는 방법이 있습니까?호스트 응용 프로그램 대신 IDE에 사용자 양식을 표시하는 방법이 있습니까?
다음은 명령 모음과 단추를 만들고 단추 클릭 이벤트를 처리하는 코드입니다.
Option Explicit
Public WithEvents cmdBarEvents As VBIDE.CommandBarEvents
Private Sub Class_Initialize()
CreateCommandBar
End Sub
Private Sub Class_Terminate()
Application.VBE.CommandBars("VBIDE").Delete
End Sub
Private Sub CreateCommandBar()
Dim bar As CommandBar
Set bar = Application.VBE.CommandBars.Add("VBIDE", MsoBarPosition.msoBarFloating, False, True)
bar.Visible = True
Dim btn As CommandBarButton
Set btn = bar.Controls.Add(msoControlButton, , , , True)
btn.Caption = "Show Form"
btn.OnAction = "ShowForm"
btn.FaceId = 59
Set cmdBarEvents = Application.VBE.Events.CommandBarEvents(btn)
End Sub
Private Sub cmdBarEvents_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
CallByName Me, CommandBarControl.OnAction, VbMethod
End Sub
Public Sub ShowForm()
Dim frm As New UserForm1
frm.Show
End Sub
P. 명령 줄을 제거하려면이 코드 줄이 필요할 수 있습니다.
Application.VBE.CommandBars("VBIDE").Delete
예 : 그것을 만들 A [VBE 추가 기능 (http://stackoverflow.com/a/1942651/ 1188513) 대신 Excel 추가 기능! ;) –
포커스를 훔치지 않는 부동 사용자 폼을 의미합니까? –
글쎄, Excel에서 포커스를 IDE에서 훔치지 않고 * userform *이 포커스를 얻길 바란다. @SiddharthRout이 가능한지 전혀 모른다. – RubberDuck