Как скопировать картинку из примечания?
Что умеет Excel
Сделать такую штутку мне пришло в голову случайно, когда это понадобилось кому-то на одном из форумов, на которых я общаюсь. Вот и решил — если это нужно кому-то одному, то может понадобится и другим. Изначально макрос копирования картинки из примечания появился в надстройке MyAddin — Копирование картинки из примечания. Теперь решил поделиться кодом в этой статье, т.к. возможно это поможет кому-то в решении подобной проблемы. Что делает код ниже? Он копирует каритнки из примечаний в выделенных ячейках. Т.е. сначала Вы выделяете одну или несколько ячеек, а затем запускаете код. Вот и все. После этого в ячейке, расположенной правее ячейки с примечанияем будет картинка этого примечания.
Sub Copy_Picture_From_comment() If TypeName(Selection) <> "Range" Then MsgBox "Выделенная область не является диапазоном!", vbCritical, "Ошибка": Exit Sub Dim rRange As Range, rCell As Range, oComment As Comment Dim bVisible As Boolean On Error Resume Next Set rRange = Selection.SpecialCells(xlCellTypeComments) If rRange Is Nothing Then Exit Sub Application.ScreenUpdating = 0 For Each rCell In rRange Set oComment = rCell.Comment If Not oComment Is Nothing Then bVisible = oComment.Visible With rCell .Comment.Visible = True .Comment.Shape.CopyPicture xlScreen, xlBitmap .Offset(, 1).PasteSpecial .Comment.Visible = bVisible End With End If Next rCell Application.ScreenUpdating = 1 Set rRange = Nothing: Set rCell = Nothing: Set oComment = Nothing End Sub
Sub Copy_Picture_From_comment()
If TypeName(Selection) <> "Range" Then MsgBox "Выделенная область не является диапазоном!", vbCritical, "Ошибка": Exit Sub
Dim rRange As Range, rCell As Range, oComment As Comment
Dim bVisible As Boolean
On Error Resume Next
Set rRange = Selection.SpecialCells(xlCellTypeComments)
If rRange Is Nothing Then Exit Sub
Application.ScreenUpdating = 0
For Each rCell In rRange
Set oComment = rCell.Comment
If Not oComment Is Nothing Then
bVisible = oComment.Visible
With rCell
.Comment.Visible = True
.Comment.Shape.CopyPicture xlScreen, xlBitmap
.Offset(, 1).PasteSpecial
.Comment.Visible = bVisible
End With
End If
Next rCell
Application.ScreenUpdating = 1
Set rRange = Nothing: Set rCell = Nothing: Set oComment = Nothing
End SubЕсли вдруг Вам данные картинки надо сохранить не на лист Excel, а на диск, то Вы можете сначала применить код выше, а затем код, выложенный в этой статье для сохранения на диск. Ну а тем, кто хоть немного разбирается в кодах, не составит труда при необходимости совместить коды из этих двух статей в один единый.
Tips_Macro_Copy_Picture_from_Comments.xls (52,0 KiB, 609 скачиваний)
Также см.:
→Копирование картинки из примечания
→Как сохранить картинки из листа Excel в картинки JPG

6162

Добрый день!
Никак не могу разобраться как запустить код. Помогите — сижу уже 2 дня…
Вы файл скачали? если да — то надо лишь выделить ячейки с примечаниями и нажать на кнопку. Если ничего не происходит — читайте эту статью:
Если проблема другого рода — то опишите, как и откуда Вы код пытаетесь запустить.
Спасибо!!! Со всем разобралась — очень выручила информация ваша.