C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.7047 の関連記事表示

<< 0 >>
■7047  Re[1]: Excelのバージョンの違いをカプセル化する方法について
□投稿者/ 渋木宏明(ひどり) -(2006/10/02(Mon) 11:41:48)
>

    分類:[C#] 

    > 1.インストールされているExcelのバージョン判別方法

    Excel.Application.Version を参照するのが無難です。
    .dll や .exe が存在していても、それが本当アプリケーション実行に使用されているものかを検査するのは困難です。
    プロパティ値の取得くらいなら、C# でレイトバインドでオートメーションしても大した手間にはなりません。

    > 2.Excelファイルのバージョン判別方法

    調べたことが無いので分かりませんが、エクスプローラから Office ファイルの「プロパティ」を表示した時に「概要」タブに表示される情報の一部として記録されているかもしれないですね。
    ↑の情報の取得については、何度か掲示板等で見かけたことがあります。
    (興味が無かったので具体的な手順は覚えてません)

    > 3.二つのExcel用COMライブラリを一つのプロジェクトで参照するには

    出来ないという前提で進めるしかありません。

    > バージョンによってインターフェース(メソッド名、引数、名前空間)が異なるため、共通化できる部分が何一つとしてなく困っています。

    そんなに違いますか?

    名前空間は IDE が「参照設定」を行う際に勝手につけたものです。
    手動で tlbimp すれば自分で好きなように付け替えられます。

    メソッド名やプロパティ名に関しては「追加」や「拡張」はあると思いますが、「共通化できる部分が何一つ無い」ような状況ではないように見えます。

    引数が「追加」されたメソッドはいくつかありますが、それらに対しては前述のようにレイトバインドでオートメーションで対応する他無いでしょう。
    ただし、C# ではこーどの記述量が増大してしまうのが難点です。

    > それはさておき、参照設定に追加した際、ソリューションエクスプローラの一覧に表示される名前が同じ(Excelというなめ)になるのです。そのため、一つのプロジェクトで二つのExcel用COMライブラリを参照することができず、プロジェクトを分けなければなりません。分ければいいというのはごもっともな意見だと思いますが、今後のために参照設定に追加する際の名前を指定する方法があれば教えてください(あらかじめプロジェクトのどこか設定するのでしょうか)。

    IDE の挙動を制御する方法は知りません。
    手動で tlbimp して、結果を IDE に取り込んでください。

    > 4.2000と2003が共存している環境で、バージョン指定でExcelを開く方法
    > 共存環境を作成し、例えば、2000のCOMライブラリを用いてExcelを起動しようとしたにもかかわらず、
    > 起動するExcelは2003の方です。予想では2000が起動するのかと思っていたので疑問に思っています。
    > ちなみにインストールは最初に2000、次に2003の順に行いました。
    > 何か方法があれば教えてください。

    どうしたいんですか?
    上位バージョンが起動する分には問題ないように思えますが。

記事No.7041 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■7047  Re[12]: 時計回り、反時計回り判定
□投稿者/ Zee -(2007/08/29(Wed) 13:19:20)
>
    No7002 (y4yama さん) に返信
    > ■No6993 (セイン さん) に返信
    > 凸(辺が8本)を紙に書いて、原点oをこの凸の左の外に書いてください。
    > o〜P3〜P4,o〜P4〜P5...というように個々の三角形で(外積/2)=面積に着目すると
    > +や−のkがでてきますね。ここは+、ここは−と塗り潰していくと、
    > 原点の位置には関係なく、三角形の面積が丁度残ることが確認できます。
    > (判りにくいかな? これ以上は説明がヘタでして・・・)
    >
    > 3Dでのある平面だとしたら、2つのベクトルの(外積/2)は,(i,j,k)というベクトルです。
    > その大きさは面積を表します
    >
    > 以上のヒントで、3次元でも成り立つはずだ・・ということがわかってきましたか?

    全くその通りですね。

    付け足すと
    XYが同一の座標でZだけが異なる値とすると
    Zを切り捨てた時(同じ面に正斜投影)した時に、連続する2点が同じ座標になるわけです。
    この例外を避けるように作ればいい。

    ご紹介した公式は同一点が無いことが条件になっているからです。
記事No.6130 のレス /過去ログ18より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -