質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

725閲覧

PythonでPowerPointファイルを編集

yhaga

総合スコア6

COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/28 05:39

前提・実現したいこと

添付ファイルのようなPowerPointのファイルがあります。イメージ説明
これを読み込んでファイル名の部分に実際の画像ファイルを表示してくれるようなプログラム(COMオブジェクト使用)を作成したいと考えてます。また、CSVの場合はCSVを読み込んで表を出せたらと考えてます。また、画像ファイルや表を出したファイルを新規ファイルとして保存したいです。すいませんが、お詳しい方いらっしゃいましたらご教授頂きたくよろしくお願いいたします。
画像ファイルやCSVファイルはPowerPointのファイルと同じところに置いてます。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Python

試したこと

補足情報(FW/ツールのバージョンなど)

試す以前にCOMオブジェクトのAPIについてよくわかっておりません。
この辺の学習方法(サイトや参考書)などもしありましたらご教授頂けたら嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bboydaisuke

2020/07/28 12:27

重複した質問で https://teratail.com/questions/280825 答えも同じです。 PowerPoint の COM インターフェイスのリファレンス https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.application もありますが、普通に python-pptx を使った方がよいですよ。どうしても COM でやりたいなら office vba プログラミングとか書いてある本を買ってきて勉強したらよいですけど、学習コストは相当高いです。
yhaga

2020/07/28 12:39

ありがとうございます。 COMはリファレンスかVBAからでないと厳しいのですね、認識はあったのですが調べるのに時間を要してしまい中々前に進まなくて、これとは別にAPIに関する質問(280825)をしてました。 COMでは難しく、python-pptxで今回の画像埋め込みやCSVの件も対応が可能なのであれば、検討してみます。
mako1972

2020/07/29 14:12

pythonもいいですね。
guest

回答1

0

自己解決

TextFrameを一旦消して、AddPictureで画像が入ることは確認しました。
ただ、shapeをループして回していた場合に、今回変更したshape(TextからPicture)を参照した際に
PictureではなくTextと判断しておかしな処理を行ってました。そのため、shapeのループを再度やり直すような処理に変えたところうまくいきました。お騒がせしました。
(VB or VBAの回答と一緒です。)

投稿2020/08/06 00:33

yhaga

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問