자가 인식 매크로 (Microsoft Excel)
일부 매크로의 경우 매크로가 작동하는 특정 컴퓨터를 확인할 수있는 방법이 있는지 확인해야 할 수 있습니다. 예를 들어, D : \ OraNT \ Plus33에 특정 디렉토리가있는 데스크탑 PC가 있고 노트북 PC에는 C : \ OraNT \ Plus33에 디렉토리가있을 수 있습니다. 물론 매크로는 처리에 사용할 디렉토리를 알 수 있도록 사용중인 시스템을 감지해야합니다.
이 작업에 접근 할 수있는 방법에는 여러 가지가 있습니다. 실제로 Windows API에 액세스하고 실행중인 컴퓨터의 이름을 확인하는 Excel 매크로를 만들 수 있습니다. 그러나 이러한 접근 방식은 상당히 복잡 할 수 있습니다.
더 쉬운 방법은 VBA의 DIR 명령을 사용하여 원하는 디렉터리가있는 위치를 확인하는 것입니다. 다음은 트릭을 수행합니다.
Sub OracleQueries() Dim sTemp As String Dim sGoodPath As String sGoodPath = "D:\OraNT\Plus33\" sTemp = Dir("D:\OraNT\Plus33\nul") If sTemp = "" Then sGoodPath = "C:\OraNT\Plus33\" sTemp = Dir("C:\OraNT\Plus33\nul") End If 'Now have directory information If sTemp <> "" Then 'Process queries using sGoodPath Else MsgBox "Directories not found!" End If End Sub
이 예제에서 DIR 함수가 어떻게 사용되는지 주목하십시오. 일반적으로 DIR은 요청 된 디렉토리에서 찾은 첫 번째 파일의 이름을 반환합니다.
그러나 디렉터리가 비어 있으면 디렉터리가 실제로 존재하더라도 DIR은 빈 문자열을 반환합니다. 우리가 원하는 것은 디렉토리가 존재하는지 (파일이 있는지가 아닌) 알아내는 것이므로 DIR에서 사용하는 디렉토리 경로 끝에 “nul”문자를 추가해야합니다.
이로 인해 DIR은 디렉토리가 없으면 빈 문자열을 반환하고 그렇지 않으면 “nul”문자를 반환합니다 (디렉토리가 비어있는 경우에도).
매크로 끝 부분에서 디렉토리를 찾을 수없는 경우 sTemp는 비어 있습니다. 이들 중 하나를 찾으면 sTemp는 비어 있지 않으며 sGoodPath는 추가 처리에 사용할 수있는 디렉토리 이름으로 설정됩니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (11576)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.
Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전은`link : / excel-Self-Aware_Macros [Self-Aware Macros]`에서 찾을 수 있습니다.