Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
Word

Макрос для добавления выделенного текста в библиографический список Word

01.03.2025, 17:44. Показов 1647. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. С помощю искусственного интеллекта создал макрос который добавить в ворд список библиографический список выделенног текста. Но макрос полностью не может добавить в нужные места. Пример: Petrov, U.T. (2025). Koʻchmas mulkni kadastr baholash tuzilmasi. Aktuar moliya va buxgalteriya hisobi, 5(2), 197-209.

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Sub AddToBibliography()
    Dim selectedText As String
    Dim author As String, year As String, title As String, journal As String, volume As String, issue As String, pages As String
    Dim sourceXML As String
    Dim uniqueTag As String
    Dim parts() As String
 
    ' Танланган текстни олиш
    If Selection.Type = wdSelectionIP Then
        MsgBox "Пожалуйста, сначала выделите текст!", vbExclamation
        Exit Sub
    End If
 
    selectedText = Trim(Selection.text)
 
    ' Текстни парс ?илиш
    On Error GoTo ParseError
    parts = Split(selectedText, ".")
    author = Trim(parts(0)) ' Автор
 
     parts = Split(selectedText, "(")
    year = Mid(parts(UBound(parts) - 1), 1, 4) ' Год
    
    parts = Split(selectedText, ",")
    journal = Trim(parts(1)) ' Журнал
 
   
 
    parts = Split(selectedText, ").")
    title = Trim(parts(1)) ' Название статьи
 
    parts = Split(selectedText, ",")
    volume = Trim(Split(parts(2), "(")(0)) ' Том
    issue = Trim(Replace(Split(Split(parts(2), "(")(1), ")")(0), " ", "")) ' Номер
    pages = Trim(parts(UBound(parts))) ' Страницы
    On Error GoTo 0
 
    ' Уникал тег ясаш (ва?т там?аси билан)
    uniqueTag = "Ref_" & Replace(author, " ", "") & year & "_" & Format(Now, "hhmmss")
 
    ' XML манбасини шакллантириш
    sourceXML = "<b:Source xmlns:b=""http://schemas.openxmlformats.org/officeDocument/2006/bibliography"">" & _
                "<b:Tag>" & uniqueTag & "</b:Tag>" & _
                "<b:SourceType>JournalArticle</b:SourceType>" & _
                "<b:Author>" & _
                    "<b:Author>" & _
                        "<b:NameList>" & _
                            "<b:Person>" & _
                                "<b:Last>" & Split(author, " ")(0) & "</b:Last>" & _
                                "<b:First>" & Replace(author, Split(author, " ")(0) & " ", "") & "</b:First>" & _
                            "</b:Person>" & _
                        "</b:NameList>" & _
                    "</b:Author>" & _
                "</b:Author>" & _
                "<b:Year>" & year & "</b:Year>" & _
                "<b:Title>" & title & "</b:Title>" & _
                "<b:JournalTitle>" & journal & "</b:JournalTitle>" & _
                "<b:Volume>" & volume & "</b:Volume>" & _
                "<b:Issue>" & issue & "</b:Issue>" & _
                "<b:Pages>" & pages & "</b:Pages>" & _
                "</b:Source>"
 
    ' Word'нинг встроенный механизм Citation ?ўшиш
    With ActiveDocument.Bibliography.Sources
        .Add sourceXML
    End With
 
    ' Адабиётлар рўйхатини янгилаш
    ActiveDocument.Fields.Update
 
    MsgBox "Выделенный текст добавлен в список литературы.", vbInformation
    Exit Sub
 
ParseError:
    MsgBox "Неверный формат текста! Формат: Автор. Название. Журнал, Том(Номер), Год, Страницы.", vbExclamation
End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2025, 17:44
Ответы с готовыми решениями:

Макрос Word 2007: автоматически выполняется действие с выделенным фрагментом текста
Добрый день. Прошу помочь в реализации такого макроса. Есть текст в Word 2007, он почти весь однородный для макросов, т.к. только...

Написать макрос MS Word, работающий с участком текста документа, выделенного пользователем
Написать макрос MS Word, который работает с участком текста документа, выделенного пользователем. А именно – заносит каждое слово участка...

В приложении Microsoft Word создайте макрос, который бы в выделенном фрагменте устанавливал нумерованный список
В приложении Microsoft Word создайте макрос, который бы в выделенном фрагменте устанавливал нумерованный список, положение номера бы...

4
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4136 / 2430 / 503
Регистрация: 13.12.2016
Сообщений: 8,271
Записей в блоге: 5
01.03.2025, 20:56
а есть форум по разоблачению ИИ? Может туда пожалуетесь?

Добавлено через 3 минуты
Форум вроде как для программистов. А вы кто?
0
54 / 42 / 14
Регистрация: 01.10.2015
Сообщений: 188
10.03.2025, 19:05
Привет! Вопрос еще актуален?
0
-4 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 218
10.03.2025, 19:49  [ТС]
Цитата Сообщение от vivka Посмотреть сообщение
Привет! Вопрос еще актуален?
Добрый вечер. Да. Спосибо что хотели помоч

