셀 내용을 인수로 사용하여 Excel 2007/2010 상황에 맞는 메뉴에서 실행 파일 실행

셀 내용을 인수로 사용하여 Excel 2007/2010 상황에 맞는 메뉴에서 실행 파일 실행

Excel 2007과 2010 모두에 해당됩니다. 셀을 마우스 오른쪽 버튼으로 클릭하고 "Run Slump" 중 하나를 선택하고 싶습니다. 그리고 사용자가 이를 선택하면 실행 파일이 시작됩니다.

     \\servername\path\slump.exe 12345

여기서 12345는 마우스 오른쪽 버튼을 클릭한 셀의 내용입니다. 누군가 상황에 맞는 메뉴에 추가하고 프로젝트를 시작하는 VBA에 셀 내용을 전달하는 방법과 사용자가 Excel 복사본에 기능을 추가하는 가장 좋은 방법에 대한 개요를 줄 수 있습니까? 그 사람이 관리자인 기계.

편집: 배포 방법을 결정하는 데 차이가 있는 경우 - 아마도 7~8명이 사용할 것이라고 언급해야 합니다. 우리는 모두 같은 회사에서 일해요. 매크로에 서명할 수 있는 인증서가 없는 것 같습니다. 우리는 아마도 다른 프로젝트에 대해 유사한 것들을 많이 설치하고 제거하고 싶을 것입니다.

답변1

해당 기능이 하나의 통합 문서에만 필요한 경우 해당 통합 문서에 매크로를 추가하고 xslm으로 저장할 수 있습니다. 그게 가장 쉬울 거예요.

그러나 여러 통합 문서에 기능이 필요한 경우 필요에 따라 추가 기능(누구나 Excel 사본에 로드할 수 있는 코드)으로 만들거나 공유 매크로로 만들고 싶을 것입니다.

코드는 매우 간단합니다. 매크로 지원 통합 문서(또는 추가 기능)가 로드되면 상황에 맞는 메뉴(오른쪽 클릭 메뉴)에 Entery를 추가합니다.

Private Sub Workbook_Open()
With Application.CommandBars("Cell")
    With .Controls.Add(Type:=msoControlButton)
        .BeginGroup = True
        .Caption = "Run Slump"
        .OnAction = "doTheSlump"
    End With
End With
End Sub

통합 문서가 닫히거나 비활성화될 때마다 상황에 맞는 메뉴를 제거합니다.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  With Application.CommandBars("Cell")
    .Controls("Run Slump").Delete
  End With
End Sub

코드는 실행되며 vba 모듈에 있어야 합니다. 이 예에서는 셀의 내용을 파일 경로로 사용하여 노트북을 엽니다.

Sub doTheSlump()
retval = Shell("C:\WINDOWS\notepad.exe " + Selection.Value, 1)
End Sub

관련 정보