Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/cbetaorg/forum.cbeta.org/Sources/Load.php(225) : runtime-created function on line 3
分享:Word中按現代文格式預覽經文,對新標進行所見即所得校對
CBETA 論壇 Goto CBETA
十二月 19, 2018, 02:47:35 上午 *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.

請輸入帳號, 密碼以及預計登入時間
新聞: 即日起歡迎使用 CBETA 新版討論區,本討論區僅供閱讀。
 
   首頁   說明 搜尋 登入 註冊  
頁: [1]
  列印  
作者 主題: 分享:Word中按現代文格式預覽經文,對新標進行所見即所得校對  (閱讀 6342 次)
china_xian
一星級
*
文章: 1


« 於: 六月 27, 2009, 04:00:34 上午 »

  目前新標程式未提供“預覽”功能(即按現代文分段形式預覽展示經文),這樣新標義工在初步標註標點后,難以直觀地進行校對和修改。我目前用Word2003宏來實現這個簡單的預覽功能,只要在新標程式中把經文全部複製到Word中,然後運行以下這個宏,即能在Word中展現為現代文分段形式,能很方便直觀地進行校對。
 
  Word宏在附件中可下載。使用方法:Word中打開“工具”-“宏”-“VisualBasic編輯器”-“文件”-“導入文件”-將解壓縮后的CBETA_XB_Preview.bas導入-保存退出返回Word,之後便可以使用這個宏了。

  附宏代碼:
Attribute VB_Name = "CBETA_XB"
Sub CBETA_XB_Preview()
    Dim para As Paragraph
    Dim newLines, paraText, paraPre As String
    For Each para In ActiveDocument.Paragraphs
        paraText = Replace(para.Range.Text, Chr(13), "")
        If Len(paraText) >= 20 And Mid(paraText, 1, 1) = "T" And Mid(paraText, 20, 1) = "#" Then
            paraPre = Left(paraText, 20)
            paraText = Right(paraText, Len(paraText) - 20)
            If Mid(paraPre, 18, 1) <> "_" Then
                paraText = "<P>" & paraText
            End If
            newLines = newLines & paraText
        End If
    Next
    newLines = Replace(newLines, "}}", "")
    newLines = Replace(newLines, "P", "<P>")
    ActiveDocument.Range.Text = newLines
   
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "\{\{*||"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = True
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "<P>"
        .Replacement.Text = "^p  "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
已記錄
頁: [1]
  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.9 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!