InvokeVBA 스즈메
그것, 매크로로 잘?
여기 의 투고로, 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 조작만으로는, 무엇을 실현하고 싶은지 직관적으로 이해하기 어려운 점이 있지만 코드이면 직관적으로 이해가 가능
Reference
이 문제에 관하여(InvokeVBA 스즈메), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuma16/items/0459d0ff8ade5788ffae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)