[CDR 2017-2021] Версия при сохранении

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 201
Реакции
10 848
нет, файл готовый и пересохраненный уже не один раз
Значит от версии
Окно выскакивает в том случае, если файла с таким именем и путем на диске нет. Что в окне кстати? Она ж по идее путь и имя должна показывать, куда сохраняет?
 

Андерсон

Участник
Топикстартер
Сообщения
36
Реакции
0
Значит от версии
Окно выскакивает в том случае, если файла с таким именем и путем на диске нет. Что в окне кстати? Она ж по идее путь и имя должна показывать, куда сохраняет?
открывает окно сразу на файл исходник (как по умолчанию при выборе SaveAs вручную).

Я тоже думаю - от версий зависит.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 201
Реакции
10 848
открывает окно сразу на файл исходник (как по умолчанию при выборе SaveAs вручную).
А попробуйте все таки записать сохранение файла в макрос - как у вас будет выглядеть?
И будет ли окно сохранения выкидывать при проигрывании записанного или нет?
 

Элвин

Участник
Сообщения
40
Реакции
31
Себе, пока тестировал 18-й (так на него и не перешёл), накидывал макрос, вешал на него ctrl+s, всё работало. Но вообще-то там внутри почти один-в-один то же самое, что и в примере тов. MBK, так что не знаю, чем поможет. Отличие только, по сути, в проверке, а надо ли сохранять, так как у меня привычка судорожно жать ctrl+S после любого движения :)
SaveAsOld.gms

Код:
Option Explicit

Sub start()

Dim Path$, Name$
Dim SaveOptions As StructSaveAsOptions

Path = ActiveDocument.FilePath
Name = ActiveDocument.FileName

Set SaveOptions = CreateStructSaveAsOptions
With SaveOptions
  .EmbedVBAProject = False
  .Filter = cdrCDR
  .IncludeCMXData = False
  .KeepAppearance = False
  .Overwrite = True
  .Range = cdrAllPages
  .EmbedICCProfile = False
  .Version = cdrVersion16
End With

If ActiveDocument.Dirty Then ActiveDocument.SaveAs Path + Name, SaveOptions

End Sub
 
  • Спасибо
Реакции: _MBK_ и dastin

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 201
Реакции
10 848
  • Спасибо
Реакции: Элвин

tohaa

Участник
Сообщения
229
Реакции
8
Вот это хорошо работает.
Код:
Sub save13()
Optimization = True
    EventsEnabled = False
Dim Path As String
    Dim Name As String
    Path = ActiveDocument.FilePath
    Name = ActiveDocument.FileName
    Dim SaveOptions As StructSaveAsOptions
    Set SaveOptions = CreateStructSaveAsOptions
    With SaveOptions
        .EmbedVBAProject = True
        .Filter = cdrCDR
        .IncludeCMXData = False
        .Range = cdrAllPages
        .EmbedICCProfile = False
        .Version = cdrVersion13
        .KeepAppearance = True
      End With
    ActiveDocument.SaveAs Path + "" + Name, SaveOptions
EventsEnabled = True
    Optimization = False
    ActiveWindow.Refresh
    Application.Refresh
End Sub
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 201
Реакции
10 848

tohaa

Участник
Сообщения
229
Реакции
8
12 же

Это еще зачем?
чтоб я помнил. артефакт.

Когда-то давно подгонял макрос так, чтобы если файл новый - запускалось окно сохранить как. если уже сохраненный - понижалась версия и файл перезаписывался.
 

lev

Модератор
20 лет на форуме
Сообщения
2 145
Реакции
2 071

tohaa

Участник
Сообщения
229
Реакции
8
У меня появился вопрос по теме сохранения. Как сделать проверку, что файл не открыт на другом компе в сети? Сейчас при попытке сохранения макросом открытого где-то еще файла нет никакой индикации. Мало того, эта попытка приводит к крашу корела. Можно ли как-то встроить проверку в макрос?
 

Элвин

Участник
Сообщения
40
Реакции
31
У меня появился вопрос по теме сохранения. Как сделать проверку, что файл не открыт на другом компе в сети?
Вот тут предлагается готовая функция, проверил, открыв кореловский файл локально - работает. По сети по идее тоже должна.
 
  • Спасибо
Реакции: dastin и tohaa