Создание каталога фотографий из папки фотографий

Гленн составляет каталог всех своих цифровых фотографий в 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 «). Выберите ActiveCell.FormulaR1C1 =» Описание «Диапазон (» B1 «). Выберите ActiveCell.FormulaR1C1 =» Thumbnail «Range (» C1 «). Выберите ActiveCell.FormulaR1C1 =» Hyperlink «Range (» A1: C1 «). Выберите с Selection.Font .Name =» Arial «.FontStyle =» Bold «.Size = 12 .ColorIndex = xlAutomatic Завершить с помощью Selection.Borders (xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With i = 1 On Error GoTo 0 xPhoto = Dir (sPattern, vbNormal) Do While xPhoto + 1 Диапазон («B» & i) .Select ActiveSheet.Pictures.Insert (sLocT & xPhoto) .Select With Selection.ShapeRange .LockAspectRatio = msoTrue .Height = 54 # .PictureFormat.Brightness = 0.5 .PictureFormat.Contrast = 0.5 .PictureF ormat.ColorType = msoPictureAutomatic End With Range («C» & i). Выберите ActiveSheet.Hyperlinks.Add Anchor: = Selection, _ Address: = sLocP & xPhoto, TextToDisplay: = xPhoto xPhoto = Dir Loop Application.EnableEvents = True Application. ScreenUpdating = TrueEnd Sub

Запуск этого макроса может занять некоторое время, в зависимости от типа системы, которую вы используете, и количества фотографий, которые вы каталогизируете.

Источник: frestage.ru

Бытовой вопрос