Lala's tower

엑셀 자동 입력 매크로 1

엑셀 자동 입력 매크로 1

2024-06-15 21:41:00

엑셀 자동 입력 매크로를 이용하여 구글의 검색 키워드 관련 검색어를 자동으로 채워주는 예시를 정리하였습니다.

엑셀 자동 입력 매크로를 설명하기 위한 구글의 검색창 연관 검색어 표출 화면 스크린 샷입니다.

엑셀 자동 입력 매크로 연관 검색어 찾기

구글 검색창에 단어를 입력하면 해당 검색으로 가장 많이 검색한 키워드 목록을 자동으로 찾아줍니다.

즉, 키워드에 해당하는 가장 많은 관심 내용이 무엇인지를 알 수 있는 것입니다.

예를 들어, '엑셀'이라고 구글 검색창에 입력하면 위의 그림과 화면이 보여집니다.
사람들이 엑셀 관련 가장 관심이 많은 내용이 다음과 같은 순서라는 의미입니다.

  1. 엑셀 매크로 크롤링

  2. 엑셀 매트로 크롤링

  3. 엑셀 매크로 위키

검색어의 연관 검색어를 팝업으로 보여주는 매크로

연관 검색어를 좀더 쉽게 조사할 수 있도록 엑셀 'A'열에 입력한 검색어의 연관 검색어를 조사하여 B, C, D... 열어 자동 입력해주는 매크로 입니다.

우선, 키워드를 입력하면 아래와 같이 연관 검색어를 팝업창으로 보여주는 코드입니다.

검색어의 연관 검색어를 팝업으로 보여주는 매크로 실행 결과

아래 코드를 엑셀에서 Alt+F11을 눌러 VBA 입력기를 실행하고 삽입/모듈 메뉴에서 아래 붙여넣고 F5를 눌러 실행하면 검색어 입력창이 보입니다. 조사를 원하는 검색어를 입력하면 위와 같은 결과 화면이 보입니다.

' 엑셀 자동 입력 매크로 코드입니다.

Function GetHttpResponse(url As String) As String
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    http.Open "GET", url, False
    http.send
    
    If http.Status = 200 Then
        GetHttpResponse = http.responseText
    Else
        GetHttpResponse = ""
    End If
End Function

