Pracuję nad przeniesieniem project in Windows na system OSX. Mam problemy z VBA dla OSX Word 2011 not allowing you to send POSTs to a server i zorientowali się, how to return a string result from an external script. Teraz muszę wstawić obraz do mojego pliku Word z adresu URL zbudowanego za pomocą zwrotu mojego zewnętrznego skryptu.Dodawanie obrazu z adresu URL w programie Word 2011 dla systemu Mac OSX przy użyciu języka VBA
Obecna próba jest następujący, i pracuje w systemie Windows, ale wywala Słowo w OSX:
Selection.InlineShapes.AddPicture FileName:=File_Name, _
LinkToFile:=False, SaveWithDocument:=True
Po robi jakieś badania, to wygląda jak MS może wyłączyć tę funkcję w OSX jako „zagrożenie dla bezpieczeństwa” . Nadal muszę to usprawnić. Czy ktoś wie, w jaki sposób VBA dla Office 2011, aby to działało, lub z wyjątkiem tego obejścia? Próbuję uniknąć zapisywania pliku obrazu na dysk, jeśli to możliwe.
UPDATE: Stworzyłem skrypt Pythona na uzyskanie plik obrazu z adresu URL, ale nadal nie wiem, jak się to zdjęcie ze skryptu Pythona w VBA, a stamtąd do dokumentu programu Word Pod lokalizacja kursora. Ważne fragmenty skryptu znajdują się poniżej. Obraz jest odczytywany jako obiekt PIL
i mogę go wyświetlić, używając tylko img.show()
, ale nie jestem pewien, jaki to typ pliku lub jak go przekonać do VBA.
# Import the required libraries
from urllib2 import urlopen, URLError
from cStringIO import StringIO
from PIL import Image
# Send request to the server and receive response, with error handling!
try:
# Read the response and print to a file
result = StringIO(urlopen(args.webAddr + args.filename).read())
img = Image.open(result)
img.show()
except URLError, e:
if hasattr(e, 'reason'): # URL error case
# a tuple containing error code and text error message
print 'Error: Failed to reach a server.'
print 'Reason: ', e.reason
elif hasattr(e, 'code'): # HTTP error case
# HTTP error code, see section 10 of RFC 2616 for details
print 'Error: The server could not fulfill the request.'
print 'Error code: ', e.code
Zauważ, że w powyższym args.webAddr
i args.filename
są przekazywane do skryptu przy użyciu biblioteki argparse
. Ten skrypt działa i wyświetli plik obrazu, którego oczekuję. Wszelkich pomysłów, jak uzyskać ten obraz w programie Word 2011 dla OSX i wstawić go pod kursorem?
Wielkie dzięki!
Edytuj: zaktualizował link do projektu po migracji do github.
Tak, Vba na Macu to horror. Utknąłem z samym kodem. Mam nadzieję, że odpowiedź, którą otrzymałeś, działa dla ciebie :) – Kathara