เอกสารที่มีแนบแม่แบบใช้เวลานานในการเปิด ใน Word 2002 และ Word 2003

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:830561
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
อาการ
เมื่อคุณเปิดเอกสาร Microsoft Word (* .doc) แฟ้ม เอกสารอาจใช้เวลานานขึ้นจาก นั้นคาดว่าจะเปิดได้ ตัวอย่าง เอกสารอาจใช้เวลา 5 ถึง 10 นาทีเมื่อต้องการเปิด
สาเหตุ
อาการนี้อาจเกิดขึ้นถ้าเอกสารมีเท็มเพลต แนบ หรือเชื่อมโยง และมีเงื่อนไขใด ๆ ต่อไปนี้เป็นจริง:
  • แม่แบบที่แนบ โฟลเดอร์ หรือใช้ร่วมกันนั้นคือ ที่ขาดไป
  • มีการย้ายแม่แบบที่แนบ
  • แม่แบบที่แนบถูกลบ
เมื่อไม่พบแม่แบบ Word, Windows XP จะพยายามค้นหา ต้นแบบหายไปหลายครั้ง กระบวนการในการค้นหาแม่แบบขาดหายไป อาจทำให้เอกสาร Word เมื่อต้องการใช้เวลานานเกินกว่าที่คาดว่าจะเปิด

ดังกล่าวจะใช้เวลานานในการเปิดเอกสารเมื่อคุณเชื่อมต่อกับเครือข่ายโดยเปรียบเทียบกับเมื่อคุณถูกตัดการเชื่อมต่อจากเครือข่าย
การแก้ไข
การทำงาน ปัญหานี้บนคอมพิวเตอร์ที่มีการติดตั้ง Windows XP ใช้หนึ่งตัว วิธีต่อไปนี้ตามความเหมาะสมกับสถานการณ์ของคุณ:

วิธีที่ 1: แนบแม่แบบจากตำแหน่งที่ตั้งใหม่

เปิดเอกสารใน Microsoft Word รอจนกว่าเอกสารจะเปิดขึ้น หลังจาก เอกสารที่เปิดอยู่ แนบแม่แบบจากตำแหน่งที่ตั้งใหม่ ขึ้น เปลี่ยนแม่แบบเป็นแม่แบบส่วนกลาง Normal.dot เมื่อต้องการแนบแบบ ต้นแบบ ทำตามขั้นตอนเหล่านี้:
  1. ในการ เครื่องมือ เมนู คลิก แม่แบบ และเพิ่มเติม.
  2. ในการ แม่แบบและ add-ins กล่องโต้ตอบ คลิก แนบ.
  3. ในการ แนบแม่แบบ กล่องโต้ตอบ การเลือก แม่แบบที่คุณต้องการ และจากนั้น คลิก เปิด.
  4. ในการ แม่แบบและ add-ins กล่องโต้ตอบ คลิก ตกลง.

กลับสู่ด้านบน

วิธีที่ 2: ใช้กำหนดเอง โปรแกรมประยุกต์ Visual Basic เมื่อต้องการเปลี่ยนแม่แบบที่แนบกับแม่แบบส่วนกลาง (Normal.dot) เมื่อมีเปิดเอกสารใหม่

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น โดยไม่มีการรับประกันอย่างใดอย่างหนึ่ง หรือโดยนัย ซึ่งรวมถึง แต่ไม่จำกัดเฉพาะ การรับประกันโดยนัยของสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้อนุมานว่า คุณมีความคุ้นเคย กับภาษาการเขียนโปรแกรมที่จะแสดง และ มีเครื่องมือที่ใช้ใน การสร้าง และ แก้จุดบกพร่องกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทำงานของกระบวนการเฉพาะ อย่างไรก็ตาม พวกเขาจะไม่สามารถปรับเปลี่ยนการตัวอย่างเหล่านี้เพื่อให้มีเพิ่มฟังก์ชันการทำงาน หรือสร้างกระบวนงานเพื่อตอบสนองความต้องการเฉพาะของคุณ

ใช้วิธีการแก้ไขปัญหาแบบกำหนดเองเมื่อต้องการเปลี่ยนแปลงที่แนบ แม่แบบเป็นแม่แบบส่วนกลาง (Normal.dot) เมื่อเอกสารใหม่ เปิด

