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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2012, 15:17   #1
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию Загрузка в Image не с диска С

Всем привет. Есть код:

Private Sub ComboBox2_Change()
If ComboBox2.Text = "ßáëîíÿ òîëåäî, RON 108" Then
Image2.Picture = LoadPicture("c:\RON108 ßáëîíÿ òîëåäî.bmp")
End If
If ComboBox2.Text = "Âåíãå, RON 015" Then
Image2.Picture = LoadPicture("c:\RON 015 Âåíãå.bmp")
End If
End Sub

Excel находится в папке "Калькулятор кухни". В ней же находится папка "Image" с текстурами в формате JPEG.
Вопросы:
1. При прописывании кода не загружается рисунок с расширением JPEG, после обработки рисунка в bmp, все работает. Но мне лучше JPEG, так как текстур около 300, и все переводить в bmp - это куча времени.
2. Нужно, чтобы картинка загружалась не с диска С, а именно из папки "Image". Удобно, если перемещать папку "Калькулятор кухни", не изменится дорога.
3. Так как картинок будет около 300, можно ли сократить код или писать так же как написан.
Вадим12091965 вне форума Ответить с цитированием
Старый 27.10.2012, 15:35   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Указывайте путь к рисунку
"c:\RON108 ßáëîíÿ òîëåäî.jpg"
а не "c:\RON108 ßáëîíÿ òîëåäî.jpeg"
Все прекрасно грузится,если действительный формат рисунка jpeg.
Расширение и формат не всегда могут совпадать.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 27.10.2012, 15:44   #3
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию

Попробовал jpg, работает. Спасибо. А как на счет дороги загрузки не с диска С ?
Вадим12091965 вне форума Ответить с цитированием
Старый 27.10.2012, 15:50   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Папка Image должна быть рядом с книгой Excel
Код:
Dim ImagePath As String
ImagePath = ThisWorkbook.Path & "\Image\"
Image2.Picture = LoadPicture(ImagePath & "Имя картинки.jpg")
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.10.2012, 09:29   #5
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию

Спасибо, что помогаете. При коде

Dim ImagePath As String
ImagePath = ThisWorkbook.Path & "\Image\"
Image2.Picture = LoadPicture(ImagePath & "Имя картинки.jpg")

получаю ошибку
Run-time error '76':
Path not found.
Вадим12091965 вне форума Ответить с цитированием
Старый 28.10.2012, 11:43   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А папку Image вы создали?
Вложения
Тип файла: rar Картинка.rar (3.69 Мб, 8 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.10.2012, 12:54   #7
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию

Книга Excel и папка Image были у меня изначально, находятся в папке "Калькулятор кухни". Посмотрел видео, делал так-же, только для ComboBox, но нет результата. Может в коде закралась ошибка?
Вот у меня какой код:
Private Sub ComboBox2_Change()
If ComboBox2.Text = "Яблоня толедо, RON 108" Then
Dim ImagePath As String
ImagePath = ThisWorkbook.Path & "\Image\"
Image2.Picture = LoadPicture(ImagePath & "RON108 Яблоня толедо.jpg")
End If
If ComboBox2.Text = "Венге, RON 015" Then
Dim ImagePath As String
ImagePath = ThisWorkbook.Path & "\Image\"
Image2.Picture = LoadPicture(ImagePath & "RON 015 Венге.jpg")
End If
End Sub

Сначала ошибки нет, но подсвечивается синим цветом
ImagePath As String для 2-го рисунка, появляется окно с надписью
compile error: duplicate declaration in current scope. А когда я убрал ImagePath As String для 2-го рисунка, то получаю ошибку
Run-time error '76':
Path not found.
Вадим12091965 вне форума Ответить с цитированием
Старый 28.10.2012, 15:15   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Добавил проверку наличия файла

Код:
Function IsExists(FileName) As Boolean
        Dim oFS: Set oFS = CreateObject("Scripting.FileSystemObject")
        If oFS.FileExists(FileName) Then
                IsExists = True
        Else
                IsExists = False
        End If
        Set oFS = Nothing
End Function
Private Sub ComboBox2_Change()
        Dim ImagePath As String
        ImagePath = ThisWorkbook.Path & "\Image\"
        If ComboBox2.Text = "Яблоня толедо, RON 108" And IsExists(ImagePath & "RON108 Яблоня толедо.jpg") Then
                Image2.Picture = LoadPicture(ImagePath & "RON108 Яблоня толедо.jpg")
        End If
        If ComboBox2.Text = "Венге, RON 015" And IsExists(ImagePath & "RON 015 Венге.jpg") Then
                Image2.Picture = LoadPicture(ImagePath & "RON 015 Венге.jpg")
        End If
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.10.2012, 18:06   #9
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию

Все получилось. Большое спасибо.
Вадим12091965 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка с диска Onni Компьютерное железо 4 17.03.2012 00:21
Загрузка файла с диска в событии OnGetText X11 БД в Delphi 0 28.08.2011 21:39
Загрузка с диска. krokusfs Безопасность, Шифрование 1 31.05.2010 23:39
Загрузка Image BuT@JL Общие вопросы Delphi 2 24.06.2009 15:52