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

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

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

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

Q&A

解決済

2回答

3667閲覧

Delphi Excel出力時 'interfaceはサポートされていません.' というエラーが出るため、エクセル出力が出来ない。

rozeo

総合スコア14

Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

0グッド

0クリップ

投稿2020/07/10 02:19

編集2020/07/28 07:38

前提・実現したいこと

DelphiでExcelApplicationコンポーネントを用いて、Microsoft365のExcelにDBのレコードを出力したい。
今まで、問題なく動作していたのですが、Excel出力の動作実行時に以下のエラーダイアログが出るようになりました。

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

'interfaceはサポートされていません.'

###状況詳細
Microsoft365のデータをインストールした際に、以前まで使っていたExcel2013が強制的にアンインストールされました
通常の作業で365Excelを開く時は問題ないのですが、今回、コンパイルした実行ファイルからExcel出力動作を行うとエラーが出るようになってしまいました。

該当のソースコード

Delphi

1 // テンプレートの設定 2 strFile := ExtractFileDir(Application.ExeName) + '\hoge.xltx'; 3 ExcelApplication1.Connect; //<<<<<デバッグ時この行でエラーが出ます>>>>> 4 5 // エクセル表示 6 ExcelApplication1.Visible[0] := True; 7 8 // ブックの追加 9 ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(strFile,null,Null,Null,null, 10 null, null,null,null,null,null,null,null,0,0,0)); 11 12 // シートをExcelWorksheetに接続 13 ExcelWorksheet1.ConnectTo( 14 ExcelWorkbook1.Worksheets['Sheet1'] as _Worksheet); 15

試したこと

・実行ファイルによって、365Excelに出力できるか違うようで。どうやら、現在、症状の起きている私のメインPCでコンパイルするとエラーが出る。他のPCでコンパイルされた実行ファイルでは、私のPCで動作させても問題なく365Excelを出力するようです。
また別のPCで、今回のプロジェクトをコンパイルし実行すると、これも問題なく365Excelに出力されるようです。

[訂正]
私のPC環境でのみエラーが起き、他の環境では問題がありませんでした。

・'delphi エクセル インターフェイスはサポートされていません'で検索して下記リンクの方法等は試してみましたが特に変わらずです。

https://living-sun.com/ja/excel/251266-ldquointerface-not-supportedrdquo-error-when-attempting-to-open-excel-from-delphi-excel-delphi.html

http://a23.sblo.jp/article/181504731.html

・また、Office365の再インストールも行いましたが変わらずです。Delphiの再インストールに関しては、会社で提供されたアカウント関係の都合で、避けたいところです。

補足情報

<Delphi> Embarcadero® Delphi 10.1 Berlin
<Ecxel> Microsoft® Excel® for Microsoft 365 MSO (16.0.13001.20254) 64ビット

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

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

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

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

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

guest

回答2

0

別PCで構築したプログラムで問題なく動作するという事は、Excelは正常と思います。
(試したことのURLの内容は、Excelに問題がある場合の修復方法です)

構築環境によって動作結果が変わるという事は、ExcelApplicationの中身が異なる可能性はないでしょうか。
例えばDelphi付属の物でも、Office2000用、OffceXp用、Office2010用の3種類あるので、構築環境によって違ったりしてませんか?

投稿2020/07/10 11:11

FKD

総合スコア268

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

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

rozeo

2020/07/28 07:42

解決の際にヒントになりました。ありがとう御座います。 Office2010用がある事も知らなかったため勉強になりました。 下記のページも参考になりましたので、備忘録を兼ねて、合わせて貼っておきます。 http://mrxray.on.coocan.jp/Delphi/Others/ServersCompo.htm
guest

0

自己解決

新しくインストールしたOffice365のバージョンが64bitなのに対して、Delphiのコンパイル形式は32bitでした。
初歩的なミスで、お騒がせしました。

投稿2020/07/28 07:40

rozeo

総合スコア14

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

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

FKD

2020/07/28 08:34

なるほど、32bitのExcelApplicationコンポーネントは、32bitのOfficeしか扱えないのですね。 CreateOleObject等であれば、どちらでも問題なく扱えるので盲点でした・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問