ID tematu: 26392
 |
wstawianie pliku jpg |
| Autor |
Wiadomość |
huka
forumowicz

Posty: 22
|
Wysłany: 2011-12-04, 17:21 wstawianie pliku jpg
|
|
|
Witam,
mam taki problem, chciałbym wstawiać w Wordzie pliki jpg, które mam w tym samym folderze co główny dokument. Napisałem takie makro, ale mi nie działa, wyrzuca błąd ścieżki dostępu.
| Kod: |
Sub Foto()
ActiveDocument.InlineShapes.AddPicture FileName:=(ThisDocument.Path & "\" & "obrazek.jpg"), LinkToFile:= _
False, SaveWithDocument:=True
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
ActiveWindow.ActivePane.VerticalPercentScrolled = 18
End Sub
|
Może wiecie gdzie w czym jest błąd bo nie bardzo wiem jak to obejść.
I jak najlepiej rozwiązać problem automatycznego wstawiania plików jpg do dokumentu?
Wiem, że w Excelu można wykorzystać obiekty OLE i nawet znalazłem na forum ciekawe przykłady, ale zupełnie nie mam pojęcia jak to wykorzystać w moim przypadku.
Z góry dzięki za pomoc. |
|
 | ID posta:
139550
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
Kaper
Excel Expert


Pomógł: 1152 razy Posty: 1626
|
Wysłany: 2011-12-04, 18:59
|
|
|
Pierwsze co mi przychodzi do głowy, to
albo dokument worda nie był zapisany - np. pracujesz na świeżo utworzonej kopii dokumentu (wtedy ścieżka jest pusta),
albo masz jakąś literówkę (np. w nazwie pliku)
albo ... dokument worda jest zapisany w innym katalogu niż obrazek.
Pozdrawiam, |
_________________ Kaper
Każda trójwymiarowa zwarta i jednospójna rozmaitość topologiczna bez brzegu jest homeomorficzna ze sferą trójwymiarową. Czasem trzeba poczekać sto lat żeby się upewnić. |
|
 | ID posta:
139558
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
huka
forumowicz

Posty: 22
|
Wysłany: 2011-12-04, 19:31
|
|
|
Niestety wszystkie te opcje wykluczam bo dokładnie sprawdzałem.
Problem jest ze składnią ścieżki bo jak podaje na sztywno w ten sposób to działa bez zarzutu.
| Kod: |
Sub foto()
ActiveDocument.InlineShapes.AddPicture FileName:=("C:\nowy\obrazek.jpg"), LinkToFile:= _
False, SaveWithDocument:=True
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
ActiveWindow.ActivePane.VerticalPercentScrolled = 18
End Sub |
|
|
 | ID posta:
139560
|
|
|
 |
szuszana
EXCELent Man

Pomogła: 38 razy Posty: 132
|
Wysłany: 2011-12-05, 20:38
|
|
|
Masz ThisDocument i ActiveDocument zakładam, że śiwadomie????
Proszę wykonać poniższą procedurę i co widać w MsgBox, jaką ma wartość strFullJpgName ?
| Kod: | Option Explicit
Sub Foto()
On Error GoTo Foto_Error
Dim strFullJpgName As String
strFullJpgName = ThisDocument.Path & "\" & "obrazek.jpg"
If FileExists(strFullJpgName) = False Then
MsgBox "Brak pliku " & strFullJpgName
Exit Sub
End If
ActiveDocument.InlineShapes.AddPicture FileName:=(ThisDocument.Path & "\" & "obrazek.jpg"), LinkToFile:= _
False, SaveWithDocument:=True
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
ActiveWindow.ActivePane.VerticalPercentScrolled = 18
'----------------------------------------
Foto_Exit:
Exit Sub
Foto_Error:
MsgBox "Błąd numer: " & Err.Number & vbNewLine & _
"Opis: " & Err.Description & vbNewLine & _
"Procedura: Foto", vbExclamation
Resume Foto_Exit
End Sub
Public Function FileExists(ByVal FileFullName As String) As Boolean
Dim nAttr As Long
On Error GoTo NoFile
nAttr = GetAttr(FileFullName)
If (nAttr And vbDirectory) <> vbDirectory Then
FileExists = True
End If
NoFile:
End Function |
|
|
 | ID posta:
139682
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
huka
forumowicz

Posty: 22
|
Wysłany: 2011-12-05, 22:47
|
|
|
Dzięki Szuszana, za pomocą twojej procedury znalazłem błąd.
Okazało się, że problem tkwi w rozszerzeniu pliku, przyjrzałem się jeszcze raz dokładnie i okazało się, że plik obrazu miał rozszerzenie jpeg a nie jpg i sprawa jasna.
Banalny błąd a potrafi uprzykrzyć życie.
A co miałeś na myśli pytając czy świadomie użyłem ActivDocument i ThisDocument, bo nie bardzo rozumiem pytanie?
Sprawa ma się w ten sposób, że cała procedura ma być wywoływana w aktywnym dokumencie Worda, na którym będzie pracował użytkownik.
Zapytam przy okazji, czy jest możliwość wstawienia automatycznie kilku zdjęć odpowiednio sformatowanych, czy pozostaje wstawianie każdego osobno? |
|
 | ID posta:
139695
|
|
|
 |
szuszana
EXCELent Man

Pomogła: 38 razy Posty: 132
|
Wysłany: 2011-12-05, 23:27
|
|
|
ThisDocument - to dokument, w którym jest ta procedura.
Application.ActiveDocument Property - aktywny dokument, dokument, który ma focus.
I to wcale nie musi być ten sam dokument.
Co rozumiesz przez określenie automatycznie?
Może wystraczy pole INCLUDEPICTURE ?
Może opisz problem. |
|
 | ID posta:
139698
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
Kaper
Excel Expert


Pomógł: 1152 razy Posty: 1626
|
Wysłany: 2011-12-06, 13:43
|
|
|
| huka napisał/a: | Okazało się, że problem tkwi w rozszerzeniu pliku, przyjrzałem się jeszcze raz dokładnie i okazało się, że plik obrazu miał rozszerzenie jpeg a nie jpg i sprawa jasna.
|
no i mamy odpowiedź na moje:
| Cytat: | | ... albo masz jakąś literówkę (np. w nazwie pliku) |
A na ThisDocument/Activedocument ja akurat nie zwróciłem uwagi, mimo, że też powinienem to też wyłapać jako potencjalne źródło błędu
Pozdrawiam, |
_________________ Kaper
Każda trójwymiarowa zwarta i jednospójna rozmaitość topologiczna bez brzegu jest homeomorficzna ze sferą trójwymiarową. Czasem trzeba poczekać sto lat żeby się upewnić. |
|
 | ID posta:
139773
|
|
|
 |
huka
forumowicz

Posty: 22
|
Wysłany: 2011-12-06, 23:37
|
|
|
Masz racje Kaper, wyszło na twoje.
Automatycznie to może źle dobrane słowo. Chciałbym, żeby pliki jpg znajdujące się w tym samym folderze były wstawiane poprzez wywołanie makra. Wstawianie ma dotyczyć kilku plików jednocześnie (np. foto1.jpg, foto2.jpg, foto3.jpg itd..). Po wywołaniu makra zostaną one odpowiednio sformatowane, chodzi o to żeby fajnie zostały porozrzucane w dokumencie, np. dwie fotki obok siebie odpowiednich wymiarów i kolejne w wierszu niżej.
Pojedyncze pliki już wiem jak wstawiać. A żeby wstawiać kilka zapewne trzeba będzie zachachmęcić w ścieżce dostępu do pliku? |
|
 | ID posta:
139833
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
|
|