Dmitry 的个人资料Дмитрий Пелешенко照片日志列表 工具 帮助

日志


3月23日

Еще немного макросов

   Итак, макросы для автоматизации обработки списка литературы. Для использования любого маскроса из этой серии (а их пока 2) необходимо перед запуском макроса выделить список литературы. Макрос проведет анализ этого списка, а затем всего документа. Ссылки следует обозначать числами в квадратных скобках. Также следует отметить, что список литературы не должен быть списком в понимании MS Word, он должен состоять из последовательности абзацев, каждый из которых начинается с числа и точки после этого числа.

   Первый из разработанных макросов осуществляет проверку текста и списка литературы на «целостность». Ошибочные ссылки, пункты списка которые не удалось разобрать и на которые нет ссылок в тексте будут коментариями.

Sub CheckSources()
    Dim sel As selection

    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

   Второй макрос упорядочивает список литературы в порядке следования ссылок в тексте и производит перенумерацию. Работает по такому же принципу. Следует отметить, что если какой то источник (элемент списка литературы) не будет использован, то он будет удален из списка, о чем будет выдано предупреждение. В одну запись блога все не влазит поетому код этого макроса в ледующей записи.

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://peleshenko.spaces.live.com/blog/cns!C22B7611BB9D0310!174.trak
引用此项的网络日志