Создание каталога фотографий из папки фотографий (Microsoft Excel)
Гленн составляет каталог всех своих цифровых фотографий в Excel. Все фотографии (их около 5000) находятся в одной папке. Он хотел бы вставить фотографии справа от описания фотографии, а затем поместить гиперссылку на все фотографии, чтобы увеличить миниатюру до фотографии большего размера.
Прямо сейчас Гленн делает это один за другим, и это сводит его с ума, поэтому он ищет способы ускорить процесс.
Хорошая новость в том, что вам не нужно сходить с ума так быстро; В Excel есть макросы, которые могут сделать работу быстрее и проще. Однако, прежде чем перейти к этому обсуждению, вы можете хорошенько подумать, прежде чем помещать все свои фотографии в книгу Excel.
Когда вы вставляете фотографию в Excel, размер файла вашей книги увеличивается как минимум на размер файла вставляемой фотографии. Таким образом, если размер вашей средней фотографии составляет 1 МБ (что довольно мало для современных камер)
и вы вставляете 5000 таких фотографий, и в итоге вы получаете книгу, в которой есть не менее 5 ГБ фотографий. Это огромная книга, и Excel, возможно, будет нелегко работать с таким объемом информации. (Сколько времени зависит от вашей версии Excel, объема памяти в вашей системе, скорости вашего процессора и т. Д.)
Вы можете подумать, что решение состоит в том, чтобы масштабировать изображения по мере их размещения на листе, чтобы они были меньше. Хотя изменение масштаба изображения делает его меньше (на листе оно выглядит меньше), на самом деле оно не меньше. Полноразмерное изображение по-прежнему находится в Excel.
Таким образом, вы вообще не уменьшаете размер файла своей книги, масштабируя фотографии.
Чтобы уменьшить размер файла, можно масштабировать фотографии вне Excel с помощью программного обеспечения для редактирования фотографий, прежде чем они будут вставлены в Excel. Другими словами, вам нужно будет загрузить каждую из фотографий в программное обеспечение для редактирования фотографий, изменить размер фотографий до любого размера эскиза, который вы хотите, а затем сохранить фотографию с измененным размером в новый файл изображения эскиза. (Обычно вы не хотите сохранять изображение с измененным размером поверх исходной фотографии.) Затем вы можете вставить каждую миниатюру в свой рабочий лист Excel, и полученный размер файла книги будет меньше, хотя все еще напрямую связан с совокупным размером эскизы фотографий, которые вы добавляете на рабочий лист.
Если вы все же хотите вставить все фотографии на лист, вы можете сделать это с помощью макроса. В следующем примере PhotoCatalog может найти все миниатюры фотографий и вставить их в рабочий лист вместе с гиперссылкой на полную фотографию. Он предполагает четыре вещи: (1) все ваши фотографии и эскизы представляют собой изображения в формате JPG, (2) фотографии находятся в каталоге c: \ Photos \, (3) эскизы находятся в каталоге c: \ Photos \ Thumbnails \ и (4) эскизы имеют те же имена файлов, что и полноразмерные фотографии.
Sub PhotoCatalog() Dim i As Double Dim xPhoto As String Dim sLocT As String Dim sLocP As String Dim sPattern As String sLocT = "c:\Photos\Thumbnails\" sLocP = "c:\Photos\" sPattern = sLocT & "*.jpg" Application.EnableEvents = False Application.ScreenUpdating = False Range("A1").Select ActiveCell.FormulaR1C1 = "Description" Range("B1").Select ActiveCell.FormulaR1C1 = "Thumbnail" Range("C1").Select ActiveCell.FormulaR1C1 = "Hyperlink" Range("A1:C1").Select With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 12 .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With i = 1 On Error GoTo 0 xPhoto = Dir(sPattern, vbNormal) Do While xPhoto <> "" i = i + 1 Range("B" & i).Select ActiveSheet.Pictures.Insert(sLocT & xPhoto).Select With Selection.ShapeRange .LockAspectRatio = msoTrue .Height = 54# .PictureFormat.Brightness = 0.5 .PictureFormat.Contrast = 0.5 .PictureFormat.ColorType = msoPictureAutomatic End With Range("C" & i).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, _ Address:= sLocP & xPhoto, TextToDisplay:=xPhoto xPhoto = Dir Loop Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Запуск этого макроса может занять некоторое время, в зависимости от типа используемой системы и количества фотографий, которые вы каталогизируете.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (7484) применим к Microsoft Excel 97, 2000, 2002 и 2003.