Автоматически переопределять размеры окна комментария в соответствии с фоновым изображением в Excel

1561
Guest

В Excel, скажем, я выбираю изображение, например test.jpeg, в качестве фона комментария. Я хочу, чтобы поле для комментариев принимало размеры test.jpeg. Поскольку я планирую получить сотни таких комментариев, мой вопрос: есть ли способ автоматизировать это?

0

1 ответ на вопрос

2
nixda

I tinkered together a VBA macro. Open your VBA editor with ALT+F11 and paste the below code under sheet1. Execute the macro with ALT+F8

What the macro does

  1. Ask user for a path to a picture which he wants to insert (can be jpg, bmp or png)
  2. Load that picture as a WIA.imageFile. Later we use objImage.Height and objImage.Width to get the real picture dimensions.

    This method was the shortest one I've found to get dimensions in pixels (other VBA methods may give you twips. They are a horrible invention)

  3. Insert a blank comment on the currently selected cell if no old comment already exists there
  4. Set the chosen picture as background image for the comment shape
  5. Resize the comment shape dimensions so the picture perfectly fits
Sub InsertComment() Dim strImagePath As Variant Dim objImage As Object strImagePath = Application.GetOpenFilename("Picture, *.jpg; *.png; *.bmp") If strImagePath = False Then Exit Sub Set objImage = CreateObject("WIA.ImageFile") objImage.LoadFile strImagePath With ActiveCell If .Comment Is Nothing Then .AddComment ("") .Comment.Shape.Fill.UserPicture strImagePath .Comment.Shape.Height = objImage.Height * 0.75 .Comment.Shape.Width = objImage.Width * 0.75 End With End Sub 
Совершенно круто !! .......... я никогда раньше не видел объект * WIA.ImageFile * Gary's Student 9 лет назад 0
Очень круто на самом деле! Именно то, что я искал. Просто замечание: кажется, что размеры комментария * больше *, чем размеры изображения. Например, когда я смотрю на детали одного из изображений jpeg, которые у меня есть, я вижу, что его размеры составляют 290 x 420 пикселей. Комментарий имеет размеры 10,24 х 14,82 см. Но, согласно [этому конвертеру] (http://www.unitconversion.org/typography/pixels-x-to-centimeters-conversion.html), он должен составлять 7,67 x 11,11 см. Guest 9 лет назад 0
Работает как шарм сейчас. Большое спасибо! Guest 9 лет назад 0

Похожие вопросы