Добавлено через 7 минут
vivka, Добрый вечер. Да. Спосибо что хотели помоч
0
54 / 42 / 14
Регистрация: 01.10.2015
Сообщений: 188
10.03.2025, 22:37
Тогда попробуйте это:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Sub AddToBibliography()
    
Dim selectedText As String
Dim author As String, year As String, title As String, journal As String, volume As String, issue As String, pages As String
Dim sourceXML As String
Dim uniqueTag As String
Dim parts() As String
 
    ' Танланган текстни олиш
    If Selection.Type = wdSelectionIP Then
        MsgBox "Пожалуйста, сначала выделите текст!", vbExclamation
        Exit Sub
    End If
 
    selectedText = Trim(Selection.text)
 
' Текстни парс ?илиш
    On Error GoTo ParseError
    parts = Split(selectedText, "(")
    author = Trim(parts(0)) ' Автор
    parts = Split(selectedText, "(")
    year = Mid(parts(UBound(parts) - 1), 1, 4) ' Год
    parts = Split(selectedText, ").")
    parts = Split(parts(1), ".")
    title = Trim(parts(0)) ' Название статьи
    parts = Split(selectedText, ").")
    parts = Split(parts(1), ",")
    parts = Split(parts(0), ".")
    journal = Trim(parts(1)) ' Журнал
    parts = Split(selectedText, ",")
    volume = Trim(Split(parts(2), "(")(0)) ' Том
    issue = Trim(Replace(Split(Split(parts(2), "(")(1), ")")(0), " ", "")) ' Номер
    parts = Split(selectedText, ",")
    parts = Split(parts(UBound(parts)), ".")
    pages = Trim(parts(0)) ' Страницы
 
    On Error GoTo 0
' Уникал тег ясаш (ва?т там?аси билан)
    uniqueTag = "Ref_" & Replace(author, " ", "") & year & "_" & Format(Now, "hhmmss")
 
' XML манбасини шакллантириш
    sourceXML = "<b:Source xmlns:b=""http://schemas.openxmlformats.org/officeDocument/2006/bibliography"">" & _
                "<b:Tag>" & uniqueTag & "</b:Tag>" & _
                "<b:SourceType>JournalArticle</b:SourceType>" & _
                "<b:Author>" & _
                    "<b:Author>" & _
                        "<b:NameList>" & _
                            "<b:Person>" & _
                                "<b:Last>" & Split(author, ",")(0) & "</b:Last>" & _
                                "<b:First>" & Replace(author, Split(author, " ")(0) & " ", "") & "</b:First>" & _
                            "</b:Person>" & _
                        "</b:NameList>" & _
                    "</b:Author>" & _
                "</b:Author>" & _
                "<b:Year>" & year & "</b:Year>" & _
                "<b:Title>" & title & "</b:Title>" & _
                "<b:JournalName>" & journal & "</b:JournalName>" & _
                "<b:Volume>" & volume & "</b:Volume>" & _
                "<b:Issue>" & issue & "</b:Issue>" & _
                "<b:Pages>" & pages & "</b:Pages>" & _
                "</b:Source>"
 
' Word'нинг встроенный механизм Citation ?ўшиш
    With ActiveDocument.Bibliography.Sources
        .Add sourceXML
    End With
 
' Адабиётлар рўйхатини янгилаш
    ActiveDocument.Fields.Update
 
    MsgBox "Выделенный текст добавлен в список литературы.", vbInformation
    Exit Sub
 
ParseError:
    MsgBox "Неверный формат текста! Формат: Автор, И.О. (Год). Название статьи. Журнал, Том(Номер), Страница-Страница.", vbExclamation
End Sub
Работает с Вашим примером, который создан по правилам АРА (в сообщении об ошибке ParseError указан соответствующий шаблон). С литературой по другим правилам будет выдаваться ошибка. Внесенные мной исправления можете увидеть при сравнении оригинального кода и моего.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2025, 22:37
Помогаю со студенческими работами здесь

Создать Макрос добавление текста в выделенном фрагменте
Помогите создать Макрос для Word, который в выделенном фрагменте текста в Word к каждому слову будет добавлять цифру. Например есть...

Макрос добавления выделенного фрагмента в фильтр
Профессионалы, привет! Помогите создать макрос который добавляет выделенный фрагмент из поиска выпадающего окна фильтра. Задача: из 1000...

Как для выделенного текста выполнить проверку орфографии на русском языке в Word с помоцью vba?
Как для выделенного текста выполнить проверку орфографии на русском языке в Word с помоцью vba?

Макрос для автоматического добавления текста в StatusBar при открытии книги
Подскажите, пожалуйста, как сделать, чтобы текст в statusbar появлялся автоматически при открытии рабочей книги. предположительно код...

Макрос печати выделенного текста
здравствуйте, есть у меня макрос, его назначение - печатать выделенный фрагмент текста предварительно он этот текст подготавливает к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru