Disclaimer. Код может не работать, содержать ошибки, работать не так как хочется вам и тп. Если что-то не работает - кидайте логи в тг, можем разобраться вместе, а если интересно самим разобраться - рекоммендую повзаимодействовать с ChatGPT/Claude. Поможет разобраться как вообще это все работает и будет точно интереснее - путь программиста (даже любителя) это постоянный гуглинг, и “а это вообще че такое и как оно работает и почему не работает”.

Подготовленный мной макрос работает только на английском языке. Это ограничение связано с тем, как VBA обрабатывает кириллицу (плохо). Такое решение можно было бы проще сделать с помощью Python и оно бы прекрасно работало с кириллицей, но для этого вам бы пришлось ставить Python, качать библиотеки, и тп.

Видео-пример как работает макрос:

Запись экрана 2024-08-26 110701 (1).mp4

Если хотите просто повторить мой путь у себя, то вот файлы с самим документом куда я вставлял данные и откуда данные брал:

clientdata.docx

reseller-agreement-template.docx

Инструкция:

Шаг 1. Открываем файл в docx, куда мы хотим поместить данные из нашей карточки клиента (в нашем примере reseller-agreement-template.

Шаг 2. Нажимаем вкладку Вид - Макросы - Макросы

image.png

Шаг 3. Вводим любое название нового макроса и нажимаем “Создать”

image.png

Шаг 4. Перед вами открывается окно для создания и редактирования макросов:

image.png

Шаг 5. Берем код макроса из моего файла ниже и вставляем его в окно макроса, заменяя все что там есть (т.е. окно должно быть пустое до вставки текста)

ExtractClientDataFromDocument.txt

image.png

Шаг 6. Вставляем API ключ от OpenAI вместо ХХХХ (обязательно внутрь существующих “ “)

Шаг 7. Вставляем путь к файлу (docPath) откуда будут браться клиентские данные, в моем случае это файл clientdata (обязательно внутрь существующих “ ”, если путь добавляет еще одни “ “ - вторые надо удалить)