Windows のプロジェクトを OSXに移植する作業を行っています。OSX Word 2011 の VBA でPOST をサーバーに送信できないという問題を解決し、外部スクリプトから文字列の結果を返す方法を見つけました。ここで、外部スクリプトのリターンを使用して構築された URL から Word ファイルに画像を挿入する必要があります。
現在の試みは次のとおりで、Windows では機能しますが、OSX では Word がクラッシュします。
Selection.InlineShapes.AddPicture FileName:=File_Name, _
LinkToFile:=False, SaveWithDocument:=True
いくつかの調査を行った後、MS が「セキュリティ リスク」として OSX でこの機能を無効にした可能性があるようです。私はまだそれを機能させる必要があります。Office 2011のVBA内でこれを機能させる方法、または回避策を禁止する方法を知っている人はいますか? 可能であれば、イメージ ファイルをディスクに書き込まないようにしています。
更新: URL から画像ファイルを取得するための Python スクリプトを作成しましたが、この画像を Python スクリプトから VBA に取得し、そこからカーソルの場所にある Word ドキュメントに取得する方法はまだわかりません。スクリプトの重要な部分を以下に示します。画像はPIL
オブジェクトとして読み込まれ、問題なく表示できますimg.show()
が、これがどのファイルタイプであるか、または 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
上記のargs.webAddr
とは、ライブラリargs.filename
を使用してスクリプトに渡されることに注意してください。argparse
このスクリプトは機能し、期待どおりの画像ファイルが表示されます。その画像を Word 2011 for OSX に取り込み、カーソルの下に挿入する方法についてのアイデアはありますか?
どうもありがとう!
編集: github に移行してから、プロジェクトへのリンクを更新しました。