' 엑셀 자동 입력 매크로 검색어의 연관 검색어 조회 및 파싱
Function GetGoogleKeywordSuggestions(keyword As String, lang As String) As Variant
    Dim s As String
    Dim v As Variant
    Dim i As Long
    
    s = GetHttpResponse("https://www.google.com/complete/search?q=" & keyword & "&client=gws-wiz&hl=" & lang & "&authuser=0")
    
    ' 검색어 추천 결과를 처리
    If s <> "" Then
        s = Replace(s, "\u003cb\u003e", "")
        s = Replace(s, "\u003c\/b\u003e", "")
        
        ' JSON 형식의 문자열을 파싱하여 추천 검색어를 추출
        s = Split(s, "[[[")(1)
        v = Split(s, "[""")
        
        For i = LBound(v) To UBound(v)
            v(i) = Replace(Left(v(i), InStr(1, v(i), """,")), """", "")
        Next
        
        GetGoogleKeywordSuggestions = v
    Else
        GetGoogleKeywordSuggestions = Array("No response from server")
    End If
End Function

' 엑셀 자동 입력 매크로 검색어의 연관 찾아 팝업
Sub ShowGoogleKeywordSuggestions()
    Dim keyword As String
    Dim lang As String
    Dim suggestions As Variant
    Dim i As Long
    Dim result As String
    
    ' 키워드와 언어 입력
    keyword = InputBox("검색어를 입력하세요:", "Google Keyword Suggestions")
    lang = "ko" ' 언어 설정 (예: 한국어)
    
    If keyword = "" Then
        MsgBox "검색어를 입력하지 않았습니다."
        Exit Sub
    End If
    
    ' 검색어 추천 목록 가져오기
    suggestions = GetGoogleKeywordSuggestions(keyword, lang)
    
    ' 결과를 문자열로 구성
    result = "검색어 추천 목록:" & vbCrLf & vbCrLf
    For i = LBound(suggestions) To UBound(suggestions)
        result = result & suggestions(i) & vbCrLf
    Next
    
    ' 결과를 메시지 박스로 표시
    MsgBox result, vbInformation, "Google Keyword Suggestions"
End Sub

엑셀의 검색어 목록의 연관 검색으로 자동 조사해주는 엑셀 자동 입력 매크로

엑셀의 A열에 검색어를 입력해두고 아래 코드를 Alt+F11눌러 VBA입력기에서 삽입/모듈 입력창에 아래 코드를 복붙하고 F5를 눌러 실행하면 B,C,D...에 자동으로 연관 검색어가 입력됩니다.

' 엑셀 자동 입력 매크로 연관 검색어 일괄 조회 코드입니다.
Sub FillGoogleKeywordSuggestions()    Dim ws As Worksheet
    Dim lastRow As Long    Dim i As Long
    Dim keyword As String    Dim lang As String
    Dim suggestions As Variant    Dim j As Long
        ' 작업할 시트 설정
    Set ws = ThisWorkbook.Sheets("Sheet1")    
    ' A 컬럼의 마지막 행 찾기    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        ' 언어 설정 (예: 한국어)
    lang = "ko"    
    ' A 컬럼의 값을 읽어 B, C, D... 컬럼에 기입    For i = 1 To lastRow
        keyword = ws.Cells(i, 1).Value        If keyword <> "" Then
            suggestions = GetGoogleKeywordSuggestions(keyword, lang)            If IsArray(suggestions) Then
                For j = LBound(suggestions) To UBound(suggestions)                    ws.Cells(i, j + 2).Value = suggestions(j)
                Next j            Else
                ws.Cells(i, 2).Value = "결과없음"            End If
        Else            ws.Cells(i, 2).Value = "결과없음"
        End If    Next i
        MsgBox "완료되었습니다.", vbInformation, "Google Keyword Suggestions"
End Sub

' 엑셀 자동 입력 매크로 http 조회
Function GetHttpResponse(url As String) As String    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")    
    http.Open "GET", url, False    http.send
        If http.Status = 200 Then
        GetHttpResponse = http.responseText    Else
        GetHttpResponse = ""    End If
End Function

' 엑셀 자동 입력 매크로 검색어의 연관 검색어를 찾아 파싱
Function GetGoogleKeywordSuggestions(keyword As String, lang As String) As Variant    Dim s As String
    Dim v As Variant    Dim i As Long
        s = GetHttpResponse("https://www.google.com/complete/search?q=" & keyword & "&client=gws-wiz&hl=" & lang & "&authuser=0")
        ' 검색어 추천 결과를 처리
    If s <> "" Then        s = Replace(s, "\u003cb\u003e", "")
        s = Replace(s, "\u003c\/b\u003e", "")        
        ' JSON 형식의 문자열을 파싱하여 추천 검색어를 추출        s = Split(s, "[[[")(1)
        v = Split(s, "[""")        
        For i = LBound(v) To UBound(v)            v(i) = Replace(Left(v(i), InStr(1, v(i), """,")), """", "")
        Next        
        GetGoogleKeywordSuggestions = v    Else
        GetGoogleKeywordSuggestions = Array("No response from server")    End If
End Function

엑샐 VBA 위키
[엑셀 자동 입력 매크로 2](https://www.lalastower.com/blog/dev/%ec%b9%b4%ec%b9%b4%ec%98%a4%ed%86%a1%ec%9c%bc%eb%a1%9c-%ec%b1%97gpt-%eb%b4%87-%eb%a7%8c%eb%93%a4%ea%b8%b0/)