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

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

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

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

Python

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

Q&A

解決済

1回答

1609閲覧

PowerPointの編集に使用するAPI

yhaga

総合スコア6

COM

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

Python

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

0グッド

0クリップ

投稿2020/07/28 05:56

PythonでPowerPointの編集等をやりたいと思っておりますが、API(COMオブジェクト使用)がよくわかっておりません。参考になるサイトや参考書等ありましたら、教えていただきたくよろしくお願いいたします。

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

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

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

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

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

sazi

2020/07/28 07:26

回答というほどではないので、こちらに。 「python powerpoint api com」あたりで検索すれば、取り敢えずの取っ掛かり位はHITしますよ。 Pythonでパワポの説明資料(報告書)を生成する https://qiita.com/code_440/items/22e8539da465686496d3
yhaga

2020/07/28 12:07

ありがとうございます。 python-pptxをインストールして実現する方法については、確かに取っ掛かりにはなりそうなのですが、 できればpython-pptxをインストールせずにwin32com.client(COMオブジェクト)でできないか検討してます。無理そうであれば、python-pptxのインストール許可をもらえるか確認してみます。
guest

回答1

0

ベストアンサー

概念的な話になってしまいますが、COMオブジェクトに直截アクセスしてできないことはないと思います。

私自身かなり昔にVC++ですがExcel、WordをCOMオブジェクトで操作するプログラムを作ったことがあります。その時VBAでできることはたいていCOMオブジェクトの操作で可能でした。おそらくPowerPointも同様にVBAで操作できることはCOMオブジェクトで操作可能だと思います。

ただ、実際の作業として、OLE/COM Object Viewer(Visual Studio 2010くらいまでは開発ツールとして付属していた)などで、レジストリに登録されているタイプライブラリなどを確認しながら進めるしかないのではないかと思います。

どういうAPIがあるかは大きなヒントとしてPowerPointのVBAのヘルプが参考になると思います。内部でCOMオブジェクトを呼んでいるので、VBAで使用できるオブジェクトのインターフェース(プロパティやメソッドの引数や戻り値など)は充分参考にできます。

ただし、上記はあくまでVBAでの記述なので実際にCOMオブジェクトを通してPythonで制御される場合はVBAの記述通りに実装してもうまくいかないこともあります。VBAは内部でCOMオブジェクトをうまく処理できるので、簡略化した記述を行うことができますが、COMオブジェクトを直接操作する場合、その省略されている部分もきっちり記述する必要があります。Pythonならではの書き換えが必要になると思いますので、PythonでCOMオブジェクトを操作しているサイトなどを参考に記述していく必要があると思います。

あと、ネットで参考サイトを調べる場合「PowerPoint COMオブジェクト」と検索するより「Office COMオブジェクト」とした方がヒットしやすい傾向があると思います。

とまあ、いろいろ書きましたが、COMオブジェクトを直接操作しての開発はかなりコストが高いと思います。ライブラリを利用できるのであれば、そちらを利用される方が最終的にコストは安いと思いますので検討してみてください。

投稿2020/07/28 16:12

KoichiSugiyama

総合スコア3041

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

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

yhaga

2020/07/29 00:25

ありがとうございます。参考にさせて頂きます。やはり、api調べるだけでも大変そうですね...。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問