본문 바로가기

vba89

[심화방] VBA_심화_100제 #7 [ 셀레니움 자동화 ] 이번에 해볼것은 샵플링사이트에서 팝업을 없애고 15일 무료체험을 클릭한후 각각의 이용약관에 동의를 하고 개인정보를 입력 후 일반 회원가입 버튼에 마우스를 위치하여 호버링 상태까지 이뤄지는 셀레니움 자동화를 해보려 한다. 뭔가 복잡해 보이지만 그냥 회원가입하는 일련의 과정을 자동화하려고 한다고 생각하면 된다. Sel.ExecuteScript "document.querySelector(""div.layer_popup_area"").style.display = 'none';" 자바스크립트로 팝업숨기기 / 물론 셀레니움으로 요소를 클릭해서 닫아도 된다. 15일 무료체험은 Class 명이 btn_box인데 이게 여러개여서 자식태그들의 인덱스를 찾아서 해야하는데 본인은 이번에 요소안에 있는 텍스트인 [15일 무료체.. 2023. 1. 18.
[심화방] VBA_심화_100제 #6 [ 알림창 클릭 ] 크롤링을 하다보면 웹을 제어해야 하는 경우가 많다. 로그인상황이나 알림창 클릭 또는 입력을 하거나 선택을 해야 하는 여러 행동을 하기 위해서는 결국 자바스크립트의 힘을 빌려와야 한다. 개똥도 약에 쓸려면 없다고 팝업창 뜨는 사이트들이 많이 없어서 임의로 웹상에 알림창을 자바스크립트를 통해서 띄우고 3초후 알림창을 닫는 구문을 만들어보았다. 실무에서 많이 활용하길 바란다. 콘솔창에 alert로 작성하면 이렇게 웹상에 알림창을 띄울 수 있다. 이걸 VBA로 가져오면 Sel.ExecuteScript "alert('Welcome Naver_World')" 이걸 클릭하는 코드는 Sel.SwitchToAlert.Accept 이렇다 Switch 문은 다른 윈도우나 프레임 팝업창 탭 등 서로의 전환을 할때 많이 사용하.. 2023. 1. 17.
[GAS] VBA 기초방 #9 [ 데이터 영역 선택하기 ] function haja_gas_1() { const sht = SpreadsheetApp.getActiveSheet(); // 시트설정 const cell = sht.getRange("b2:c8").getValues(); // 순환할 영역 설정 let rngX = sht.getRange("f2"); // 출력할 영역의 초기값 sht.getRange("g2:k8").clearContent // 기존 출력한 영역 초기화 cell.forEach(ele=>{ const C = ele[1]; rngX.offset(0,C).setValue(ele[0]); // 상수 C 만큼 offset하여 각 배열의 두번째 값을 출력 rngX = rngX.offset(1,0); }) } function haja_gas_2() {.. 2023. 1. 8.
[기초방] VBA 100제 #10 [ 데이터 영역 재설정하기 ] 데이터 영역을 랜덤화해서 재설정하는 구문이다. 보통 이러한 문제는 랜덤 난수를 추출하여 그것에 따라 정렬하여 재배치 하면 된다. 문제풀이는 이렇다. 1. 난수를 발생 2. 난수와 기존값을 조합하여 임시 영역에 추출 3. 정렬 4. 난수와 기존값 분리 5. 기존값을 새로운 위치에 추출 6. 난수와 기존값을 출력한 영역 삭제 더보기 Option Explicit Sub 기초방10_1() Dim bln As Boolean Dim rngall As Range Dim i& Application.ScreenUpdating = False For i = 1 To 2 '= 문제에 따른 영역 재 설정 If bln = False Then Set rngall = [c5:c14] Else Set rngall = [e21:k27].. 2023. 1. 6.