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

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

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

全過去ログを検索

<< 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より / 関連記事表示
削除チェック/

■7048  Re[10]: 出来ました!
□投稿者/ 風影 -(2006/10/02(Mon) 11:42:18)

    分類:[VC++(C++/CLI)] 

    No7042に返信(風影さんの記事)
    > お騒がせして申し訳ありませんでした。
    > コメントアウト部分が間違っていたようで・・・。
    > Blueさん、ありがとうございました。
    >
記事No.6969 のレス / END /過去ログ6より / 関連記事表示
削除チェック/

■39474  Re[1]: ASP.NET:Cookie機能の使い方
□投稿者/ もりお -(2009/08/09(Sun) 12:42:48)
    No39471 (Lisa さん) に返信

    ボタン押下時のイベント発生の順番が問題なのではないかと思います。
    ページロードイベントはボタンクリックイベントの前に発生します。

    Page_Load
       クッキーを読み込んでテキストボックスにセット
      ↓
    Button_Click
       テキストボックスの値をクッキーに保存
記事No.39471 のレス /過去ログ68より / 関連記事表示
削除チェック/

■97893  Re[3]: IEからEdgeへの移行について
□投稿者/ 魔界の仮面弁士 -(2021/08/04(Wed) 18:42:09)
    No97892 (RS さん) に返信
    > 実行フォルダーに、msedgedriver.exeが配置はされているのですが
    > 1つ気になる点がありまして、msedgedriver.exeのほかに、WebDriver.dllとWebDriver.xmlも
    > 一緒に配置されます。これは問題ないのでしょうか?
    > これらの更新日時が2018年となっているので気になって、、、

    Selenium4 ではなく、Selenium3 をお使いでしょうか。

    NuGet で Selenium.WebDriver を参照しているのだとすれば、パッケージのリリース日が
     2018-10-31T20:51:53Z バージョン 3.141.0
     2020-11-10T14:53:21Z バージョン 4.0.0-alpha07
     2021-06-07T17:28:51Z バージョン 4.0.0-beta4
    となっていますね。


    どのように構築したのか、詳細な環境を明示できますか?

    1) Visual Studio のバージョン
    2) プロジェクトのターゲット フレームワーク
    3) NuGet 参照がある場合、プロジェクトは PackageReference と packages.config のいずれの方式にしているか
    4) NuGet 参照がある場合、何を含めたか。手動で参照設定したものはあるか。
    5) WebDriver.dll のファイルバージョンおよび更新日時

    --- 手元の環境 ---
    1) VS2019 v16.10.4
    2) .NET Framework 4.8
    3) PackageReference
    4) "Selenium.WebDriver" ; 4.0.0-beta4
      "Selenium.WebDriver.MSEdgeDriver" ; 92.0.902.62
    5) 4.0.0.0 ; 2021/06/08 02:10:50
記事No.97888 のレス /過去ログ170より / 関連記事表示
削除チェック/

■97896  Re[4]: IEからEdgeへの移行について
□投稿者/ RS -(2021/08/05(Thu) 09:41:59)
    No97893 (魔界の仮面弁士 さん) に返信
    > ■No97892 (RS さん) に返信
    >>実行フォルダーに、msedgedriver.exeが配置はされているのですが
    >>1つ気になる点がありまして、msedgedriver.exeのほかに、WebDriver.dllとWebDriver.xmlも
    >>一緒に配置されます。これは問題ないのでしょうか?
    >>これらの更新日時が2018年となっているので気になって、、、
    >
    > Selenium4 ではなく、Selenium3 をお使いでしょうか。
    >
    > NuGet で Selenium.WebDriver を参照しているのだとすれば、パッケージのリリース日が
    >  2018-10-31T20:51:53Z バージョン 3.141.0
    >  2020-11-10T14:53:21Z バージョン 4.0.0-alpha07
    >  2021-06-07T17:28:51Z バージョン 4.0.0-beta4
    > となっていますね。
    >
    >
    > どのように構築したのか、詳細な環境を明示できますか?
    >
    > 1) Visual Studio のバージョン
    > 2) プロジェクトのターゲット フレームワーク
    > 3) NuGet 参照がある場合、プロジェクトは PackageReference と packages.config のいずれの方式にしているか
    > 4) NuGet 参照がある場合、何を含めたか。手動で参照設定したものはあるか。
    > 5) WebDriver.dll のファイルバージョンおよび更新日時
    >
    > --- 手元の環境 ---
    > 1) VS2019 v16.10.4
    > 2) .NET Framework 4.8
    > 3) PackageReference
    > 4) "Selenium.WebDriver" ; 4.0.0-beta4
    >   "Selenium.WebDriver.MSEdgeDriver" ; 92.0.902.62
    > 5) 4.0.0.0 ; 2021/06/08 02:10:50

    Seleniumはパッケージマネージャコンソールウィンドウからインストールしました。
    参照に追加されたWebDriverのバージョンを確認したところ、3.141.0となっていました。
    これが原因ですかね、、、

    開発環境は以下となります。
    1) VS2019 v16.7.5
    2) .NET Framework 4.5.2
    3) packages.config
    4)
    5) 3.141.0 ; 2018/10/31 &#8207;&#8206;9:53:56

    すみません4)に関してはよく分かりません、、、手動で参照設定したものはないとないです。
    とりあえずSelenium4を参照するようにしてみます!
    ご丁寧にありがとうございます。



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

■98013  Re[1]: TextBoxのフォーマット
□投稿者/ 魔界の仮面弁士 -(2021/08/24(Tue) 16:15:03)
    No98010 (たかし さん) に返信
    > TextBoxのフォーマットを「12,345,678」にするために、

    TextBox1.Text を NumericUpDown1.Value に差し替えるのは如何ですか?

    NumericUpDown ならば、最初から数値しか入力できなくなりますし、
    3 桁区切りも ThousandsSeparator プロパティの設定だけで済みます。
    最小値・最大値・小数点桁数なども制限できますよ。

    TextBox では文字列を返す Text プロパティを扱いましたが、
    NumericUpDown ではそれの代わりに、数値を返す Value プロパティを使うことになります。



    > TextBox.Text = CStr(Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text))

    ・TextBox の名前を、型名と同一の "TextBox" にするのは、混乱を招くので避けましょう。
    ・Val の利用はお奨めしません。特定の文字列に対して変換エラーを起こすことがあります。


    文字列の数値化が目的なら、Decimal.TryParse メソッドの利用をお奨めしておきます。


    > TextBox.Text = CStr(Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text))
    この時点で、 String → Double → String という変換が発生しています。

    > If TextBox.Text = "" Then
    となれば、この時点で "" になることは無いはず。

    > TextBox.Text = String.Format("{0:##,###,###}", CLng(TextBox.Text))
    先ほどは String → Double → String したものを、さらに
    String → Long → String と変換していますね。
    であれば、最初にわざわざ CStr せずとも、数値型の変数に受けて処理した方が良いでしょう。

    また、3 桁区切りを ##,###,### 指定にしていますが、
    その場合、数値ゼロが "0" ではなく "" になります。
    もしも N0 書式にすれば、ゼロを "0" と変換できます。
記事No.98010 のレス /過去ログ170より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -