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. Показов 6715. Ответов 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()
|
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.