Tự chép đè lên tập tin Normal.dot của Word

Liên hệ QC

nhattan67

Thành viên mới
Tham gia
11/1/08
Bài viết
35
Được thích
3
Mình tạo một tiện ích Word có tên Normal.dot. Vậy mong các sư huynh chỉ giúp có chương trình tạo bộ cài đặt hay cách làm nào để khi đem tập tin của em đi chép sang máy khác. Thì tập tin của em sẽ tự động chép đè lên tập tin Normal.dot hiện hành của máy đó.
Nhật Tân
Có thể bị lạc đề ở diễn đàn này nhưng rất mong mọi người chỉ giúp.
Cám ơn các sư huynh
 
Tôi chưa làm macro cho Word bao giờ nhưng tôi nghĩ quy trình sẽ như sau:
1> Tôi sẽ record macro quá trình Save As file Word thành 1 file .dot ở 1 thư mục nào đó
2> Tôi sẽ mở code lên xem và chỉnh sửa đôi chút về tên file cùng đường dẩn
3> Cuối cùng tôi sẽ đặt code trong sự kiện Document_Open()
Vậy đương nhiên khi file này dc mở lên nó sẽ tự động Save As thành Normat.dot tại thư mục bạn chỉ định trong code
Hy vọng hướng đi này là đúng!
Mến
ANH TUẤN
 
Tôi chưa làm macro cho Word bao giờ nhưng tôi nghĩ quy trình sẽ như sau:
1> Tôi sẽ record macro quá trình Save As file Word thành 1 file .dot ở 1 thư mục nào đó
2> Tôi sẽ mở code lên xem và chỉnh sửa đôi chút về tên file cùng đường dẩn
3> Cuối cùng tôi sẽ đặt code trong sự kiện Document_Open()
Vậy đương nhiên khi file này dc mở lên nó sẽ tự động Save As thành Normat.dot tại thư mục bạn chỉ định trong code
Hy vọng hướng đi này là đúng!
Mến
ANH TUẤN
Em nghĩ là không được đâu anh à. Vì khi Word khởi động thì File Normal.dot sẽ được khởi động theo. Thế nên file này đã được mở trước bất kỳ file Word nào và anh không thể Save as hay Copy file đè lên 1 File (Normal.dot) đang mở được. Em nghĩ : Có thể mở 1 file Excel để làm công việc chép đè lên file Normal.dot hoặc Viết code trên 1 file word để khi mở file này ra thì nó tự động Import Module cần dùng vào File Normal.dot

Trong Excel có thể chuyển 1 file đang mở sang trạng thái ReadOnly rồi có thể xoá nó nhưng trong Word thì em hỏng biết có được không ???

Em nghĩ hướng là vậy, hi hi
TDN
 
Uh... tôi vừa thử xong! Đúng là nó ko cho chép đè lên Normal.dot thật... Vậy nếu tôi lưu thành tên khác thì có thể lấy nó làm mẩu dc ko?
ANH TUẤN
 
Vậy có xóa nó đi được không vậy AnhTuan1066; Trước đây mình nhớ xóa nó được mà, một khi bị virus tấn công!
Xóa tất nhiên là dc anh Sa ơi.. nhưng với điều kiện Word đang đóng... Còn yêu cầu của tác giã thì ngược lại... muốn thay Normat.dot khi đang mở Word
ANH TUẤN
 
Uh... tôi vừa thử xong! Đúng là nó ko cho chép đè lên Normal.dot thật... Vậy nếu tôi lưu thành tên khác thì có thể lấy nó làm mẩu dc ko?
ANH TUẤN
Vậy có xóa nó đi được không vậy AnhTuan1066; Trước đây mình nhớ xóa nó được mà, một khi bị virus tấn công!
Dạ em nghĩ không thể xoá được file Normal.dot khi Word đang mở đâu nhưng các anh có thể dùng cách này xem có được không : trong Word đóng tập tin Normal.dot rồi lúc đó mới Save As tập tin mẫu đè lên Normal.dot hoặc copy đè lên Normal.dot

TDN
 
To NhatTan: Điều này có thể làm được, bạn tạo một temp mẫu sau đó lưu lại tên file.dot, sau đó bạn vào đường dẫn C:\Documents and Settings\Hai Vui Family\Application Data\Microsoft\Templates bạn thấy có file Normal.dot không? Hãy xóa file đó và copy file.dot khi nãy vừa lưu bỏ vào trong Temp sau đó rename lại thành Normal.dot, kể từ lần khởi động sau Word sẽ load file Normal.dot của bạn để làm mẫu. Làm tương tự cho máy khác cũng vậy. NHớ để ý 2 dòng chữ màu đỏ phía trên nha.
 
To NhatTan: Điều này có thể làm được, bạn tạo một temp mẫu sau đó lưu lại tên file.dot, sau đó bạn vào đường dẫn C:\Documents and Settings\Hai Vui Family\Application Data\Microsoft\Templates bạn thấy có file Normal.dot không? Hãy xóa file đó và copy file.dot khi nãy vừa lưu bỏ vào trong Temp sau đó rename lại thành Normal.dot, kể từ lần khởi động sau Word sẽ load file Normal.dot của bạn để làm mẫu. Làm tương tự cho máy khác cũng vậy. NHớ để ý 2 dòng chữ màu đỏ phía trên nha.
Cái này ko đúng yêu cầu... Tôi biết chắc tác giã muốn rằng khi người dùng mở file của mình lên thì sẽ làm cách nào đó để lấy Templates theo file của mình... Chứ làm bằng tay thế người dùng sao mà biết!
ANH TUẤN
 
