2008-10-24 21 views
15

Tôi đã có một dự án VBA trong triển vọng với một vài macro email - nhưng sau khi một vụ tai nạn máy tính tất cả đã biến mất và tất cả những gì tôi thấy là một 'Project1' mới khi tôi nhấn Alt + F11Outlook lưu trữ các tệp mã VBA ở đâu?

Tôi không phải là VBA lập trình viên, nhưng có một bộ sưu tập các macro tiện dụng để sắp xếp email, v.v. Tôi không muốn phải mã hóa chúng một lần nữa. Bất cứ ai biết nơi các tập tin mã nên được trên hệ thống tập tin để tôi có thể giải mã?

Trả lời

21

This page có một số thông tin chi tiết thực sự tốt về nơi Outlook giữ tất cả nội dung của nó. Nó gợi ý những điều sau đây:

Tất cả macro Outlook được lưu trữ trong một tệp có tên VbaProject.otm trong thư mục% appdata% \ Microsoft \ Outlook của người dùng, đây sẽ là thư mục ẩn trên hầu hết các hệ thống.

Bây giờ, vấn đề là nếu bạn không nhìn thấy chúng ngay bây giờ, có thể bạn sẽ không thể khôi phục chúng từ vị trí đó: có thể là dự án "trống" ở đó hoặc không có dự án nào , nhưng nếu thư mục đó đang được sao lưu, bạn có thể khôi phục thư mục đó.

Tiếp tục, bạn có thể xem xét xuất macro theo định kỳ trong trường hợp điều này xảy ra lần nữa, thông qua IDE VBA (nhấp chuột phải và chọn Xuất tệp ...) hoặc sử dụng một trong các công cụ được đề cập trong bài viết được liên kết (như số Office Profile Wizard).

+0

Các tập tin VBA là có, và nhìn bên trong nó với một trình soạn thảo văn bản cho thấy các mảnh vỡ của các macro của tôi, nhưng nó cũng là đầy đủ của null và sohs - đó là một định dạng nhị phân khó chịu bởi giao diện của nó. Nó chắc hẳn đã bị bán ở một thời điểm nào đó, mã của tôi bị hóa thạch ở đó và tôi không thể lấy nó ra. –

+4

Nó có nghĩa là một nhị phân. Tôi vừa thay thế tệp mà tôi đã tìm thấy với tệp từ bản sao lưu của mình và mã đã được hiển thị thông qua Trình chỉnh sửa macro của Outlook. – TomG

3

Ok. những điều cần cố gắng khắc phục sự cố này ...

Tôi giả sử sau khi sự cố xảy ra, bạn đã thử đăng nhập lại vào cùng một tài khoản người dùng cửa sổ và cùng cấu hình Outlook.

  1. Tạo thông tin đăng nhập cửa sổ mới cho máy được đề cập.
  2. Đăng nhập vào tài khoản này và mở Outlook, thao tác này sẽ tạo hồ sơ triển vọng mới. lưu ý tên hồ sơ (để tìm điều này: Bảng điều khiển> Ứng dụng thư> Hiển thị Hồ sơ ...)
  3. Bây giờ Thoát Outlook và đảm bảo nó không chạy (hãy kiểm tra outlook.exe trong trình quản lý tác vụ).
  4. Mở Windows Explorer.
  5. Sao chép (không cắt) tệp VbaProject.OTM hiện có. (nếu nó có bất kỳ tên nào khác, hãy đổi tên nó thành VbaProject.OTM, sau đó sao chép).
  6. Navigate to C: \ Documents and Settings \ USERNAME \ Application Data \ Microsoft \ Outlook (hoặc sử dụng môi trường ký hiệu biến% appdata% \ Microsoft \ Outlook cho vista/win7)
  7. Đổi tên VbaProject.OTM hiện có để VbaProject.OTM.OLD
  8. Dán VbaProject.OTM từ bước 5 vào thư mục này.
  9. Mở lại Outlook và kiểm tra (tức là Alt + F11).
  10. Chúc may mắn với sự phục hồi.

Nếu điều này không hoạt động, bạn có nhớ thêm chứng chỉ tự ký không? Nếu vậy bạn có bản sao chứng nhận không? bạn có thể thử cài đặt lại nó vào trình quản lý chứng chỉ (certmgr.msc) sao chép/cài đặt nó vào Certficiates - Current User \ Personal \ Certificates hive.

Tôi vừa tìm thấy ghi chú này từ Sue Mosher (triển vọng VBA guru): "AFAIK, khi tệp .otm bị hỏng, không thể khôi phục được.Đó là lý do tại sao tôi khuyên những người dựa vào mã VBA xuất các mô đun của họ hoặc sao lưu toàn bộ tệp. "

-1

Chạy vào cùng một vấn đề này. Không có câu trả lời nào" giúp tôi ", vì vậy tôi đã tự đào tạo. Tôi đã tìm thấy tệp .OTM mà cả @Anonymous Type và @Dave DuPlantis đã đề cập. bị hỏng, thậm chí không chắc chắn làm thế nào người ta có thể xác định rằng tập tin của bạn đã bị hỏng từ câu hỏi rất mơ hồ của bạn ... Dù bằng cách nào, đây là giải pháp của tôi. nên giải quyết vấn đề của bạn đơn giản, không chắc chắn lý do tại sao hoặc nó tự động biến mất như thế nào, đó là một câu đố hoàn toàn mới ...

2

Tất cả các macro được nhúng vào tệp OTM, theo vị trí sau:

C:\Users\(***Your User Name***)\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM 

Để khôi phục, thay thế tập tin này với đứa lớn chỉ, cần làm việc