안녕하세요? 카카오톡 문자보내기 자동화 파일을 한번 잘 사용해보려고 열심히 공부중입니다.
전체 표 크기까지 늘려서 대략 800명 정도에게 카카오톡 문자와 이미지 1장을 보낼 준비를 모두 마치고
실행을 해 보았습니다.
실제로 에러가 나는 곳은 '카카오톡'인데요. 추측하기로는 현재 매크로로 카카오톡의 메세지를 보내는 순서가
- 카카오톡 친구를 검색해서 채팅창을 오픈
- 그림을 붙여 넣기 / 그 다음 내용을 붙여넣기
- 채팅창 닫기
이 순서로 진행되는 것 같습니다.
근데 문제는 1번을 전체 명단을 다 열때까지 계속 채팅창만 오픈한다는 것입니다. 카카오톡에서 채팅창을 800개까지 오픈할줄은 몰랐던 것이 아닌가 싶어요.ㅎㅎㅎㅎ 오픈하다가 카카오톡이 에러가 납니다.
하여 엑셀 자동화 매크로에서 순서를 약간 변동하여
위 1,2,3을 채팅창 1명의 사이클로 계속 반복하는 형태로 변경한다면 카카오톡 에러가 나지 않을 것으로 예상합니다.
즉 친구 한명의 채팅창을 오픈 -> 내용 붙여넣고 사진 붙여넣기 -> 채팅창 닫기
이것을 하나의 루프로 해서 돌린다면 800명도 다 보낼 수 있을 것 같은데요.
매크로의 어느 부분을 손을 대야 루프변경이 될지 잘 모르겠어서 질문을 드려봅니다!

제가 해결한 방법 올립니다~~! 메인코드 변경했어요~~ 아래와 같이 변경하면 잘 작동되네요^^
이제 정말 1000명 이상도 대량으로 보낼 수 있습니다!!
Sub SendKakaoMsgs()
Dim Target As String: Dim sMsg As String
Dim SendAsImage As Long: Dim sImgTxt As String
Dim r As Long: Dim eRow As Long: Dim iRow As Long
Dim blnSend As Boolean
' OpenInAdvance를 False로 강제하거나, 루프 내에서 처리하도록 변경합니다.
Dim OpenInAdvance As Boolean
Dim ChatRoomType As Integer
Dim vbYN As VbMsgBoxResult
vbYN = MsgBox("문자 발송을 시작하시겠습니까?" & vbNewLine & "(순차 발송 모드로 진행됩니다.)", vbYesNo)
If vbYN = vbNo Then Exit Sub
With shtSetting
iRow = 8
' 대량 발송을 위해 "미리 열기" 기능을 무시하고 순차 실행(False)으로 설정합니다.
OpenInAdvance = False
If .Range("C2").Value = "문자" Then
SendAsImage = 0
ElseIf .Range("C2").Value = "그림" Then
SendAsImage = 1
Else
SendAsImage = 2
End If
eRow = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range(.Cells(8, 6), .Cells(eRow, 6)).Value = ""
.Range("D4").Value = "준비중.."
End With
' 이미지/텍스트 개체 검증 (기존 로직 유지)
If SendAsImage <> 0 Then
' ... (기존 검증 로직 동일) ...
' (중략 - 기존 코드와 동일하므로 그대로 두시면 됩니다)
End If
' [수정 핵심] 기존에 전체 창을 미리 다 열던 For r = iRow To eRow 루프를 완전히 삭제했습니다.
' 문자 발송 루프 (하나씩 열고 보내고 닫기)
For r = iRow To eRow
Application.ScreenUpdating = False
Target = shtSetting.Cells(r, 3).Value
If Target <> "" Then ' 대상 이름이 있을 때만 실행
ChatRoomType = GetChatType(r)
sMsg = shtSetting.Cells(r, 4).Value
sImgTxt = shtSetting.Cells(r, 5).Value
' SendKakao 함수 내부에서 창을 열고(ActiveChat), 마지막에 창을 닫습니다(SetESC).
' OpenInAdvance를 False로 전달하여 매번 창을 새로 열게 만듭니다.
blnSend = mod_fx.SendKakao(Target, sMsg, sImgTxt, SendAsImage, iDelay, False, ChatRoomType)
If blnSend = True Then
shtSetting.Cells(r, 6).Value = 1
Else
shtSetting.Cells(r, 6).Value = 0
End If
' 진행률 표시
shtSetting.Range("D4").Value = Format((r - 7) / (eRow - 7), "0%") & " 진행 중..."
' [중요] 한 명 보낸 후 다음 사람으로 넘어가기 전 시스템 안정화를 위한 짧은 휴식
SetDelay 10
End If
Application.ScreenUpdating = True
DoEvents
Next
' 안내메세지 출력
AppActivate Application.Caption
MsgBox "총 " & (eRow - iRow + 1) & "명에게 발송을 완료하였습니다.", vbInformation, "오빠두엑셀"
shtSetting.Range("D4").Value = "-"
End Sub
와..완전 짱인데요.. 혹시 이미지도 여러장으로 10장이상 발송 할 수 있도록 설정 하는 방법도 있을까요?