[CDR 2017-2021] Имя файла из буфера обмена.

tohaa

Участник
Топикстартер
Сообщения
229
Реакции
8
Добрый день.
Подскажите код, который:
1. читает содержимое буфера обмена.
2. сохраняет файл "имя в буфере".cdr
3. В случае, если объект в буфере не текстовый - выводит окошко с ошибкой.
 

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

сохраняет файл с текущим именем в пониженной версии.

А мне очень нужно чтобы имя файла заменялось на имя находящееся в буфере. Пусть даже без проверки текст в буфере или нет.
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 131
Реакции
2 027
ну да, что-то типа по мотивам SaveAsOldVersion
Код:
Sub NNN()
Dim str As String, p As Shape
Dim Path As String
Dim SaveOptions As StructSaveAsOptions

Path = ActiveDocument.FilePath

Set p = ActiveLayer.Paste

If p.Type = cdrTextShape Then
str = p.Text.Story
MsgBox str

Set SaveOptions = CreateStructSaveAsOptions
With SaveOptions
  .EmbedVBAProject = False
  .Filter = cdrCDR
  .IncludeCMXData = False
  .KeepAppearance = False
  .Overwrite = True
  .Range = cdrAllPages
  .EmbedICCProfile = False
End With
p.Delete
If ActiveDocument.Dirty Then ActiveDocument.SaveAs Path + str, SaveOptions
Else
MsgBox "O! Eah! It`s non Text!"
End If
End Sub
 
Последнее редактирование:
  • Спасибо
Реакции: tohaa и eugeny

tohaa

Участник
Топикстартер
Сообщения
229
Реакции
8
Отлично. Всё работает как надо. Спасибо !
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 131
Реакции
2 027
Остался один вопрос:
- Что случится, если в буфере, возможно случайно, окажется нечто вот такое?
— Едет! — закричал в это время махальный.
Полковой командир, покраснев, подбежал к лошади, дрожащими руками взялся за стремя, перекинул тело, оправился, вынул шпагу и с счастливым, решительным лицом, набок раскрыв рот, приготовился крикнуть. Полк встрепенулся, как оправляющаяся птица, и замер.
— Смир-р-р-на! — закричал полковой командир потрясающим душу голосом, радостным для себя, строгим в отношении к полку и приветливым в отношении к подъезжающему начальнику.
По широкой, обсаженной деревьями, большой, бесшоссейной дороге, слегка погромыхивая рессорами, шибкою рысью ехала высокая голубая венская коляска цугом. За коляской скакали свита и конвой кроатов. Подле Кутузова сидел австрийский генерал в странном, среди черных русских, белом мундире. Коляска остановилась у полка. Кутузов и австрийский генерал о чем-то тихо говорили, и Кутузов слегка улыбнулся, в то время как, тяжело ступая, он опускал ногу с подножки, точно как будто и не было этих 2000 людей, которые не дыша смотрели на него и на полкового командира.
Раздался крик команды, опять полк звеня дрогнул, сделав на караул. В мертвой тишине послышался слабый голос главнокомандующего. Полк рявкнул: «Здравья желаем, ваше го-го-го-го-ство!» И опять всё замерло. Сначала Кутузов стоял на одном месте, пока полк двигался; потом Кутузов рядом с белым генералом, пешком, сопутствуемый свитою, стал ходить по рядам.
По тому, как полковой командир салютовал главнокомандующему, впиваясь в него глазами, вытягиваясь и подбираясь, как наклоненный вперед ходил за генералами по рядам, едва удерживая подрагивающее движение, как подскакивал при каждом слове и движении главнокомандующего, — видно было, что он исполнял свои обязанности подчиненного еще с бòльшим наслаждением, чем обязанности начальника. Полк, благодаря строгости и старательности полкового командира, был в прекрасном состоянии сравнительно с другими, приходившими в то же время к Браунау. Отсталых и больных было только 217 человек. И всё было исправно, кроме обуви.
Кутузов прошел по рядам, изредка останавливаясь и говоря по нескольку ласковых слов офицерам, которых он знал по турецкой войне, а иногда и солдатам. Поглядывая на обувь, он несколько раз грустно покачивал головой и указывал на нее австрийскому генералу с таким выражением, что как бы не упрекал в этом никого, но не мог не видеть, как это плохо. Полковой командир каждый раз при этом забегал вперед, боясь упустить слово главнокомандующего касательно полка. Сзади Кутузова, в таком расстоянии, что всякое слабо произнесенное слово могло быть услышано, шло человек 20 свиты.
Господа свиты разговаривали между собой и иногда смеялись. Ближе всех за главнокомандующим шел красивый адъютант. Это был князь Болконский. Рядом с ним шел его товарищ Несвицкий, высокий штаб-офицер, чрезвычайно толстый, с добрым, улыбающимся красивым лицом и влажными глазами. Несвицкий едва удерживался от смеха, возбуждаемого черноватым гусарским офицером, шедшим подле него. Гусарский офицер, не улыбаясь, не изменяя выражения остановившихся глаз, с серьезным лицом смотрел на спину полкового командира и передразнивал каждое его движение. Каждый раз, как полковой командир вздрагивал и нагибался вперед, точно так же, точь-в-точь так же, вздрагивал и нагибался вперед гусарский офицер. Несвицкий смеялся и толкал других, чтобы они смотрели на забавника.
Кутузов шел медленно и вяло мимо тысяч глаз, которые выкатывались из своих орбит, следя за начальником. Поровнявшись с 3-ю ротой, он вдруг остановился. Свита, не предвидя этой остановки, невольно надвинулась на него.
— А, Тимохин! — сказал главнокомандующий, узнавая капитана с красным носом, пострадавшего за синюю шинель.
Казалось, нельзя было вытягиваться больше того, как вытягивался Тимохин, в то время как полковой командир делал ему замечание. Но в эту минуту обращения к нему главнокомандующего капитан вытянулся так, что, казалось, посмотри на него главнокомандующий еще несколько времени, капитан не выдержал бы; и потому Кутузов, видимо поняв его положение и желая, напротив, всякого добра капитану, поспешно отвернулся. По пухлому, изуродованному раной лицу Кутузова пробежала чуть заметная улыбка.
 