Thứ 1: Tác giả chỉ muốn đè lên tập tin Normal.dot của một máy nào đó chứ không yêu cầu khi mở chương trình của tác giả lên thì tập tin Normal.dot mới bị chép đè và ngược lại (cái này em pó tay)
Thứ 2: Khi tác giả đặt câu hỏi này em nghĩ làm sao để vào một thư mục nào đó điều đó ko làm khó được 'Tác giả'.
Có gì không phải anh em bỏ qua nhá.
 
Các bạn muốn lưu giữ lại các macro hay các modul của mình với tên mình thì chọn như sau:
Bật chương trình W đang mở chọn tools/Options/filelocations chép cho phai ***.dot vào đó sau đó khởi động lại W là xong
 
Vậy các bạn thử code sau xem có gì không ổn không.
PHP:
Private Sub Document_Open()
If UCase(Options.DefaultFilePath(Path:=wdUserTemplatesPath)) = UCase(ActiveDocument.Path) Then Exit Sub
Options.DefaultFilePath(Path:=wdUserTemplatesPath) = ActiveDocument.Path
Application.Quit (False)
End Sub
Bạn tạo sẵn 1 file Normal.dot để cùng thư với file Word của bạn. Bây giờ bạn mở File Word lên và test thử xem thế nào nhé

DTN
 
Ah... mà nếu muốn tạo 1 bộ Setup tại sao ta ko dùng các chương trình tạo file Setup chuyên dùng nhỉ? Gói nó lại thành .EXE rồi click cái là dc...
Thậm chí tôi nghĩ dùng file .bat kết hợp với WinRAR có thể giãi quyết vấn đề này 1 cách đơn giãn đấy...
ANH TUẤN
 
Bạn thử dùng lệnh Copyfile xem.
 
Code trong Word thì mình không biết nhưng viết thành file *.bat thì cũng có thể giải quyết được phần nào tình huống này. Bạn mở Notepad.exe ra viết cho đầy đủ code sau:
Mã:
[B]Copy[/B] [COLOR=green]"\[/COLOR][COLOR=blue]Normal.dot[/COLOR][COLOR=green]" "[/COLOR][COLOR=blue]%USERPROFILE%\Application Data\Microsoft\Templates\Normal.dot[/COLOR][COLOR=green]" [/COLOR][COLOR=red]/y[/COLOR] [B]Start[/B] [COLOR=green]"\"[/COLOR] [B]Exit[/B]
Sau đó lưu lại với tên là mofile.bat. /y : Đó là lệnh không cần hỏi lại nếu chép đè lên file đã có rồi. Vậy mỗi khi muốn chạy file nào thì cứ nhấp đúp vào file mofile.bat này thì được rồi. Mà sao bạn không lưu code luôn trên file *.doc đó luôn mà lại lưu lên Normal.dot vậy? Lưu lên file rồi thì cần gì file Normal.dot nữa. Vậy có phải tiện hơn không?
 
Lần chỉnh sửa cuối:
Mà sao bạn không lưu code luôn trên file *.doc đó luôn mà lại lưu lên Normal.dot vậy?
Lưu lên file rồi thì cần gì file Normal.dot nữa. Vậy có phải tiện hơn không?
Khác nhau chứ bạn... bạn ấy nói đây là "TIỆN ÍCH" mà... đương nhiên muốn người dùng chạy 1 lần và xài mãi mãi... gần giống như trong Excel mình tạo Add-in hoặc file trong XLSTART vậy ấy!
ANH TUẤN
 
phần mềm này tìm ở đâu

Ah... mà nếu muốn tạo 1 bộ Setup tại sao ta ko dùng các chương trình tạo file Setup chuyên dùng nhỉ? Gói nó lại thành .EXE rồi click cái là dc...
Thậm chí tôi nghĩ dùng file .bat kết hợp với WinRAR có thể giãi quyết vấn đề này 1 cách đơn giãn đấy...
ANH TUẤN
chương trình tạo file Setup chuyên dùng Tìm ở đâu thế nhỉ cho anh em đường link đi
 
Code trong Word thì mình không biết nhưng viết thành file *.bat thì cũng có thể giải quyết được phần nào tình huống này.
Bạn mở Notepad.exe ra viết cho đầy đủ code sau:
Mã:
[B]Copy[/B] [COLOR=green]"<[/COLOR][COLOR=blue]Đường dẫn nơi để file Normal.dot [/COLOR][COLOR=green][COLOR=blue]muốn đưa vào[/COLOR]>\[/COLOR][COLOR=blue]Normal.dot[/COLOR][COLOR=green]" "[/COLOR][COLOR=blue]%USERPROFILE%\Application Data\Microsoft\Templates\Normal.dot[/COLOR][COLOR=green]" [/COLOR][COLOR=red]/y[/COLOR]
[B]Start[/B] [COLOR=green]"<[/COLOR][COLOR=blue]Đường dẫn file *.doc muốn mở[/COLOR][COLOR=green]>\<[/COLOR][COLOR=blue]File gì đó.doc[/COLOR][COLOR=green]>"[/COLOR]
[B]Exit[/B]
Sau đó lưu lại với tên là mofile.bat.
/y : Đó là lệnh không cần hỏi lại nếu chép đè lên file đã có rồi.
Vậy mỗi khi muốn chạy file nào thì cứ nhấp đúp vào file mofile.bat này thì được rồi.
Bác à muốn cóp file cùng cấp thì làm thế nào:
Ví dụ em có file ***.doc và ở một thư mục nào đó. Sau đó trên có file**.bat cùng thư mục em muốn cop thì phải làm thế nào?
 
Web KT
Back
Top Bottom