Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 26392 Skopiuj do schowka 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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 

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 :oops: nie zwróciłem uwagi, mimo, że też powinienem to też wyłapać jako potencjalne źródło błędu :oops:

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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum