| Dmitry 的个人资料Дмитрий Пелешенко照片日志列表 | 帮助 |
|
|
3月23日 Еще немного макросовИтак, макросы для автоматизации обработки списка литературы. Для использования любого маскроса из этой серии (а их пока 2) необходимо перед запуском макроса выделить список литературы. Макрос проведет анализ этого списка, а затем всего документа. Ссылки следует обозначать числами в квадратных скобках. Также следует отметить, что список литературы не должен быть списком в понимании MS Word, он должен состоять из последовательности абзацев, каждый из которых начинается с числа и точки после этого числа. Первый из разработанных макросов осуществляет проверку текста и списка литературы на «целостность». Ошибочные ссылки, пункты списка которые не удалось разобрать и на которые нет ссылок в тексте будут коментариями. Sub CheckSources() sel = ActiveWindow.selection Dim p As Paragraph Dim Sources As New Collection For Each p In sel.Paragraphs Dim number As String Dim l As Integer l = p.Range.Characters.Count number = "" For i = 1 To l c = p.Range.Characters(i) If c >= "0" And c <= "9" Then number = number + c Else Exit For End If Next i If number = "" Then p.Range.Comments.Add(p.Range, "Помилка аналізу джерела") Else Sources.Add(Array(number, p.Range)) End If Next p Dim state As Integer state = 0 Dim str As String Dim w As Range unknownSources = 0 For Each w In ActiveWindow.Document.Words str = Trim(w.text) Select Case str Case "[" state = 1 Case "]", "].", "]:", "],", "];", "]-" state = 0 Case ",", " "
Case Else If state = 1 Then f = False For i = 1 To Sources.Count If Sources.Item(i)(0) = str Then f = True Exit For End If Next i If Not f Then w.Comments.Add(w, "Невідоме посилання") unknownSources = unknownSources + 1 End If End If End Select Next w For Each w In ActiveWindow.Document.Words str = Trim(w.text) Select Case str Case "[" state = 1 Case "]", "].", "]:", "],", "];", "]-" state = 0 Case ",", " "
Case Else If state = 1 Then For i = 1 To Sources.Count If Sources.Item(i)(0) = str Then Sources.Remove(i) Exit For End If Next i End If End Select Next w For Each i In Sources i(1).Comments.Add(i(1), "Не застосоване посилання") Next i MsgBox("Не застосованих джерел: " + CStr(Sources.Count) + ". Невідомих посилань: " + CStr(unknownSources) + ".", vbInformation) End Sub
Второй макрос упорядочивает список литературы в порядке следования ссылок в тексте и производит перенумерацию. Работает по такому же принципу. Следует отметить, что если какой то источник (элемент списка литературы) не будет использован, то он будет удален из списка, о чем будет выдано предупреждение. В одну запись блога все не влазит поетому код этого макроса в ледующей записи.
引用通告此日志的引用通告 URL 是: http://peleshenko.spaces.live.com/blog/cns!C22B7611BB9D0310!174.trak 引用此项的网络日志
|
|
|