tohaa

Участник
Топикстартер
Сообщения
229
Реакции
8
Остался один вопрос:
- Что случится, если в буфере, возможно случайно, окажется нечто вот такое?
— Едет! — закричал в это время махальный.
Полковой командир, покраснев, подбежал к лошади, дрожащими руками взялся за стремя, перекинул тело, оправился, вынул шпагу и с счастливым, решительным лицом, набок раскрыв рот, приготовился крикнуть. Полк встрепенулся, как оправляющаяся птица, и замер.
— Смир-р-р-на! — закричал полковой командир потрясающим душу голосом, радостным для себя, строгим в отношении к полку и приветливым в отношении к подъезжающему начальнику.
По широкой, обсаженной деревьями, большой, бесшоссейной дороге, слегка погромыхивая рессорами, шибкою рысью ехала высокая голубая венская коляска цугом. За коляской скакали свита и конвой кроатов. Подле Кутузова сидел австрийский генерал в странном, среди черных русских, белом мундире. Коляска остановилась у полка. Кутузов и австрийский генерал о чем-то тихо говорили, и Кутузов слегка улыбнулся, в то время как, тяжело ступая, он опускал ногу с подножки, точно как будто и не было этих 2000 людей, которые не дыша смотрели на него и на полкового командира.
Раздался крик команды, опять полк звеня дрогнул, сделав на караул. В мертвой тишине послышался слабый голос главнокомандующего. Полк рявкнул: «Здравья желаем, ваше го-го-го-го-ство!» И опять всё замерло. Сначала Кутузов стоял на одном месте, пока полк двигался; потом Кутузов рядом с белым генералом, пешком, сопутствуемый свитою, стал ходить по рядам.
По тому, как полковой командир салютовал главнокомандующему, впиваясь в него глазами, вытягиваясь и подбираясь, как наклоненный вперед ходил за генералами по рядам, едва удерживая подрагивающее движение, как подскакивал при каждом слове и движении главнокомандующего, — видно было, что он исполнял свои обязанности подчиненного еще с бòльшим наслаждением, чем обязанности начальника. Полк, благодаря строгости и старательности полкового командира, был в прекрасном состоянии сравнительно с другими, приходившими в то же время к Браунау. Отсталых и больных было только 217 человек. И всё было исправно, кроме обуви.
Кутузов прошел по рядам, изредка останавливаясь и говоря по нескольку ласковых слов офицерам, которых он знал по турецкой войне, а иногда и солдатам. Поглядывая на обувь, он несколько раз грустно покачивал головой и указывал на нее австрийскому генералу с таким выражением, что как бы не упрекал в этом никого, но не мог не видеть, как это плохо. Полковой командир каждый раз при этом забегал вперед, боясь упустить слово главнокомандующего касательно полка. Сзади Кутузова, в таком расстоянии, что всякое слабо произнесенное слово могло быть услышано, шло человек 20 свиты.
Господа свиты разговаривали между собой и иногда смеялись. Ближе всех за главнокомандующим шел красивый адъютант. Это был князь Болконский. Рядом с ним шел его товарищ Несвицкий, высокий штаб-офицер, чрезвычайно толстый, с добрым, улыбающимся красивым лицом и влажными глазами. Несвицкий едва удерживался от смеха, возбуждаемого черноватым гусарским офицером, шедшим подле него. Гусарский офицер, не улыбаясь, не изменяя выражения остановившихся глаз, с серьезным лицом смотрел на спину полкового командира и передразнивал каждое его движение. Каждый раз, как полковой командир вздрагивал и нагибался вперед, точно так же, точь-в-точь так же, вздрагивал и нагибался вперед гусарский офицер. Несвицкий смеялся и толкал других, чтобы они смотрели на забавника.
Кутузов шел медленно и вяло мимо тысяч глаз, которые выкатывались из своих орбит, следя за начальником. Поровнявшись с 3-ю ротой, он вдруг остановился. Свита, не предвидя этой остановки, невольно надвинулась на него.
— А, Тимохин! — сказал главнокомандующий, узнавая капитана с красным носом, пострадавшего за синюю шинель.
Казалось, нельзя было вытягиваться больше того, как вытягивался Тимохин, в то время как полковой командир делал ему замечание. Но в эту минуту обращения к нему главнокомандующего капитан вытянулся так, что, казалось, посмотри на него главнокомандующий еще несколько времени, капитан не выдержал бы; и потому Кутузов, видимо поняв его положение и желая, напротив, всякого добра капитану, поспешно отвернулся. По пухлому, изуродованному раной лицу Кутузова пробежала чуть заметная улыбка.
Ошибка - Недопустимое имя файла. Так что всё нормально.
119584
 
  • Спасибо
Реакции: dastin

Акулыч

Участник
Сообщения
29
Реакции
10
часть кода от Set SaveOptions до End With, по идее, надо разместить после условия If ActiveDocument.Dirty
но перед ActiveDocument.SaveAs. Иначе, если документ - не "грязный" и не будет сохранения файла, то какой смысл заполнять структуру SaveOptions ?