Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2019, 16:48   #1
rediffusion
Пользователь
 
Аватар для rediffusion
 
Регистрация: 30.05.2019
Сообщений: 36
Сообщение `Insert Note` ··· Clipboard.GetImage - Как привести в рабочее состояние?

У меня есть хороший код для вставки изображения в "Примечание" из "File Dialog" :

Код:
Sub FillPictureInNote(control As IRibbonControl)
    Dim img As FileDialog
    Dim i_add As String
    Dim myComm As Comment

    Set img = Application.FileDialog(msoFileDialogFilePicker)
        img.AllowMultiSelect = False
        img.Title = "Select the Image!"
        img.Show

    If img.SelectedItems.Count < 1 Then
    Exit Sub

    Else
        i_add = img.SelectedItems(1)
    End If

'If the cell contains a `Note` delete!
    If Not ActiveCell.Comment Is Nothing Then
        ActiveCell.Comment.Delete
    End If

    On Error GoTo nexterr
    ActiveCell.ClearComments

    Set myComm = ActiveCell.AddComment
        With myComm.Shape
          .Height = 110
          .Width = 200
          .AutoShapeType = 1             'form
'          .Fill.UserTextured
          .Fill.UserPicture i_add
          .Line.ForeColor.RGB = RGB(255, 0, 0)
          .DrawingObject.Font.Name = "Consolas"
          .DrawingObject.Font.FontStyle = "normal"
          .DrawingObject.Font.Size = 8
          'emulate the choice of "Change note".
           SendKeys "+{F2}"
          Exit Sub

nexterr:
        MsgBox "You can only select images!", vbCritical, "Error"
        ActiveCell.ClearComments
        End With
End Sub
Я хочу сделать код для вставки изображения в "Примечание" из моего буфера обмена. Как переписать код, чтобы привести его в рабочее состояние? Я нашел это в интернете:

Код:
Dim ImaFile$
ImaFile = Clipboard.GetImage()
Пожалуйста, помогите объединить/состыковать!

Последний раз редактировалось rediffusion; 05.08.2019 в 16:54. Причина: Исправил ошибки в тексте!
rediffusion вне форума Ответить с цитированием
Старый 05.08.2019, 16:54   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Не так всё просто. VBA - это устаревший язык, где для такого простого действия необходимо писать десятки строк кода

Цитата:
ImaFile = Clipboard.GetImage()
это не будет работать
это не из VBA, либо там еще нужно кучу дополнительного кода копировать (оттуда где вы это нашли)


вы же в этой теме отписывались
https://programmersforum.ru/showthread.php?t=290782
а там как раз есть нужный вам код
EducatedFool вне форума Ответить с цитированием
Старый 05.08.2019, 17:01   #3
rediffusion
Пользователь
 
Аватар для rediffusion
 
Регистрация: 30.05.2019
Сообщений: 36
По умолчанию

@EducatedFool

Я знаю что я там писал ну и читал всё внимательно. У меня x64 а там для x32. Дело в том что я не знаю как это всё адаптировать под «Office Excel x64»?
rediffusion вне форума Ответить с цитированием
Старый 05.08.2019, 17:09   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Тут написано, что нужно сделать для x64
https://programmersforum.ru/showpost...16&postcount=7

пример декларирования WinAPI функций можно найти здесь:
https://excelvba.ru/code/ResizeImages

а вообще, там всё сложно очень, и не всегда стабильно работает
куда проще вставлять из буфера обмена в диаграмму, и из неё сохранять в файл
примеров кода в интернетах много

а вот еще пример кода
https://www.planetaexcel.ru/forum/?F...read&TID=22976
EducatedFool вне форума Ответить с цитированием
Старый 05.08.2019, 20:03   #5
rediffusion
Пользователь
 
Аватар для rediffusion
 
Регистрация: 30.05.2019
Сообщений: 36
По умолчанию

@EducatedFool

Тут использовал 2 макроса и у меня не робит:
https://www.planetaexcel.ru/forum/?F...read&TID=22976

Ещё тут ответил.
Вобщем тема закрыта, расходимся по домам!
rediffusion вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
insert into сразу в несколько таблиц (вложенный insert) dualtrey Помощь студентам 10 23.01.2017 18:00
Структура NOTE skorpionsej Общие вопросы C/C++ 3 16.10.2012 22:29
Описать структуру Note C++ phreaker228 Помощь студентам 1 15.06.2012 00:41
С\С++ Описать стуктуру NOTE Crazy_caramel Помощь студентам 1 25.12.2009 01:44
функция getimage, нехватка памяти Yennifer Общие вопросы C/C++ 0 26.10.2008 01:12