Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/макрос сохранения файла с другим расширением (pdf) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
макрос сохранения файла с другим расширением (pdf)
карандаш Дата: Вторник, 07.07.2015, 08:10 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Здравствуйте
Хотел создать макрос (автоматический) для сохранения копии файла в формате PDF
Но в автоматическом макросе прописывается явно имя файла и путь сохранения
Как заменить только расширение в имени файла, а путь и имя оставить те, которые есть?

Есть макрос для Excel на этом сайте. А нужен для Word (2010, если это имеет значение)

спасибо


Сообщение отредактировал карандаш - Вторник, 07.07.2015, 08:12
 
Ответить
СообщениеЗдравствуйте
Хотел создать макрос (автоматический) для сохранения копии файла в формате PDF
Но в автоматическом макросе прописывается явно имя файла и путь сохранения
Как заменить только расширение в имени файла, а путь и имя оставить те, которые есть?

Есть макрос для Excel на этом сайте. А нужен для Word (2010, если это имеет значение)

спасибо

Автор - карандаш
Дата добавления - 07.07.2015 в 08:10
KSV Дата: Вторник, 07.07.2015, 09:53 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
[vba]
Код
Sub SaveDocumentAsPDF()
      Dim i&, f$
      f = ThisDocument.FullName
      i = InStrRev(f, ".")
      If i Then f = Left$(f, i - 1)
      ThisDocument.SaveAs f & ".pdf", wdFormatPDF
