source

VBA를 사용하여 사용자가 셀을 선택하도록 유도(다른 시트에 있을 수 있음)

manycodes 2023. 9. 8. 21:37
반응형

VBA를 사용하여 사용자가 셀을 선택하도록 유도(다른 시트에 있을 수 있음)

저는 엑셀에서 VBA 프로젝트를 진행하고 있는데, 매크로의 일부가 사용자에게 나중에 매크로에서 작업할 수 있는 셀* 범위를 선택하도록 요청하기를 원합니다.

*차트를 만들거나 GUI를 사용하여 함수를 삽입할 때 나타나는 프롬프트 유형

예: 여기:Screengrab showing required functionality - the Excel 'Sum' Function Arguments pop-up

그리고 여기:Screengrab showing required functionality - the Excel Function Arguments pop-up

나는 거기서 그들이 원하는 것을 찾고 있습니다.

Sub MyMacro()
    MsgBox "Please select data range"

    ' allow user to select range (as images above)
    CreateFunctionArgumentsPrompt()    

    'do stuff with user selected range of cells
    ...
End Sub

내장된 Excel 기능에 액세스하여 다음과 같은 작업을 수행할 수 있습니까?CreateFunctionArgumentsPrompt()

참고: 이는 마우스별 사용자 선택 범위의 SO 질문 Excel vbabet 범위와 유사하지만 차이점이 있습니다.

  1. 위와 같이 엑셀의 내장 GUI 기능을 사용하고 싶습니다.
  2. 활성 워크시트 이외의 시트에서 범위를 선택하여 참조할 수 있어야 합니다.

위에서 보여준 내장된 기능을 사용하지는 않지만 수입 프롬프트에 따라 셀 범위를 선택할 수 있습니다.

Sub RangeSelectionPrompt()
    Dim rng As Range
    Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

    MsgBox "The cells selected were " & rng.Address
End Sub

이는 이 MrExcel 답변에 제시된 답변에 근거한 것입니다.

사용 중인 모습은 다음과 같습니다.

enter image description here

찾는 것은 대화 상자(공통 대화 상자라고도 함)입니다.안타깝게도 기존 기본 제공 개체에 하나를 추가할 수 없습니다(적어도 VBA를 사용하지 않음).

위에서 언급한 대로 입력 상자 및 양식을 사용하여 이 기능을 모방할 수 있습니다.그건 제가 엑셀을 기반으로 독자적인 프로그램을 본 적이 있는데, 거기에 그 회사가 설명해주신 기능의 종류를 추가한 것입니다.하지만 이를 수행할 수 있는 DLL을 만들려면 C++나 더 깊은 언어를 사용해야 한다고 생각합니다.

대화 상자에 대해 주목할 만한 한 가지는 다음과 같습니다.Excel에는 기존 Windows API 대화 상자를 사용하여 공통 파일 서버 대화 상자(열기, 저장 및 선택 등)를 만들 수 있는 Common File Dialog 개체 라이브러리가 내장되어 있습니다.

언급URL : https://stackoverflow.com/questions/22812235/using-vba-to-prompt-user-to-select-cells-possibly-on-different-sheet

반응형