Вставка рисунка в колонтитул ворда
, Как назначить формат?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.4] |
|
|
Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Общие вопросы
Особенности VBA-кода
Оптимизация VBA-кода
Полезные ссылки
Вставка рисунка в колонтитул ворда
, Как назначить формат?
|
Сообщ.
#1
,
|
|
|
|
Работаю с документом ворд из VB6
Сюда задаю вопрос - думаю это ближе к VBA чем к VB Разобрался со всеми вопросами кроме одного: Вставляю в колонтитул рисунок: Код: ![]() ![]() ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.InlineShapes.AddPicture FileName:=Лого.Text, _ LinkToFile:=False, SaveWithDocument:=True Но он вставляется с форматом "В тексте". В результате весь многостраничный документ становится раком. Вопрос: как при вставке указать формат рисунка "Перед текстом" _________________ |
|
Сообщ.
#2
,
|
|
|
|
Либо другой вариант.
Вставил в заготовку в нужные места рамки. И в них вставляю картинки. Так ворд не передёргивает. Но опять проблема. Вставил 4 рамки. Одна из них в колонтитуле. В коллекции Frames только три рамки. Где искать четвёртую? Как к ней обратится? Перевёл в режим колонтитулов: ![]() ![]() ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Вручную(в режиме стопа) щёлкаю по рамке в колонтитуле - выделяется. Следующий шаг ![]() ![]() Selection.Range.Paste Вставляет как мне надо. Если вручную не выделю - вставляет не в рамку, а просто в колонтитул и в формате "В тексте" со всеми вытекающими последствиями |
|
Сообщ.
#3
,
|
|
|
|
Отвечаю сам себе. Может кому надо:
![]() ![]() PIC.Picture = LoadPicture(Лого.Text) Clipboard.Clear Clipboard.SetData PIC.Picture Dim asd ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Set asd = Selection.InlineShapes.AddPicture(FileName:=Лого.Text, _ LinkToFile:=False, SaveWithDocument:=True) asd.ConvertToShape ActiveWindow.View.Type = wdPrintView |
|
Сообщ.
#4
,
|
|
|
|
можно и короче, например:
![]() ![]() ActiveDocument.Sections(1).Headers(1).Shapes.AddPicture "my_foto.jpg", , True |
|
Сообщ.
#5
,
|
|
|
|
Тот вариант оказался не подходящим - при добавлении рисунка он вставляется в натуральнюу величину.
В рекомендациях говорилось о методе вставки через буфер. Но я не мог найти доступа к рамке в колонтитуле. Не знал где её искать. В конце концов посказали, где её найти. Окончательный вариант вполне устраивающий меня: ![]() ![]() PIC.Picture = LoadPicture(Лого.Text) Clipboard.Clear Clipboard.SetData PIC.Picture ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes(1).Select Selection.Range.Paste ActiveWindow.View.Type = wdPrintView .Sections(1).Headers( - оказались ключевыми словами. Всем спасибо |
|
Сообщ.
#6
,
|
|
|
|
в таком случае зачем менять вид и делать лишний селект - попробуй вставку напрямую
![]() ![]() PIC.Picture = LoadPicture(Лого.Text) Clipboard.Clear Clipboard.SetData PIC.Picture ActiveDocument.Sections(1).Headers(1).Range.Paste |
|
Сообщ.
#7
,
|
|
|
|
Пока не поменял вид - вдавало ошибку: нет доступа
Правда я пытался выделить. Попробую без выделения. Спасибо Блин!! Точно работает. А я три дня лазил не мог понять, где эта клятая рамка делась. Остальные в коллекции, а одной там нет: ![]() ![]() DocWord.Frames.Item(1).Range.Paste |
|
Сообщ.
#8
,
|
|
|
|
от лишних выделений при возможности лучше избавляться, как правило это бесполезное наследие автоматической записи макроса
|