หมายเหตุ ตรวจสอบให้แน่ใจว่า ปลอดภัยถูกตั้งค่าเป็น'ปานกลาง' หรือ ต่ำ

เมื่อต้องการสร้างโซลูชันกำหนดเองใน Microsoft Visual Basic 6 ขั้นตอนเหล่านี้:
  1. เปิดโครงการ Standard.exe ใหม่
  2. บนแบบฟอร์มผู้ใช้ เพิ่มคอมโพเนนต์ต่อไปนี้:
    • กล่องรายการหนึ่ง
    • กล่องข้อความที่สอง
    • ปุ่มคำสั่งสี่
    • ป้ายชื่อที่สอง
  3. การตั้งค่าการอ้างอิงถึงการรันไทม์การเขียนสคริปต์ของ Microsoft (Scrun.dll)
  4. คัดลอก และวางรหัสต่อไปนี้ในแบบฟอร์มผู้ใช้:
    Option ExplicitPrivate Const BIF_RETURNONLYFSDIRS = 1Private Const BIF_DONTGOBELOWDOMAIN = 2Private Const MAX_PATH = 260Private Declare Function SHBrowseForFolder Lib "shell32" _   (lpbi As BrowseInfo) As LongPrivate Declare Function SHGetPathFromIDList Lib "shell32" _   (ByVal pidList As Long, _   ByVal lpBuffer As String) As LongPrivate Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _   (ByVal lpString1 As String, ByVal _   lpString2 As String) As LongPrivate Type BrowseInfo   hWndOwner      As Long   pIDLRoot       As Long   pszDisplayName As Long   lpszTitle      As Long   ulFlags        As Long   lpfnCallback   As Long   lParam         As Long   iImage         As LongEnd TypePublic fso As New FileSystemObjectDim fld As FolderPrivate Sub cmdEnd_Click()   EndEnd SubPrivate Sub cmdSource_Click()   ' Opens a Treeview control that displays the directories in a computer.   Dim lpIDList As Long   Dim sBuffer As String   Dim szTitle As String   Dim tBrowseInfo As BrowseInfo   szTitle = "This is the title"   With tBrowseInfo      .hWndOwner = Me.hWnd      .lpszTitle = lstrcat(szTitle, "")      .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN   End With   lpIDList = SHBrowseForFolder(tBrowseInfo)   If (lpIDList) Then      sBuffer = Space(MAX_PATH)      SHGetPathFromIDList lpIDList, sBuffer      sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)      frmFSO.txtSearch.Text = sBuffer   End IfEnd SubPrivate Sub cmdTarget_Click()   ' Opens a Treeview control that displays the directories in a computer.    Dim lpIDList As Long    Dim sBuffer As String    Dim szTitle As String    Dim tBrowseInfo As BrowseInfo    szTitle = "This is the title"    With tBrowseInfo       .hWndOwner = Me.hWnd       .lpszTitle = lstrcat(szTitle, "")       .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN    End With    lpIDList = SHBrowseForFolder(tBrowseInfo)    If (lpIDList) Then       sBuffer = Space(MAX_PATH)       SHGetPathFromIDList lpIDList, sBuffer       sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)    End IfEnd SubPrivate Sub Command1_Click()   Dim nDirs As Long, nFiles As Long, lSize As Currency   Dim sDir As String, sSrchString As String   Dim nTime   Dim ntime2   Dim nOk As Integer   Dim fileNumber As Integer   Dim oWord As Object   Dim strServer As String   Set oWord = CreateObject("Word.Application")   strServer = txtOldServer.Text   nTime = Time()   fileNumber = FreeFile          List1.Clear          Open "C:\ChangeTemplate.log" For Append As #fileNumber   Write #fileNumber, "Start:" & " " & nTime   Close #fileNumber                    'Enter the top-level directory to start the search.   sDir = txtSearch.Text   'Enter the type of files, such as *.doc for Word documents  sSrchString = "*.doc"     MousePointer = vbHourglass 'The label shows the current subfolder being searched.  Label1.Caption = "Searching Folder: " & vbCrLf & UCase(sDir) & "..."  lSize = FindFile(sDir, sSrchString, nDirs, nFiles, strServer, oWord)  MousePointer = vbDefault  ntime2 = Time()  'Opens text file to show the stop time and the total numbers of  'files that were found.  Open "C:\ChangeTemplate.log" For Append As #fileNumber  Write #fileNumber, "Stop:" & " " & ntime2 & " " & _     "Time to Complete the Changes: " & _     Format(ntime2 - nTime, "nn:ss") & vbCrLf _     & Str(nFiles) & " files found in" & Str(nDirs) & _     " directories"  Close #fileNumber  ' Debug.Print "Stop:" & " " & ntime2  Label1.Caption = "Done"  If Label1.Caption = "Done" Then Command2.Enabled = True     MsgBox "Done"     oWord.Quit     Set oWord = NothingEnd SubPrivate Function FindFile(ByVal sFol As String, sFile As String, _   nDirs As Long, nFiles As Long, strOServer As String, oWrd As Object) _      As Currency   Dim tFld As Folder, tFil As File, FileName As String   Dim strFileName As String   Dim fileNumber As Integer         On Error GoTo Catch        Set fld = fso.GetFolder(sFol)   FileName = Dir(fso.BuildPath(fld.Path, sFile), vbNormal Or _      vbHidden Or vbSystem Or vbReadOnly)   While Len(FileName) <> 0      FindFile = FindFile + FileLen(fso.BuildPath(fld.Path, FileName))      nFiles = nFiles + 1      List1.AddItem fso.BuildPath(fld.Path, FileName)  ' Load ListBox      strFileName = fld.Path & "\" & FileName      '==              ChangeTemplate strFileName, strOServer, oWrd      FileName = Dir()  ' Get next file      DoEvents   Wend   Label1 = "Searching " & vbCrLf & fld.Path & "..."   nDirs = nDirs + 1   If fld.SubFolders.Count > 0 Then      For Each tFld In fld.SubFolders         DoEvents         FindFile = FindFile + FindFile(tFld.Path, sFile, nDirs, nFiles, _            strOServer, oWrd)      Next   End IfExit FunctionCatch:     FileName = ""       If Err.Number = 76 Then      MsgBox "This is not a valid path statement" & vbCrLf & _         "The program will end!"      End   End If   Debug.Print Err.Description   fileNumber = FreeFile   'Writes the error description and number to the log file.   Open "C:\ChangeTemplate.log" For Append As #fileNumber   Write #fileNumber, Err.Description & " " & Err.Number   Close #fileNumber   Resume NextEnd FunctionPrivate Sub Command2_Click()    'Use this to view the log file.    Shell "notepad.exe c:\ChangeTemplate.log", 1End Sub
    ในโมดูลมาตรฐาน เพิ่มรหัสต่อไปนี้:
    Sub ChangeTemplate(SourceFile As String, strServer As String, objWord As Object)   Dim dlgTemplates As Dialog   Dim strTemp As String   Dim strpath As String   Dim objtemplate As String   Dim dlgTemplate As Object   Dim x As Integer   Dim fNumber As Integer   Dim objDoc As Object      fNumber = FreeFile         objWord.Visible = False   strTemp = SourceFile   'This function determines if the document is password protected or Read Only.   If OpenDocument(objWord, strTemp) = True Then      'This assumes that there is only one document opened. It may have to be adjusted      'to look for additional document being opened.       Set objDoc = objWord.Documents(1)       'Dialogs 87 is the Templates and Addins dialog       Set dlgTemplates = objWord.Dialogs(87)       objtemplate = objWord.Dialogs(87).Template       'parse out the server name from the fullname of the attached template       If Mid(objtemplate, 2, 1) = ":" Or Left(objtemplate, 2) = "\\" Then          x = InStr(3, objtemplate, "\")          strTemp = Mid(objtemplate, 3, x - 3)          'if the parse name is the same as the stated server then          'change the attached template to the Normal          If strTemp = strServer Then             objDoc.AttachedTemplate = "Normal.dot"             'write to a log file the file name and location             Open "C:\ChangeTemplate.log" For Append As #fNumber             Write #fNumber, "Document: " & objDoc.fullName & _             "Attached template changed to Normal.dot"             Close #fNumber          End If       End If                 'After the template  is changed, the document is saved and closed.                  objDoc.Save      objDoc.Close         Else      'Enter into the log file files that are not opened.      Open "C:\ChangeTemplate.log" For Append As #fNumber      Write #fNumber, "Document:  " & SourceFile & "  not opened! it's       Read Only or Password Protected"      Close #fNumber   End IfEnd SubFunction OpenDocument(ByRef objWord As Object, ByVal sDoc As String) As Boolean'Arguments:' objWord - a valid Word Application object.' sDoc    - the complete path and file name of the document to open in Word.''Opens the document specified by the sDoc variable.'This function returns True if the document is opened and is read/write.'Else, this function returns False if the document cannot be opened'or if the document is opened read-only because of the "read-only recommended" setting 'in the document.'Therefore only if this function returns True if you try  to modify the document.'If False is returned, log the sDoc into a text file and alert the user'of the list of file(s) that could not be processed by the batch routine.    On Error GoTo EH    Dim oDoc As Object    Set oDoc = objWord.Documents.Open( _        FileName:=sDoc, _        ReadOnly:=False, _        PasswordDocument:="?#nonsense@$", _        WritePasswordDocument:="?#nonsense@$")    If oDoc.ReadOnly = True Then        OpenDocument = False    Else        OpenDocument = True    End IfCleanUp:    On Error Resume Next    Set oDoc = Nothing    Exit FunctionEH:    'There was an error opening the file. Return False    OpenDocument = False    Resume CleanUpEnd Function

