CCR
1
问题来源
MS Office自动保存到OneDrive的功能过于狗屎,不能自动保存到本地(我知道有自动恢复的功能,但不能指望它……),也没什么办法自动保存文件,不像VSCode或是Notepad4那样可以在空闲时间自动保存之类的功能
所以,有没有什么办法能自动保存Office文件呢
想要实现的效果
- 关闭时自动保存文档
- 空闲时自动保存文档
- 新建文件关闭时自动另存到指定位置作为备份(后缀加时间防文件冲突)
- 在指定时间保存文档(如,每5分钟保存一次)
可能的实现思路
- 通过后台程序实现
- 思路
- 程序识别到Office软件
- 后台循环计时,到时间自动发送
Ctrl + S
- 后台检测键鼠活动,无活动时隔一段时间发送
Ctrl + S
- 关闭时检测弹窗,是否保存自动选是,另存为自动选择地点并点击保存
- 难点
- 在非管理员权限下难以取到Office程序的操作句柄
- 如果我就是不想保存修改的文档呢?
- 如何去掉弹窗,实现无感保存
- 程序通过按键的方式保存是否会导致输入中断
- Office文件修改后没保存就手动最小化了,如何在此情况下自动保存
- ……
- 通过VBA实现(我不会……此处或许应该邀请一下小恐龙大佬?)
- 其他思路
求问各位有没有什么更好的思路或者现成的软件
如果没有我可能会手搓一个简易版的试试水……
CCR
3
只喜欢本地保存……上传到云才能自动保存在我看来是不可接受的……
1 个赞
1 vba 代码, 写 ActiveDocument.Close 事件 或者 auto_saves 事件
2. 可以类比4操作.
3. word选项, 开启备份功能,加.bak后缀.
4. word选项 , 设置自动保存间隔时间即可.
office365, 文档存放在OneDrive, 会自动保存,不用考虑1-4问题.
2 个赞
CCR
8
贡献一个适用于LibreOffice的VBA
Sub TestSave()
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
Dim oDoc As Object
oDoc = ThisComponent
Do
oDoc.store()
Wait 20000
Loop
End Sub
即点即用的是,LibreOffice里面点“工具-宏-编辑宏”,编辑好了保存。然后在你想要运行脚本的Office文件里点击“工具-宏-运行宏-找到你编写的脚本-运行”即可
1 个赞