End Sub
[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Вторник, 07.07.2015, 09:54
 
Ответить
СообщениеДобрый день!
[vba]
Код
Sub SaveDocumentAsPDF()
      Dim i&, f$
      f = ThisDocument.FullName
      i = InStrRev(f, ".")
      If i Then f = Left$(f, i - 1)
      ThisDocument.SaveAs f & ".pdf", wdFormatPDF
End Sub
[/vba]

Автор - KSV
Дата добавления - 07.07.2015 в 09:53
_Boroda_ Дата: Вторник, 07.07.2015, 10:04 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Еще похожий вариантик, более тупой - в лоб всё
[vba]
Код
Sub tt()
p_ = ThisDocument.Path
n0_ = ThisDocument.Name
n1_ = Left(n0_, Len(n0_) - 4 + (Left(Right(n0_, 5), 1) = "."))
ss = p_ & "\" & n1_
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще похожий вариантик, более тупой - в лоб всё
[vba]
Код
Sub tt()
p_ = ThisDocument.Path
n0_ = ThisDocument.Name
n1_ = Left(n0_, Len(n0_) - 4 + (Left(Right(n0_, 5), 1) = "."))
ss = p_ & "\" & n1_
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 07.07.2015 в 10:04
карандаш Дата: Вторник, 07.07.2015, 13:28 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
первый вариант не сработал
заменил This на Active - не помогло

второй вариант сработал с Active (в оригинале не пробовал, т.к. макрос сидит в Normal.dot)

спасибо, Александр


Сообщение отредактировал карандаш - Вторник, 07.07.2015, 13:30
 
Ответить
Сообщениепервый вариант не сработал
заменил This на Active - не помогло

второй вариант сработал с Active (в оригинале не пробовал, т.к. макрос сидит в Normal.dot)

спасибо, Александр

Автор - карандаш
Дата добавления - 07.07.2015 в 13:28
карандаш Дата: Четверг, 09.07.2015, 11:06 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
однако, не работает в некоторых случаях

если в названии файла присутствуют точки, то при сохранении как pdf расширение отсутствует, хотя файл сохраняется как pdf (потом ему ручками пририсовываешь .pdf и всё нормально)

можно как-то эту беду устранить?

спасибо
 
Ответить
Сообщениеоднако, не работает в некоторых случаях

если в названии файла присутствуют точки, то при сохранении как pdf расширение отсутствует, хотя файл сохраняется как pdf (потом ему ручками пририсовываешь .pdf и всё нормально)

можно как-то эту беду устранить?

спасибо

Автор - карандаш
Дата добавления - 09.07.2015 в 11:06
AndreTM Дата: Четверг, 09.07.2015, 11:13 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
можно как-то эту беду устранить?

[vba]
Код
n1_ = Left(n0_, InStrRev(n0_, ".")) & "pdf"
[/vba]


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
можно как-то эту беду устранить?

[vba]
Код
n1_ = Left(n0_, InStrRev(n0_, ".")) & "pdf"
[/vba]

Автор - AndreTM
Дата добавления - 09.07.2015 в 11:13
_Boroda_ Дата: Четверг, 09.07.2015, 11:14 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тогда так
[vba]
Код
Sub tt()
p_ = ThisDocument.Path
n0_ = ThisDocument.Name
n1_ = Left(n0_, Len(n0_) - 4 + (Left(Right(n0_, 5), 1) = ".")) & ".pdf"
ss = p_ & "\" & n1_
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF
End Sub
[/vba]

Да, InStrRev луше


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда так
[vba]
Код
Sub tt()
p_ = ThisDocument.Path
n0_ = ThisDocument.Name
n1_ = Left(n0_, Len(n0_) - 4 + (Left(Right(n0_, 5), 1) = ".")) & ".pdf"
ss = p_ & "\" & n1_
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF
End Sub
[/vba]

Да, InStrRev луше

Автор - _Boroda_
Дата добавления - 09.07.2015 в 11:14
карандаш Дата: Четверг, 09.07.2015, 11:37 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
прошу пардону...

тут ещё такой нюанс:
макрос вылетает с сообщением об ошибке, если пытается сохранить файл, если таковой открыт (т.е. существует)

можно закрыть из ворда файл pdf, открытый для просмотра Акробатом?
или придётся ручками закрывать?

а если ручками, то можно не вылетать в отладчик макросов при ошибке?

p.s. где-то в ворде снял какую-то галочку и теперь при сохранении в pdf файл не открывается в Акробате, а просто рисует "прогресс" сохранения и всё. Приходится ручками открывать для контроля - не могу найти эту галочку. По-моему она была в диалоге - показывать ли сохранённый файл.


Сообщение отредактировал карандаш - Четверг, 09.07.2015, 11:40
 
Ответить
Сообщениепрошу пардону...

тут ещё такой нюанс:
макрос вылетает с сообщением об ошибке, если пытается сохранить файл, если таковой открыт (т.е. существует)

можно закрыть из ворда файл pdf, открытый для просмотра Акробатом?
или придётся ручками закрывать?

а если ручками, то можно не вылетать в отладчик макросов при ошибке?

p.s. где-то в ворде снял какую-то галочку и теперь при сохранении в pdf файл не открывается в Акробате, а просто рисует "прогресс" сохранения и всё. Приходится ручками открывать для контроля - не могу найти эту галочку. По-моему она была в диалоге - показывать ли сохранённый файл.

Автор - карандаш
Дата добавления - 09.07.2015 в 11:37
_Boroda_ Дата: Четверг, 09.07.2015, 11:42 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
не вылетать в отладчик макросов при ошибке

[vba]
Код
Sub tt()
p_ = ThisDocument.Path
n0_ = ThisDocument.Name
n1_ = Left(n0_, InStrRev(n0_, ".")) & "pdf"
ss = p_ & "\" & n1_
On Error resume next
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF
End Sub
[/vba]
По-моему она была в диалоге

Да, при сохранении галка Открыть файл после публикации
Или последнюю строку перепишите
[vba]
Код
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
не вылетать в отладчик макросов при ошибке

[vba]
Код
Sub tt()
p_ = ThisDocument.Path
n0_ = ThisDocument.Name
n1_ = Left(n0_, InStrRev(n0_, ".")) & "pdf"
ss = p_ & "\" & n1_
On Error resume next
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF
End Sub
[/vba]
По-моему она была в диалоге

Да, при сохранении галка Открыть файл после публикации
Или последнюю строку перепишите
[vba]
Код
ThisDocument.ExportAsFixedFormat OutputFileName:=ss, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True
[/vba]

Автор - _Boroda_
Дата добавления - 09.07.2015 в 11:42
карандаш Дата: Понедельник, 13.07.2015, 20:16 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
спасибо!
 
Ответить
Сообщениеспасибо!

Автор - карандаш
Дата добавления - 13.07.2015 в 20:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!