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

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

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

No.7559 の関連記事表示

<< 0 >>
■7600  Re[8]: Excelのバージョンの違いについて
□投稿者/ 魔界の仮面弁士 -(2006/10/18(Wed) 16:32:39)

    分類:[C#] 

    No7591に返信(mimaさんの記事)
    > すみません、どうも確認したらしているようです。。
    「遅延バインド」だとしたら、コンパイル時に型の違いが
    判断される事は無いでしょうし。(^^;


    > うーん、前任者から遅延バインドと聞いていたんですが??
    「基本的には事前バインド、一部遅延バインド」なのかも。

    で、Excel のインターフェイスは、バージョン間でバイナリ互換性が薄いので、
    事前バインドするなら、『それぞれのバージョン用にアセンブリを分ける』か、
    あるいは『すべて遅延バインド』にするか、いずれかの選択肢となるでしょう。

    # VBA や VB6 であれば、さほど問題の無いところなんですけれどね…。
    # C# からだと、Excel の違いを吸収するのは大変かも。



    No7563 への追記
    > Application オブジェクトの Version プロパティの結果を元にして
    このプロパティの戻り値は、数値以外の文字列を返すことがあるので要注意。
    http://support.microsoft.com/kb/232652/en-us
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7591  Re[7]: Excelのバージョンの違いについて
□投稿者/ mima -(2006/10/18(Wed) 15:09:11)

    分類:[C#] 


    >>ところで…… Excel のライブラリを参照設定したりはしていませんよね?
    >>(No7559で“遅延バインド”だと書いておられるので、大丈夫だとは思いますが…)
    >
    > これはしていません。

    すみません、どうも確認したらしているようです。。
    うーん、前任者から遅延バインドと聞いていたんですが??
    ちょっと、コード全体を見直してみます。
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7587  Re[6]: Excelのバージョンの違いについて
□投稿者/ mima -(2006/10/18(Wed) 14:43:58)

    分類:[C#] 


    > 「Excel 97 の環境で実行すると、エラーが発生する」という事ではなく、
    > 「Excel 97 の環境でコンパイルすると、エラーが発生する」のでしょうか。
    >
    > どのようなコードを書いて、どの部分で、どのようなエラーが発生しているのか、
    > 『コンパイルで怒られる』という状況についての情報を提示してください。

    コンパイルで、エラーになってます。
    単純に、97だったら返り値なしで、それ意外なら返り値のあるコードに変えたんですが、
    97だと「voideをオブジェクトに変更できない。」といわれます。

    元のコード
    /// <summary>
    /// Range.Copy()
    /// </summary>
    public void Copy(XlsRange range) {
    _Obj.Copy(range.Obj);
    }

    今のコード
    public void Copy(XlsRange range) {
    if(_Version.Equals(XlsVersion.Excel97)) {
    _Obj.Copy(range.Obj);
    }else{
    Object myObj;
    myObj = _Obj.Copy(range.Obj);
    }
    }


    > ところで…… Excel のライブラリを参照設定したりはしていませんよね?
    > (No7559で“遅延バインド”だと書いておられるので、大丈夫だとは思いますが…)

    これはしていません。
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7586  Re[5]: Excelのバージョンの違いについて
□投稿者/ 魔界の仮面弁士 -(2006/10/18(Wed) 14:29:07)

    分類:[C#] 

    No7584に返信(mimaさんの記事)
    > バージョンごとに直して、
    > 97は返り値なし、それ以外は有にしたのですが、
    > 97でコンパイルすると、怒られてしまいます。

    ……具体的には、どういう意味でしょうか?

    「Excel 97 の環境で実行すると、エラーが発生する」という事ではなく、
    「Excel 97 の環境でコンパイルすると、エラーが発生する」のでしょうか。

    どのようなコードを書いて、どの部分で、どのようなエラーが発生しているのか、
    『コンパイルで怒られる』という状況についての情報を提示してください。


    ところで…… Excel のライブラリを参照設定したりはしていませんよね?
    (No7559で“遅延バインド”だと書いておられるので、大丈夫だとは思いますが…)
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7584  Re[4]: Excelのバージョンの違いについて
□投稿者/ mima -(2006/10/18(Wed) 13:44:14)

    分類:[C#] 

    バージョンごとに直して、
    97は返り値なし、それ以外は有にしたのですが、
    97でコンパイルすると、怒られてしまいます。

    No7563に返信(魔界の仮面弁士さんの記事)
    > >>だとすれば、Excel 97 までは戻り値の無い(void)メソッドでしたが、
    > >>2000 以上ではバリアント(object)を返すメソッドに変更されています。
    >>だとすると、別々に作成しないとダメだということでしょうか。。
    >
    > Application オブジェクトの Version プロパティの結果を元にして
    > Excel バージョンを判定する事ができますよ。
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7563  Re[3]: Excelのバージョンの違いについて
□投稿者/ 魔界の仮面弁士 -(2006/10/17(Tue) 22:34:00)

    分類:[C#] 

    >>だとすれば、Excel 97 までは戻り値の無い(void)メソッドでしたが、
    >>2000 以上ではバリアント(object)を返すメソッドに変更されています。
    > だとすると、別々に作成しないとダメだということでしょうか。。

    Application オブジェクトの Version プロパティの結果を元にして
    Excel バージョンを判定する事ができますよ。
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7561  Re[2]: Excelのバージョンの違いについて
□投稿者/ mima -(2006/10/17(Tue) 22:11:26)

    分類:[C#] 


    > Range クラスの Copy メソッドの事で良いでしょうか?

    そうです。
    すみません、説明が下手で。。

    > だとすれば、Excel 97 までは戻り値の無い(void)メソッドでしたが、
    > 2000 以上ではバリアント(object)を返すメソッドに変更されています。

    だとすると、別々に作成しないとダメだということでしょうか。。
記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7560  Re[1]: Excelのバージョンの違いについて
□投稿者/ 魔界の仮面弁士 -(2006/10/17(Tue) 21:54:52)

    分類:[C#] 

    > セルのコピーだけがうまくいきません。

    Range クラスの Copy メソッドの事で良いでしょうか?

    だとすれば、Excel 97 までは戻り値の無い(void)メソッドでしたが、
    2000 以上ではバリアント(object)を返すメソッドに変更されています。


    具体的には、こんな定義です。
    -----------------

    [uuid(00020846-0001-0000-C000-000000000046)]
    interface IRange : IDispatch
    {
    // Excel 8
    // HRESULT _stdcall Copy([in, optional] VARIANT Destination);

    // Excel 9, 10, 11
    HRESULT _stdcall Copy(
    [in, optional] VARIANT Destination,
    [out, retval] VARIANT* RHS);
    }


    [uuid(00020846-0000-0000-C000-000000000046)]
    dispinterface Range
    {
    methods:
    // Excel 8
    // [id(0x00000227)]
    // void Copy([in, optional] VARIANT Destination);

    // Excel 9, 10, 11
    [id(0x00000227)]
    VARIANT Copy([in, optional] VARIANT Destination);
    }

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

■7559  Excelのバージョンの違いについて
□投稿者/ mima -(2006/10/17(Tue) 20:48:28)

    分類:[C#] 


    分類:[C#] 

    前任者が、Excelのバージョンをカプセル化して、
    作成したものを直しているのですが、
    セルのコピーだけがうまくいきません。

    遅延バインドを使用しているのですが、
    Excel97の環境でコンパイルしたものは、97では動くのですが、
    Excel2003では動かず「メソッドが見つかりません。」というエラーになります。
    もちろん逆もできません。


    /// <summary>
    /// Range カプセルクラス
    /// </summary>
    public class XlsRange {

    public XlsRange() {
    //
    // TODO: コンストラクタ ロジックをここに追加してください。
    //
    }
    public XlsRange(Excel.Range range){
    _Obj = range;
    }
    /// <summary>
    /// 保持Range
    /// </summary>
    private Excel.Range _Obj;
    public Excel.Range Obj {
    get {
    return _Obj;
    }
    set {
    _Obj = value;
    }
    }

    /// <summary>
    /// Range.Copy()
    /// </summary>
    public void Copy(XlsRange range) {
    _Obj.Copy(range.Obj);
    }
    }

    なにか、ヒントでもいいのでよろしくお願いします。
親記事 /0過去ログ7より / 関連記事表示
削除チェック/

■7559  Re[9]: WEBアプリケーションをサーバーに移行して表示されたエラー
□投稿者/ 渋木宏明(ひどり) -(2007/09/08(Sat) 00:59:56)
>
    > ただの仮想ディレクトリの様な気もしてきました・・・
    > 再度、見直したいのですが参考になるURL等ございますでしょうか?

    いやー、そんなんは検索する前にヘルプや書籍でも読んで調べてみることなのでは。。。

    IIS 管理ツール起動して、そのディレクトリのプロパティ表示して、適当にタブめくってれば見つかりませんか?
記事No.7394 のレス /過去ログ19より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -