문제

80 명 정도의 사용자를 위해 VBA 매크로 앱을 작업 중입니다. 사무실에는 직원 이직률이 높기 때문에 교육이 어려워 지므로이 프로젝트에 대한 자체 부과 요구 사항 중 하나는 포괄적이고 친근한 문서입니다. 그러나이를 보충하고 새로운 것을 시도 할 때 100 페이지 문서를 열어야하는 초보자를 절약하기 위해 상황에 맞는 도움을 제공하는 모든 사용자 형식 (5 개)에 상태 표시 줄을 원합니다. 툴팁이 성가신 것을 찾습니다.

경험이 많지 않아서 원했습니다.

본질적으로 모든 상태 문자열이 포함 된 파일이 있습니다. (이것은 현재 텍스트 파일이지만 향후 다른 직원의 편집을 용이하게하기 위해 스프레드 시트 또는 CSV를 사용해야하는지 궁금합니다.) 모든 컨트롤은 기능을 나타내는 MouseMove 이벤트가 있습니다 : GetStatus (CID)는 열립니다. 파일, 줄을 잡고 상태 레이블에 표시합니다. 또한 레이블을 클릭 할 수 있는지 (도움말 파일의 페이지에 링크하기 위해) 라벨을 클릭 할 수 있는지, 그리고 레이블의 색상과 같은 파일의 동일한 줄에서 몇 개의 매개 변수를 가져옵니다.

그래서 실제로 몇 가지 질문 :

userform이 지속적으로 파일을 참조하는 경우 응용 프로그램이 느리게됩니까? 나에게는 기분이 좋았지 만 너무 오래 걸렸으며 해당 파일에 액세스하는 유일한 사용자입니다. 끊임없이 액세스 할 수 있습니다.

MouseMove는 제어가 가장 좋은 방법입니까? 대신 코디네이트를 사용해야합니까?

가장 중요한 것은 (가능한 한 적은 작업을 수행해야한다는 측면에서) 모든 단일 제어에 대해 MouseMove 이벤트가 필요하지 않도록이 작업을 수행 할 수있는 방법이 있습니까? 나는 각각 자체 식별자가있는 수백 개 정도의 컨트롤을 가지고 있습니다 (아직은 아니지만, 이것이 유일한 방법이라면). 양식이로드되면 가능한 모든 상태 라인을로드 할 수 있으므로 제어가 끝날 때마다 준비가되었습니다. 그러나 로딩 시간이 무시할 수 있습니까?

아이디어 나 생각에 감사합니다. 특히 VBA가 이미 이미이 작업을 수행 할 수있는 다양한 기능을 가지고 있다면 바퀴를 재발 명하려고 노력하고 있습니다. 사용자는 응용 프로그램 자체를 거의 볼 수 없기 때문에 응용 프로그램 상태 표시 줄을 사용할 수 없습니다.

감사!

편집하다:

둘 다 데이터 입력, 클릭 및 약간의 문서 생성을위한 것입니다.

그것은 통제 된 환경이므로 거시적 보안 문제는 나에게 큰 관심사가 아닙니다. 그리고 무언가 잘못되면 다른 사람의 잘못이나 문제입니다 :)

도움이 되었습니까?

해결책

이 데이터 입력 앱입니까 아니면 물건을 클릭합니까? 초점을 가진 필드는 종종 마우스가 맴도는 항목과 다르기 때문에 많은 혼란을 유발할 수 있습니다.

파일에서 끊임없이 읽는 것은 시간과 자원의 막대한 낭비입니다. 양식이로드 될 때 배열이나 컬렉션에 한 번만로드하는 것이 훨씬 좋습니다.

Mousemouse에서는 걱정없이 물건을 움직일 수 있기 때문에 좌표보다 낫습니다. 코드가 많지만 코드가 동일해야하므로 제어 이름 목록이있는 경우 대부분의 것을 생성 할 수 있어야합니다.

Sub Control_MouseMove()
  DisplayStatus(Control)
End sub

다른 팁

나는 이러한 종류의 도움에 대한 통제의 통제 자산 및 제어 텍스트 속성을 고려할 것입니다.

statustext 이 예제는 "Age"라는 양식 필드의 상태 표시 줄 HELP 텍스트를 설정합니다.

With ActiveDocument.FormFields("Age")
    .OwnStatus = True
    .StatusText = "Type your current age."
End With

ControlTipText제어를 위해 속성 시트에서 할당 할 수 있습니다.

Private Sub UserForm_Initialize()
    MultiPage1.Page1.ControlTipText = "Here in page 1"
    MultiPage1.Page2.ControlTipText = "Now in page 2"

    CommandButton1.ControlTipText = "And now here's"
    CommandButton2.ControlTipText = "a tip from"
    CommandButton3.ControlTipText = "your controls!"
End Sub
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top