喫茶XRAYトップページ

[スレッド全体
]

[546] Re5:DelphiでExcelへのSaveAsをしたいんですが。教えてください。返信 削除
2005/12/13 (火) 00:24:51 Mr.XRAY
▼ よしんさん
> 返事が遅れてすみません。明日(今日?)締め切りの仕事していたので。

状況は把握できました.原因もわかりました.解決策の文章を考えたいと思
います.
解決方法は,いくつかありますが,どうしたらやり易いかも課題です.

私も,本日は,職場の故障したパソコンを持込んで修理中ですので,申し訳
ありませんが,明日(既に今日?)ということで...


[552] Re6:DelphiでExcelへのSaveAsをしたいんですが。教えてください。返信 削除
2005/12/13 (火) 21:33:53 Mr.XRAY
▼ よしんさん

お待たせしました.長文です.ご注意下さい.

よしんさんの設定の場合,「サーバーによって例外」のエラーも考えられますが,
このエラーとして説明させて頂きます.
なお,以下の説明は,実際のエラーの発生を確認してのことではありません.
したがって,間違っている可能性もあります.

(1) [コンポーネント][パッケージのインストール]では
    Microsoft Office XP Sample Automation Server Wapper Components
    となっています.
    これは,[カテゴリ]の[Servers]でTExcelApplication等のコンポをFormに
    配置した時に,ExcelXPのコードを使用するぞ!! という意味です.

(2) ところが,実際に使用するExcelはExcel2000である.
    というのが根本的な問題です.
    usesにExcel2000とExcelXPの両方があるは(1)の設定のせいです.

で,解決策ですが,Excel2000用として開発,実行可能アプリの作成と限定
することにします.

(1) Delphi2005を「VCLフォームアプリケーション」モードにします.
    ([ファイル][新規作成]で選択します)
(2) http://homepage2.nifty.com/Mr_XRAY/Delphi/plExcel/index.htm
    の図1と2を参考にして,
    Microsoft Office XP Sample Automation Server Wapper Components
    をパッケージから削除します.
(3) パッケージdcloffice2k90.bplをインストール(追加)します.
    ..\BDS\BINフォル・#95;にあります.
    これで[カテゴリ]Servers]のコンポはExcel2000専用となります.
(4) プログラムのUnitから,ExcelXPを削除します.
    これで,私のエクセル操作フォームと同じコードが使用可能となります.
(5) コードのタイピングにコード補完(?)を利用すると便利です.
    SaveAs( までタイプしたら[Ctrl]+[Space]を押すと,引数の一覧が表示
    されます.これを読むと,必要な引数の数と変数の種類がわかる場合が
    あります.

追記:
では,何故私のエクセル操作フォームでは,Excel97,2000,XP,2003でも使用可能
なのか.
それは,エクセル操作フォームでは,[Servers]のコンポを直接使用(Formに
配置)しないで,コード内で生成しているからです,この時Excel2000用のコ
ードを使用するようになっています.

そして,どうしても他のExcelのバージョンとの違いがある場合は,Excelのバー
ジョンを調査して,分岐処理しているからです.

# ふぅっと...


[553] Re7:DelphiでExcelへのSaveAsをしたいんですが。教えてください。返信 削除
2005/12/13 (火) 22:22:56 よしん
▼ Mr.XRAYさん
ありがとうございます。ばっちりです。
さすがXRAYさんですね。
 
> Excel2000用として開発,実行可能アプリの作成と限定することにします.
この設定ではあくまでもExcel2000用ですね。

> (5) コードのタイピングにコード補完(?)を利用すると便利です.
>     SaveAs( までタイプしたら[Ctrl]+[Space]を押すと,引数の一覧が表示
>     されます.これを読むと,必要な引数の数と変数の種類がわかる場合が
>     あります.

XP用だと引数が一つ多くなっていたのですね。

> コード内で生成
> Excelのバージョンを調査して,分岐処理している

なるほど、やはりそうでしたか!
 
> # ふぅっと...
お疲れさんでした。本当に有難うございました。
お礼にお米(あきたこまち)でも送りたい気分です。

[554] Re8:DelphiでExcelへのSaveAsをしたいんですが。教えてください。返信 削除
2005/12/13 (火) 23:16:05 Mr.XRAY
▼ よしんさん

> お疲れさんでした。本当に有難うございました。
> お礼にお米(あきたこまち)でも送りたい気分です。


いえいえ,よしんさんこそお疲れさま.うまく動作するプログラムを書くと
いうのは大変ですよね.レスが遅くなって申し訳ない.
マスターは昼間留守なもので(開発は主に夜と休日)
(どういう喫茶店なんだ.夜間営業か?)

>私も仲間に入れてください。
どうぞおぢさん仲間になって下さい.喫茶XRAYも是非,時々覗いてやって下さい.

> 今日の朝は雪がたくさん降っていました。おかげで職場では遅刻者が続出です。
>私は歩いて通勤なので遅刻することはありません。


今日(13日)は九州の方でも雪の様です.東京もやってくるのか心配です.

>お礼にお米(あきたこまち)でも送りたい気分です。
あきたこまち食べています.おいしいです.
提供しているコンポ類も,他の方の発言のように,まだまだ問題があるよう
ですし.頂いてしまうと.責任が.... (^^ゞ



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82