1

Я использую Microsoft Excel 2010 на Windows 7. У меня есть задание, которое требует, чтобы я продолжал встраивать объекты сжатого файла в ячейку на листе Microsoft Excel каждые несколько минут.

Значок сжатого файла большой и занимает высоту трех смежных ячеек. Поэтому каждый раз, когда я встраиваю сжатый файл, я щелкаю правой кнопкой мыши по значку и затем выбираю пункт меню форматирования объекта, а затем изменяю размер значка на 50% от его исходного размера.

Есть ли способ установить размер значка по умолчанию в Microsoft Excel? Если нет, то есть ли способ автоматизировать процедуру установки формата внедренного объекта с помощью макроса? Я много искал, но ничего не мог найти. Я пробовал скрипт VBA для одного конкретного объекта, но не могу сделать это для любого объекта

Спасибо за любые вклады

Редактировать: спасибо за комментарий, требующий от меня публикации в макрос. Вот макрос, который я записал, но это только для определенного объекта, который является объектом 21. Есть несколько проблем с этим кодом, которые я выделяю ниже кода

Sub Reduce_size_icon() 
' 
' Reduce_size_icon Macro
' Reduce the size of the icon 
'
'
    ActiveSheet.Shapes("Object 21").LockAspectRatio = msoTrue
    ActiveSheet.Shapes("Object 21").Height = 20.25
    ActiveSheet.Shapes("Object 21").Width = 69.75 End Sub
  1. Это только для конкретного объекта. Одним из способов может быть перебрать все возможные объекты на листе, а затем уменьшить их высоту. Но если я добавляю объекты один за другим, макрос должен запускаться только на последнем объекте, а не на всех перед тем, как сделать это, потому что они уже отформатированы, особенно если мы хотим, чтобы высота и ширина были уменьшены на 50% текущих размеров. (См. Пункт 2)
  2. было бы лучше, если бы мы могли уменьшить высоту вдвое вместо назначения абсолютных значений для высоты. Это потому, что иногда у меня могут быть объекты разных файлов и, следовательно, разных размеров значков.
  3. Прочитав ваш комментарий, я понял, что, возможно, гораздо проще создать макрос, который будет автоматически вставлять и форматировать объект в выделенную ячейку, в которой выполняется макрос. Однако мы хотим, чтобы объект каждый раз создавался из другого файла. Так возможно ли, что макрос может пройти точно такие же этапы построения объекта, но в тот момент, когда он запрашивает путь к файлу, он может остановиться и позволить пользователю выбрать определенный файл?

И, конечно же, самый простой способ - указать размер значка для значений по умолчанию, чтобы он всегда встраивался в меньший размер.

1 ответ1

0

Я не слишком уверен, есть ли где-нибудь в Excel какая-либо настройка, которая определяет размер Icon по умолчанию для встроенного объекта. Если есть, я бы очень хотел узнать об этом. Это сделает работу очень простой.

На данный момент я просто предлагаю небольшой макрос, который выглядит следующим образом.

Это проверено в Excel 2013, и я надеюсь, что оно должно работать и в Excel 2010.

В текущей рабочей таблице нажмите ATL + F11 для доступа к редактору VBA. Вставьте модуль и вставьте в него следующий код.

Sub SelectOLE()
Dim objFileDialog As Office.FileDialog
    Set objFileDialog = Application.FileDialog(MsoFileDialogType.msoFileDialogFilePicker)

        objFileDialog.AllowMultiSelect = False
        objFileDialog.ButtonName = "Select File"
        objFileDialog.Title = "Select File"
        objFileDialog.Show

        If (objFileDialog.SelectedItems.Count > 0) Then

        Set f = ActiveSheet.OLEObjects.Add _
            (Filename:=objFileDialog.SelectedItems(1), _
              Link:=False, _
              DisplayAsIcon:=True, _
              IconLabel:=objFileDialog.SelectedItems(1), _
              Top:=ActiveCell.Top, _
              Left:=ActiveCell.Left _
             )
        f.Select
        f.Width = 18   'Adjust as per your needs
        f.Height = 18  'Adjust as per your needs

        End If

End Sub

Вы также можете назначить сочетание клавиш для этого макроса. Сохраните ваш файл как .xlsm Macro Enabled Excel Workbook.

Теперь каждый раз, когда вам нужно встроить объект, сначала нажмите на ячейку, в которую вы хотите встроить, и запустите этот макрос. Выберите файл в диалоговом окне «Открыть файл» и нажмите кнопку «Открыть».

Вы можете наилучшим образом определить параметры ширины и высоты в соответствии с вашими потребностями в коде. Просто отметьте, что этот код может быть ненадежным и не был проверен на наличие выбросов или обработки исключений как таковых.

Смотрите скриншот ниже, как это работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .