Well, first we need to clean up your code a bit, like below. This runs fine on my site — it places the image right at the front of the GraphicImage bookmark, not at the top of the document — but maybe your image is so large it extends to the top?
Dim objWdRange As Word.Range
Dim GraphImage As String
Dim shortString As String
shortString = Range("short").Value '? don't know what this is for
GraphImage = "http://xxx.xxxxx.com/xxx/xxx.png?instrument=Image.png"
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("C:Program FilesMy Dropboxdailystrategy.doc")
Set objWdRange = wrdDoc.Content '? don't know what this is for
With wrdDoc
If .Bookmarks.Exists("shortString ") Then
.Bookmarks("shortString ").Range.Text = shortString
End If
If .Bookmarks.Exists("GraphImage") Then
Dim wrdPic As Word.InlineShape
Set wrdPic = .Bookmarks("GraphImage").Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
wrdPic.ScaleHeight = 50
wrdPic.ScaleWidth = 50
End If
.SaveAs "c:temptest.doc"
End With
wrdDoc.Close
Set wrdDoc = Nothing
wrdApp.Quit
Set wrdApp = Nothing
EDIT: Jan 11, 2010
The above code was changed to include
If .Bookmarks.Exists("GraphImage") Then
Dim wrdPic As Word.InlineShape
Set wrdPic = .Bookmarks("GraphImage").Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
wrdPic.ScaleHeight = 50
wrdPic.ScaleWidth = 50
End If
This sets the picture as an object and then uses the scaling methods ScaleHeight
and ScaleWidth
to make it 50% smaller in both height and width.
Sub Макрос()
Dim shape As shape
Dim FN As String
‘ Полное имя файла-рисунка.
FN = «C:UsersUserDesktopРисунок.png»
‘ Вставка неплавающего рисунка и превращение неплавающего рисунка в плавающий.
‘ При этом присваиваем рисунку имя ‘shape’ и далее в коде будем обращаться
‘ к рисунку по имени ‘shape’.
Set shape = Selection.InlineShapes.AddPicture(FileName:=FN, LinkToFile:=False, _
SaveWithDocument:=True, Range:=Selection.Range).ConvertToShape
‘ Здесь можете делать нужные действия с рисункам, используя имя ‘shape’.
‘ Например, так можно узнать левое положение рисунка.
‘ Информация запишется в View — Immediate Window.
Debug.Print shape.Left
End Sub
[свернуть]
КостяФедореев Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
||||
1 |
||||
Word 21.07.2020, 11:38. Показов 6719. Ответов 11 Метки word 2016 (Все метки)
Приветствую.
теперь эту красоту надо на всех страницах разместить) Добавлено через 8 минут
0 |
779 / 461 / 79 Регистрация: 18.05.2016 Сообщений: 1,242 Записей в блоге: 4 |
|
21.07.2020, 11:48 |
2 |
картинка на всех страницах — это подложка что ли?
0 |
Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
|
21.07.2020, 11:53 [ТС] |
3 |
amd48, нет.
0 |
779 / 461 / 79 Регистрация: 18.05.2016 Сообщений: 1,242 Записей в блоге: 4 |
|
21.07.2020, 11:53 |
4 |
макрос сохранить файлом, чтоб в поле документа перетащить и он установится? Поле документа — это что в ваших терминах? Если надо иметь макрос, который будет работать с разными документами, то можно разместить его в шаблоне Normal.dot и для него сделать кнопку. Или лучше сделать надстройку — это dot-шаблон в папке %appdata%MicrosoftWordSTARTUP
0 |
Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
|
21.07.2020, 11:55 [ТС] |
5 |
Подложку я умею делать, а тут именно картинка в определенной области Добавлено через 1 минуту
Поле документа — это что в ваших терминах? Если надо иметь макрос, который будет работать с разными документами, то можно разместить его в шаблоне Normal.dot и для него сделать кнопку. Или лучше сделать надстройку — это dot-шаблон в папке %appdata%MicrosoftWordSTARTUP Думаю это я и имел ввиду, только Вы корректно это описали))
0 |
amd48 779 / 461 / 79 Регистрация: 18.05.2016 Сообщений: 1,242 Записей в блоге: 4 |
||||
21.07.2020, 12:15 |
6 |
|||
наверное, так:
0 |
КостяФедореев Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
||||
21.07.2020, 15:34 [ТС] |
7 |
|||
amd48, Спасибо! Отлично работает! Что-то не могу понять, как dot-шаблон сохранить? Добавлено через 2 минуты
0 |
779 / 461 / 79 Регистрация: 18.05.2016 Сообщений: 1,242 Записей в блоге: 4 |
|
21.07.2020, 15:43 |
8 |
как dot-шаблон сохранить? Сохранить как. Выбрать «шаблон». Ворд автоматически откроет для сохранения папку шаблонов. Но надо выбрать %appdata%MicrosoftWordSTARTUP
0 |
Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
|
21.07.2020, 15:48 [ТС] |
9 |
Сохранить как. Выбрать «шаблон». А я потом смогу этот шаблон на другой комп перекинуть?
0 |
779 / 461 / 79 Регистрация: 18.05.2016 Сообщений: 1,242 Записей в блоге: 4 |
|
21.07.2020, 17:54 |
10 |
Файл есть файл. Какие проблемы?
0 |
Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
|
21.07.2020, 19:14 [ТС] |
11 |
amd48, действительно, чёто затупил я Добавлено через 1 минуту
0 |
Lyutikova 1 / 1 / 0 Регистрация: 15.09.2019 Сообщений: 45 |
||||
31.12.2021, 09:07 |
12 |
|||
Доброго времени суток. Похожая ситуация) Есть отсканированные рукописные документы. Их сканы в PNG, в папке C:Scan имена файлов 1.png,2.png,3.png,4.png,5.png вставлять каждый файл на новую страницу. Вот так получается
Но вот можно ли как то вставить из папки Scan не по именам а выбрать все из папки и вставить в документ на каждую страницу одну картинку? Добавлено через 27 минут
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
31.12.2021, 09:07 |
Помогаю со студенческими работами здесь Вставить картинки в определенные места документа в определенном размере word 2007 Как вставить текст в определенное место WORD документа? Вставить нумерацию в таблицу нижнего колонтитула документа word Как считать текст, таблицы и картинки из документа word Макрос Word: вставить в конец документа строчку с информацией о документе На оборотной стороне документа word в правой части документа, текст съезжает за границу документа Есть код, который формирует документ из шаблона. И все вроде бы, но происходит что… Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 12 |
Понадобилось мне тут в свое время писать много текста в MS Word, вставляя туда картинки. Понимая, что картинки рано или поздно понадобится переделывать, я пришел к необходимости вставки не картинок, а ссылок на них. Но вставить поле мало — крайне желательно еще и подписывать имя вставленной картинки.
При этом файл doc / docx может перемещаться между компьютерами (да, я пользуюсь и DropBox, и Yandex.Drive, и OneDrive). Соответственно надо вставлять относительные пути и подписывать их же. Не очень продолжительный поиск по сети и немного фантазии дали такой вариант:
1 |
Option Explicit Public sInitialPath As String Private Declare Function PathRelativePathToW _
Public Sub InsertLinkToPicture()
|
Но, как выяснилось, в MS Office 2013 x64 решение работать не будет (даже если попытаться корректно объявить импорт PathRelativePathToW, VBA отказывается обрабатывать указатели на строки). Поэтому было найдено другое решение:(исходник здесь):
Тогда по Ctrl+Z будет отменяться все целиком, а не по шагам. Нередко рядом с оригинальным файлом я кладу его «уменьшенную» копию (уменьшение выполняется с FastStone Image Viewer, картинка уменьшается до 35%, имя файла оканчивается на «_35%»). Если рядом с оригиналом есть уменьшенный вариант, в поле вставляется «уменьшенная» копия, а подпись идет на нормальный вариант. В результате получилось такое чудо:
1 |
Option Explicit Public sInitialPath As String Public Function GetRelativePath(ByVal sFrom As String, ByVal sTo As String) As String
Public Sub InsertLinkToPicture()
|
В документе Word вы можете быстро вставить сразу несколько изображений с помощью функции «Вставить». Но иногда вам нужно вставить путь к файлу и имена в качестве заголовка при вставке изображений. Как бы вы справились с этой задачей в файле Word?
Вставьте несколько изображений с именем файла с помощью кода VBA
Вставьте несколько изображений с именем файла, используя Kutools for Word
Вставьте несколько изображений с именем файла с помощью кода VBA
Следующий код VBA может помочь вам вставить путь к файлу и имя в качестве заголовка при вставке изображений, пожалуйста, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. А затем нажмите Вставить > Модули, скопируйте и вставьте приведенный ниже код в открытый пустой модуль:
Код VBA: вставьте несколько изображений с именем файла:
Sub PicWithCaption()
Dim xFileDialog As FileDialog
Dim xPath, xFile As Variant
On Error Resume Next
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
If xFileDialog.Show = -1 Then
xPath = xFileDialog.SelectedItems.Item(1)
If xPath <> "" Then
xFile = Dir(xPath & "*.*")
Do While xFile <> ""
If UCase(Right(xFile, 3)) = "PNG" Or _
UCase(Right(xFile, 3)) = "TIF" Or _
UCase(Right(xFile, 3)) = "JPG" Or _
UCase(Right(xFile, 3)) = "GIF" Or _
UCase(Right(xFile, 3)) = "BMP" Then
With Selection
.InlineShapes.AddPicture xPath & "" & xFile, False, True
.InsertAfter vbCrLf
.MoveDown wdLine
.Text = xPath & "" & xFile & Chr(10)
.MoveDown wdLine
End With
End If
xFile = Dir()
Loop
End If
End If
End Sub
3, Затем нажмите F5 нажмите клавишу для запуска этого кода, отобразится окно обзора, выберите папку, содержащую изображения, которые вы хотите вставить, см. снимок экрана:
4. Затем нажмите OK все изображения в выбранной папке были вставлены в документ Word, а путь к файлу и имя вставлены как заголовок, см. снимок экрана:
Вставьте несколько изображений с именем файла, используя Kutools for Word
Если у вас есть Kutools for Word, С его Фотографии вы можете быстро вставить несколько изображений с указанием пути и имени файла в документ Word сразу.
После установки Kutools for Word, пожалуйста, сделайте так:
1. Нажмите Кутулс > Фотографии, см. снимок экрана:
2. В выскочившем Вставить картинки диалоговом окне выполните следующие действия:
- (1.) Щелкните Добавить файлы or Add Folder кнопка для выбора изображений, которые вы хотите вставить;
- (2.) Затем проверьте Вставьте путь к файлу каждого изображения как заголовок опция в левой нижней части диалогового окна;
- (3.) Затем щелкните Вставить кнопку.
3. После вставки изображений вы увидите, что путь к файлу и имя каждого изображения также вставлены, см. Снимок экрана:
Нажмите, чтобы скачать Kutools for Word и бесплатная пробная версия прямо сейчас!
Рекомендуемые инструменты для повышения производительности Word
Kutools For Word — Более 100 расширенных функций для Word, сэкономьте 50% времени
- Сложные и повторяющиеся операции можно производить разово за секунды.
- Вставляйте сразу несколько изображений из папок в документ Word.
- Объединяйте и объединяйте несколько файлов Word из папок в одну в желаемом порядке.
- Разделите текущий документ на отдельные документы в соответствии с заголовком, разрывом раздела или другими критериями.
- Преобразование файлов между Doc и Docx, Docx и PDF, набор инструментов для общих преобразований и выбора и т. Д.
Комментарии (7)
Оценок пока нет. Оцените первым!