Lala's tower

엑셀로 자동 포스팅 글 작성하기 엑셀과 웹2

엑셀로 자동 포스팅 글 작성하기 엑셀과 웹2

2024-06-05 20:48:56

엑셀로 자동 포스팅 글을 생성할 수 있습니다. 아래 설명을 그대로 따라하시면 됩니다. Open AI API를 사용하므로 유료입니다만, 첫 회원가입하면 5달러를 지급받으니 보통 2주 이상은 사용하실겁니다. 제미나이는 1시간 동안 60건 무료입니다.

엑셀로 자동 포스팅 글 작성하기 엑셀과 웹2 이미지

엑셀로 자동 포스팅가 가능한 이유

엑셀의 매크로를 이용하면 웹 API를 호출할 수 있습니다. Open AI의 API를 매크로로 호출한다면, 자동으로 원하시는 글을 생성하실 수 있습니다.

엑셀의 매크로를 이용하여 웹API를 호출하여 결과를 자동으로 정리하는 예시는 아래 링크의 글에서 정리하였습니다.

엑셀과 웹API와의 만남 1

엑셀로 자동 포스팅를 만들기 위한 준비 작업

아래 과정이 필요합니다. 복잡해 보입니다만 하나씩 진행하다보면 막히는 곳 없이 쉽게 완료하실겁니다.

  1. Open AI API key 얻기

  2. 엑셀 작성

  3. VBA환경설정

  4. JSON 파서 추가

  5. VBA코드작성

Open AI API key 얻기

Open AI에 가입하여 API key를 발급 받아 복사해두시면 됩니다.
Open AI API key 발급 받기

엑셀 작성

생성을 원하시는 글의 내용을 아래와 같이 기입해주세요.

  • 엑셀의 Sheet1의 A1셀에 원하시는 프롬프트를 작성해주세요. (A1 한칸에 다 기입해주셔야 정상 동작합니다.)

너는 블로그 전문가야 아래 주제를 쉬운 문장으로 설명해줘.
아래의 구성으로 정리해줘.
제목
메타설명글
소제목
내용

  • 엑셀의 Sheet1의 A2셀에 작성을 원하시는 주제를 입력해주세요. (예시 참고)

VBA환경설정

엑셀에서 Alt + F11을 눌러 VBA 편집기를 엽니다.'도구' 메뉴에서 '참조'를 선택하고 아래 3가지를 체크합니다.

  • Microsoft XML, v6.0

  • Microsoft Scripting Runtime

  • Microsoft Word 16.0 Object Library

JSON 파서 추가

VBA-JSON 라이브러리를 사용하여 JSON을 파싱합니다. VBA-JSON 라이브러리에서 JSONConverter.bas 파일을 다운로드하여 VBA 편집기 메뉴에서 파일/가져오기를 눌러 가져옵니다.

VBA코드작성

VBA편집기 메뉴에서 삽입/모듈을 선택하고 아래 코드를 붙여 넣습니다.
apiKey = "OPEN AI API-KEY를 붙여넣어주세요."
이 부분에 OPEN AI API-KEY를 복붙하시고 저장하시면 됩니다.

Attribute VB_Name = "Module1"


' 엑셀로 자동 포스팅 글 작성하기 엑셀과 웹2
Sub CallOpenAIAPI()
    Dim http As Object
    Dim url As String
    Dim apiKey As String
    Dim requestBody As String
    Dim response As String
    Dim systemText As String
    Dim userText As String
    Dim jsonResponse As Object
    Dim resultText As String
    
    ' Set up the API URL and the API key
    url = "https://api.openai.com/v1/chat/completions"
    apiKey = "Bearer " & "API키 입력해주세요." 

    ' Read the content from Excel cells
    systemText = Sheets("Sheet1").Range("A1").Value
    userText = Sheets("Sheet1").Range("A2").Value

    ' Set up the request body
    requestBody = "{""model"": ""gpt-3.5-turbo"", ""messages"": [" & _
                  "{""role"": ""system"", ""content"": """ & systemText & """}," & _
                  "{""role"": ""user"", ""content"": """ & userText & """}]," & _
                  """temperature"": 0.7}"

    ' Create the HTTP object
    Set http = CreateObject("MSXML2.XMLHTTP")

    ' Open the connection
    http.Open "POST", url, False

    ' Set the request headers
    http.setRequestHeader "Content-Type", "application/json"
    http.setRequestHeader "Authorization", apiKey

    ' Send the request
    http.send requestBody

    ' Get the response
    response = http.responseText

    ' Parse the JSON response
    Set jsonResponse = JsonConverter.ParseJson(response)
    resultText = jsonResponse("choices")(1)("message")("content")

    ' Write the result to Sheet1's A3 cell
    Sheets("Sheet1").Range("A3").Value = resultText

    ' Clean up
    Set http = Nothing
    Set jsonResponse = Nothing
End Sub



실행

이제 엑셀에서 Alt+F8을 누르시고 QueryChatGPTAndSaveToWord를 선택, 실행하시면 A3셀에 결과가 표시됩니다. (위 이미지 참조), 원하시는 내용이 맞는 지 확인하시면 됩니다. 워드프레스 API를 설정하면 생성된 글을 워드프레스로 자동 등록도 가능합니다. 그러나, 자동 생성한 글이 사이트 점수에 좋지 않은 것 같아요. 그대로 사용하시는 것은 안 좋을 듯하군요. 자동 포스팅까지 완료하여 워드프레스에 자동 등록까지 해주는 코드도 정리해 볼 예정입니다.