กลับสู่ด้านบน

วิธีที่ 3: สร้างคำ Microsoft Visual Basic for Applications (VBA) แมโครที่ลูปทั้งหมด โฟลเดอร์เอกสาร และเปลี่ยนชื่อเซิร์ฟเวอร์เก่ากับเซิร์ฟเวอร์ใหม่ ชื่อ

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น โดยไม่มีการรับประกันอย่างใดอย่างหนึ่ง หรือโดยนัย ซึ่งรวมถึง แต่ไม่จำกัดเฉพาะ การรับประกันโดยนัยของสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้อนุมานว่า คุณมีความคุ้นเคย กับภาษาการเขียนโปรแกรมที่จะแสดง และ มีเครื่องมือที่ใช้ใน การสร้าง และ แก้จุดบกพร่องกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทำงานของกระบวนการเฉพาะ อย่างไรก็ตาม พวกเขาจะไม่สามารถปรับเปลี่ยนการตัวอย่างเหล่านี้เพื่อให้มีเพิ่มฟังก์ชันการทำงาน หรือสร้างกระบวนงานเพื่อตอบสนองความต้องการเฉพาะของคุณ

แมโครดังต่อไปนี้ลูปผ่านเอกสารทั้งหมด ในโฟลเดอร์และการเปลี่ยนแปลง ชื่อเซิร์ฟเวอร์เก่ากับเซิร์ฟเวอร์ใหม่ตั้งชื่อสำหรับการ ตำแหน่งที่ตั้งของแม่แบบ แมโครนี้ใช้ได้เฉพาะเมื่อเส้นทางของแม่แบบ จะเหมือนกัน
Sub Test()   Dim strFilePath As String    Dim strPath As String   Dim intCounter As Integer   Dim strFileName As String   Dim OldServer As String   Dim NewServer As String   Dim objDoc As Document   Dim objTemplate As Template   Dim dlgTemplate As Dialog     OldServer = "<\\rsnj01\vol1>"    NewServer = "<\\rsnyc1p\vol3>"    strFilePath = InputBox("What is the folder location that you want to use?")    If Right(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\"    strFileName = Dir(strFilePath & "*.doc")        Do While strFileName <> ""             Set objDoc = Documents.Open(strFilePath & strFileName)             Set objTemplate = objDoc.AttachedTemplate             Set dlgTemplate = Dialogs(wdDialogToolsTemplates)             strPath = dlgTemplate.Template             If LCase(Left(strPath, 13)) = LCase(OldServer) Then                    objDoc.AttachedTemplate = NewServer & Mid(strPath, 14)            End If             strFileName = Dir()             objDoc.Save                           objDoc.Close      Loop     Set objDoc = Nothing   Set objTemplate = Nothing   Set dlgTemplate = Nothing  End Sub

กลับสู่ด้านบน

วิธีที่ 4: สร้างแมโคร VBA ที่ลูปผ่านเอกสารทั้งหมดในโฟลเดอร์ และเปลี่ยนชื่อเซิร์ฟเวอร์เก่ากับแม่แบบส่วนกลาง (Normal.dot)

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น โดยไม่มีการรับประกันอย่างใดอย่างหนึ่ง หรือโดยนัย ซึ่งรวมถึง แต่ไม่จำกัดเฉพาะ การรับประกันโดยนัยของสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้อนุมานว่า คุณมีความคุ้นเคย กับภาษาการเขียนโปรแกรมที่จะแสดง และ มีเครื่องมือที่ใช้ใน การสร้าง และ แก้จุดบกพร่องกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทำงานของกระบวนการเฉพาะ อย่างไรก็ตาม พวกเขาจะไม่สามารถปรับเปลี่ยนการตัวอย่างเหล่านี้เพื่อให้มีเพิ่มฟังก์ชันการทำงาน หรือสร้างกระบวนงานเพื่อตอบสนองความต้องการเฉพาะของคุณ

แมโครดังต่อไปนี้ลูปทั้งหมด โฟลเดอร์เอกสาร และเปลี่ยนชื่อเซิร์ฟเวอร์เก่ากับแม่แบบส่วนกลาง (Normal.dot)

หมายเหตุ ถ้าเอกสารมีรหัสผ่านป้องกันใน ต้นแบบจะ ไม่สามารถเปลี่ยนแปลง และรหัสจะล้มเหลว
Sub Test()     Dim strFilePath As String    Dim strPath As String    Dim intCounter As Integer    Dim strFileName As String    Dim OldServer As String    Dim objDoc As Document    Dim objTemplate As Template    Dim dlgTemplate As Dialog    Dim nServer As Integer     'hardcode the name of the old server.     OldServer = "{enter the name of the Old Server}"    nServer = Len(OldServer)    strFilePath = InputBox("What is the folder location that you want to use?")     If Right(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\"     strFileName = Dir(strFilePath & "*.doc")     Do While strFileName <> ""     Set objDoc = Documents.Open(strFilePath & strFileName)     Set objTemplate = objDoc.AttachedTemplate     Set dlgTemplate = Dialogs(wdDialogToolsTemplates)     strPath = dlgTemplate.Template         If LCase(Left(strPath, nServer)) = LCase(OldServer) Then     objDoc.AttachedTemplate = NormalTemplate    End If     strFileName = Dir()    objDoc.Save    objDoc.Close    Loop     Set objDoc = Nothing    Set objTemplate = Nothing    Set dlgTemplate = Nothing End Sub


กลับไป ด้านบน

วิธีที่ 5: เปลี่ยนชื่อเซิร์ฟเวอร์ ใช้ร่วมกัน หรือโฟลเดอร์ที่เป็นชื่อเดิม

ถ้าเซิร์ฟเวอร์ ใช้ร่วมกัน หรือโฟลเดอร์ที่ประกอบด้วยแม่แบบถูกย้าย หรือเปลี่ยนชื่อ เปลี่ยนชื่อเซิร์ฟเวอร์ ใช้ร่วมกัน หรือโฟลเดอร์กลับไปเป็นชื่อเดิม

ถ้าเซิร์ฟเวอร์เก่าไม่มีอยู่อีกต่อไป คุณสามารถสร้างรายการ DNS มี servername เก่า เมื่อคุณมีรายการ DNS servername เดิม คุณสามารถสร้างโครงสร้างของโฟลเดอร์เดียวกันตามที่แสดงรายการในเส้นทางของแม่แบบ และคัดลอกแม่แบบไปยังโฟลเดอร์นั้นกลับไป ด้านบน
สถานะ
Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่ระบุไว้ในส่วน "นำไปใช้งาน"
แม่แบบที่แนบมาช้าเปิดแมโคร

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 830561 - การตรวจสอบครั้งสุดท้าย: 12/08/2015 05:08:06 - ฉบับแก้ไข: 1.0

Microsoft Word 2002 Standard Edition

  • kbnosurvey kbarchive kbperformance kbtshoot kbprb kbmt KB830561 KbMtth
คำติชม