![]() |
|
#1
|
||||
|
||||
![]() If you want to centralise the image it needs to be an inline shape. You can convert it, if you must, after you have centred it. The argument lists for built in dialog boxes can be found at https://msdn.microsoft.com/en-us/lib...or=-2147217396 from which you will see it is not possible to set the start location for this dialog. You would need to use a different dialog to set the location such as Application.FileDialog(msoFileDialogFilePicker) e.g. Code:
Sub InsertPic() Dim fDialog As FileDialog Dim strFile As String Dim oImage As InlineShape Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog .Title = "Select image to insert" .InitialFileName = "C:\Users\atom\Desktop\PDF\" .AllowMultiSelect = False .Filters.Clear .Filters.Add "Images", "*.jpg,*.png,*.gif" .InitialView = msoFileDialogViewList If .Show <> -1 Then GoTo err_Handler: End With strFile = fDialog.SelectedItems.Item(1) Set oImage = Selection.InlineShapes.AddPicture(strFile) With oImage .LockAspectRatio = msoTrue .ScaleHeight = 50 .ScaleWidth = 50 .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter .ConvertToShape End With lbl_exit: Set fDialog = Nothing Set oImage = Nothing Application.WindowState = wdWindowStateNormal ' Documents.Add DocumentType:=wdNewBlankDocument ' ShowVisualBasicEditor = True Exit Sub err_Handler: Err.Clear GoTo lbl_exit End Sub It would be better if you inserted the images into the cells of a table (with fixed width cells) and left them as inline images. That would fixe their positions on the page and also negate the need to adjust the size, which would adapt to the cell width. See http://www.gmayor.com/photo_gallery_template.html
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#2
|
||||
|
||||
![]() Quote:
Code:
Sub InsertPic() Dim strFile As String, iShp As InlineShape, Shp As Shape, Rng As Range On Error Resume Next With Dialogs(wdDialogInsertPicture) .Display If .Name <> "" Then strFile = .Name Else Exit Sub End If End With Set Rng = Selection.Range: Rng.Collapse wdCollapseEnd Set iShp = ActiveDocument.InlineShapes.AddPicture(strFile, False, True, Rng) Set Shp = iShp.ConvertToShape With Shp .LockAnchor = True .LockAspectRatio = msoTrue .Height = .Height / 2 .RelativeVerticalPosition = wdRelativeVerticalPositionLine .Top = 0 .RelativeHorizontalPosition = wdRelativeHorizontalPositionMargin .Left = wdShapeCenter End With Set Rng = Nothing: Set iShp = Nothing: Set Shp = Nothing End Sub https://www.msofficeforums.com/word-...html#post47919
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]()
The code has an error on .Display If .Name <> "" Then
|
#4
|
||||
|
||||
![]()
Those are two separate code lines:
Code:
.Display If .Name <> "" Then
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
![]()
You code works fine except that the image inserted float above the texts. I deleted ".ConvertToShape" and it looks great to me. Is this the right way of making it embedded into the text?
|
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
puff | Word VBA | 5 | 12-17-2017 05:52 PM |
![]() |
TedW | Excel | 1 | 11-17-2015 10:11 PM |
![]() |
Jazz | Outlook | 1 | 09-10-2015 04:34 AM |
![]() |
phamh | PowerPoint | 1 | 02-25-2015 04:40 AM |
Background image vs. insert image | lilaria | PowerPoint | 0 | 04-18-2011 08:45 AM |