重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

C#でパワーポイントの資料を立ち上げて表示したいと思っていますが、
うまくいきません。
どうかアドバイスをよろしくお願いします。

使用している環境は
Windows XP
Office 2003
Visual Studio 2005
です。

私が書いたソースは下記の通りです。
これを実行すると、パワーポイントのからっぽのものが
立ち上がりpptpathでしているファイルの中身が表示されない
状態となります。

よろしくお願いいたします。

以下、内容-------------------
「参照」でMicrosoft Object Libraryを読み込んでおり、
また以下をusingで指定します。

using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;

・・・・以下が関数の該当部分です。

ApplicationClass app = new ApplicationClass();
app.Visible = MsoTriState.msoTrue;
Presentation ppt = app.Presentations.Open(pptpath,
MsoTriState.msoFalse,
MsoTriState.msoFalse,
MsoTriState.msoFalse);
app.Activate();

よろしくお願いします。

A 回答 (2件)

追記。



第2パラメータは、特に「"open"でなければならない」と言う事はありません。

このパラメータは「ファイルの関連付けのリストの、どれを行うかを指示するもの」です。

例えば、MS-Word(ワード)の文書であれば、関連付けは、レジストリの
HKEY_CLASSES_ROOT\Word.Document.8\shell
にあります(バージョンによって多少異なります)

ここには、普通の状態であれば「New」「open」「print」「printto」のキーがあります。

つまり「ファイルの関連付けで出来る事が、4つある」と言う事で、言い換えれば「ShellExecuteの第2パラメータに"New"、"open"、"print"、"printto"の4つのうちのどれかを指定出来る」と言う事です。
    • good
    • 0

ShellExecute(hWnd,"open","C:\\Documents and Settings\\User\\My Documents\\UserFile.ppt",NULL,""C:\\Documents and Settings\\User\\My Documents",SW_SHOWDEFAULT);



以上。

このAPI関数は「シェルに対し、指定したファイルを、指定のディレクトリをカレントディレクトリとして開け」と言うだけです。

与えた「指定したファイル」が何のファイルかは関知しません。

もし、拡張子が「パワーポイントのファイルの拡張子」であれば、シェル(エクスプローラー)が「ファイルの関連付け」から該当の拡張子を捜し、その拡張子のファイルを扱うアプリケーションを起動し、指定したファイルをアプリに渡します。

但し「どのアプリが起動されるかは、そのパソコンの、ファイルの関連付けに依存する」ので「パワーポイントが立ち上がるとは限らない」ので注意する事。

場合によっては「関連付けがなく、何も動かないか、アプリ選択ダイアログが出る」とか「OpenOfficeなど、パワーポイントの互換ソフトが起動」するかも知れない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!