Disclaimer. Код может не работать, содержать ошибки, работать не так как хочется вам и тп. Если что-то не работает - кидайте логи в тг, можем разобраться вместе, а если интересно самим разобраться - рекоммендую повзаимодействовать с ChatGPT/Claude. Поможет разобраться как вообще это все работает и будет точно интереснее - путь программиста (даже любителя) это постоянный гуглинг, и “а это вообще че такое и как оно работает и почему не работает”.
Подготовленный мной макрос работает только на английском языке. Это ограничение связано с тем, как VBA обрабатывает кириллицу (плохо). Такое решение можно было бы проще сделать с помощью Python и оно бы прекрасно работало с кириллицей, но для этого вам бы пришлось ставить Python, качать библиотеки, и тп.
Видео-пример как работает макрос:
Запись экрана 2024-08-26 110701 (1).mp4
Если хотите просто повторить мой путь у себя, то вот файлы с самим документом куда я вставлял данные и откуда данные брал:
reseller-agreement-template.docx
Шаг 1. Открываем файл в docx, куда мы хотим поместить данные из нашей карточки клиента (в нашем примере reseller-agreement-template.
Шаг 2. Нажимаем вкладку Вид - Макросы - Макросы
Шаг 3. Вводим любое название нового макроса и нажимаем “Создать”
Шаг 4. Перед вами открывается окно для создания и редактирования макросов:
Шаг 5. Берем код макроса из моего файла ниже и вставляем его в окно макроса, заменяя все что там есть (т.е. окно должно быть пустое до вставки текста)
ExtractClientDataFromDocument.txt
Шаг 6. Вставляем API ключ от OpenAI вместо ХХХХ (обязательно внутрь существующих “ “)
Шаг 7. Вставляем путь к файлу (docPath) откуда будут браться клиентские данные, в моем случае это файл clientdata (обязательно внутрь существующих “ ”, если путь добавляет еще одни “ “ - вторые надо удалить)