InvokeVBA 스즈메

2565 단어 VBAUiPath

그것, 매크로로 잘?



여기 의 투고로, 2019년의 RPA 유행어 대상으로 선택되었다

그것, 매크로로 잘?



현장에서 RPA 개발을 하고 있다고 확실히 이 말이 자주 나옵니다. 특히 타인이 만든 로봇을 보수하고 있어, 일부러 로봇으로 조립하지 말아 좋은 처리를 강하게 UI 조작으로 실현하고 있는 것 같은 눈도 맞을 수 없는 폰코트의 앞에서는, 이 말이 굉장하다 되어 나온다.
개인으로서는, 「매크로로 해야 할 것, UI 조작으로 해야 할 것을 올바르게 쪼개는 것」이 중요하다고 생각한다.
그러나, 엄밀하게 이것은 매크로, 저것은 UI 조작, 라고 명확한 판단 기준이 없기 때문에 뭐라고 말할 수 없지만, 오늘은 분명히 매크로로 구현하는 편이 좋은 것을(좋은 것)를 2개 소개한다

시트 삭제



만약 시트의 삭제를 UI 조작으로 구현하려고 했을 경우, RPA 툴에서는
1. 삭제 대상의 시트를 오른쪽 클릭
2. 삭제(D)를 클릭
3. 이 시트는 완전히 삭제됩니다~~에서 「예」를 클릭
라는 3단계를 밟을 필요가 있다. 일반적으로 RPA 툴에서는 화면 묘사의 타이밍에 의해서 잘 클릭할 수 없거나, 대상의 엑셀이 너무 무거워 삭제에 시간이 걸려 후속의 처리가 잘 되지 않는 경우, UI 조작에는 일정 불안정 요소가 남는다 .

그러나 이것을 매크로 (InvokeVBA)로 구현하면 다음과 같습니다.

Sub deleteSheet()
    Application.DisplayAlerts = False
    sheet([対象シート]).Detele
    Application.DisplayAlerts = True
End Sub

그룹화 해제



이것은 조금 전의 시트 삭제와 비교하면, 절대로 VBA로 구현하는 편이 좋은 레벨의 처리. 예를 들어, 그룹화를 해제하고 싶을 때는, 이것을 클릭할 필요가 있지만, 원래 이것이 몇행째에 존재하는지, 디폴트 표시인가 숨겨진 것인가… 라고 하는 상태에, RPA화하는데 있어서의 함정 텐코 모리.


그냥 VBA로 쓰면
Sub グループ化解除()
    On Error GoTo ERR
    sheet([対象シート]).rows.Ungroup
ERR:
End Sub

예. 단지 이것만으로 확실히 그룹화를 해제하는 처리를 조립할 수 있다(그룹화하는 처리도 마찬가지)

VBA 활용으로 얻은 이점



안정성 향상

불안정 요소를 낳는 UI 조작보다 일반적으로 안정 가동

가독성 향상

UI 조작만으로는, 무엇을 실현하고 싶은지 직관적으로 이해하기 어려운 점이 있지만 코드이면 직관적으로 이해가 가능

좋은 웹페이지 즐겨찾기