На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> Вставка рисунка в колонтитул ворда , Как назначить формат?
    Работаю с документом ворд из VB6
    Сюда задаю вопрос - думаю это ближе к VBA чем к VB
    Разобрался со всеми вопросами кроме одного:
    Вставляю в колонтитул рисунок:
    Код:
    ExpandedWrap disabled
      ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
       
          Selection.InlineShapes.AddPicture FileName:=Лого.Text, _
       
              LinkToFile:=False, SaveWithDocument:=True





    Но он вставляется с форматом "В тексте". В результате весь многостраничный документ становится раком.
    Вопрос: как при вставке указать формат рисунка "Перед текстом"
    _________________
      Либо другой вариант.
      Вставил в заготовку в нужные места рамки.
      И в них вставляю картинки. Так ворд не передёргивает.
      Но опять проблема. Вставил 4 рамки. Одна из них в колонтитуле.
      В коллекции Frames только три рамки.
      Где искать четвёртую? Как к ней обратится?
      Перевёл в режим колонтитулов:
      ExpandedWrap disabled
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

      Вручную(в режиме стопа) щёлкаю по рамке в колонтитуле - выделяется.
      Следующий шаг
      ExpandedWrap disabled
        Selection.Range.Paste

      Вставляет как мне надо.

      Если вручную не выделю - вставляет не в рамку, а просто в колонтитул и в формате "В тексте" со всеми вытекающими последствиями
        Отвечаю сам себе. Может кому надо:
        ExpandedWrap disabled
          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
          можно и короче, например:
          ExpandedWrap disabled
            ActiveDocument.Sections(1).Headers(1).Shapes.AddPicture "my_foto.jpg", , True
            Тот вариант оказался не подходящим - при добавлении рисунка он вставляется в натуральнюу величину.
            В рекомендациях говорилось о методе вставки через буфер. Но я не мог найти доступа к рамке в колонтитуле.
            Не знал где её искать. В конце концов посказали, где её найти.
            Окончательный вариант вполне устраивающий меня:

            ExpandedWrap disabled
              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( - оказались ключевыми словами.
            Всем спасибо
              в таком случае зачем менять вид и делать лишний селект - попробуй вставку напрямую
              ExpandedWrap disabled
                PIC.Picture = LoadPicture(Лого.Text)
                Clipboard.Clear
                Clipboard.SetData PIC.Picture
                ActiveDocument.Sections(1).Headers(1).Range.Paste
                Пока не поменял вид - вдавало ошибку: нет доступа
                Правда я пытался выделить. Попробую без выделения. Спасибо

                Блин!! Точно работает.
                А я три дня лазил не мог понять, где эта клятая рамка делась.
                Остальные в коллекции, а одной там нет:
                ExpandedWrap disabled
                  DocWord.Frames.Item(1).Range.Paste
                Сообщение отредактировано: Alex77 -
                  от лишних выделений при возможности лучше избавляться, как правило это бесполезное наследие автоматической записи макроса
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0.0822 ]   [ 16 queries used ]   [ Generated: 22.05.26, 06:17 GMT ]