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

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

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

全過去ログを検索

<< 0 >>
■6098  マルチレス
□投稿者/ 魔界の仮面弁士 -(2007/08/01(Wed) 02:24:59)
    2007/08/01(Wed) 03:40:01 編集(投稿者)

    No6009 (HiJun さん)
    > oSheet.Cells[1, 1]の値は、Cellオブジェクトですので...
    Cell オブジェクトではなく、Range オブジェクトではないかと。


    No6019 (C#初心者 さん)
    > Microsoft.Excel 11.0 Object Library を参照しています。
    > こういった現象は私のパソコンだけなのでしょうか?
    > Microsoft.Excel 12.0 Object Library だと正常に動きます。
    実行環境の Excel バージョンと、開発環境の Excel バージョンを一致させてください。
    Excel バージョンが異なると、正常に動作しない可能性が高いです。

    たとえば、Workbooks の Open メソッドの引数の数は、Excel のバージョンによって異なります。
    そのほか、古いバージョンでは戻り値が無い(void)メソッドだったのに、あるバージョンからは
    オブジェクトを返すようになっていたり、新たなメソッドが追加されていたりするなど、
    COM インターフェイスの差異が無視できないため、バージョン混在は基本的にできません。


    No6056 (mあ さん)
    > oSheet.Rows(1).Cells(1) とか、書けないのだろうか??
    VBA なら書けますが、C# では書けません。

    C# ではレイトバインドが使えないので、(他の方が書かれているように)キャストが必要です。

    > Cells[]って古い書き方なんじゃ?
    C# では引数付きプロパティがサポートされておらず、インデクサによって処理されるため、
    言語仕様上、Cells[ ] での表現となります。別に古い書き方というわけではありません。


    No6096 (mあ さん)
    > C# じゃなくてすんまそんですが・・・
    申し訳ないですが、質問者の方が混乱してしまいますので、VB6/VBA 系の情報は
    引っ込めて、C# に限定した話でお願いできますでしょうか。>mあ さん


    > 確かに多いけど、1つ目以外は省略可能ですけど・・・
    VBA ならそうなのですが、C# ではそうではありません。

    C# は、省略可能な引数をサポートしていないため、Optional 引数の部分には
    すべて Missing を指定しなければならないのです。


    No6025 (C#初心者 さん)
    > PIAがインストールできていなかったようです。
    PIA を使うか、(自動生成される)IA を使うかで、微妙にコードが異なってきますので、
    サンプル等を真似る際には注意が必要ですね。

    > oXL = new Excel.Application();
    間違いではありませんが、この場合は
     oXL = new Excel.ApplicationClass();
    の方が適切かと思います。(本題とは関係ありませんが)


    > oSheet.Cells[1, 1].Value = "test";
    > 再下行でValueがエラーになります。
    C# で書く場合には、
     Excel.Range oCells = oSheet.Cells;
     Excel.Range oRange = (Excel.Range)oCells[1, 1];
     oRange.Value = "test";
    または、
     Excel.Range oCells = oSheet.Cells;
     Excel.Range oRange = (Excel.Range)oCells[1, 1];
     oRange.set_Value(Type.Missing, "test");
    となります。

    いずれの構文になるのかは、Excel のバージョンによって異なります。
    Excel 2000 以下であれば前者、Excel 2002 以上であれば後者です。
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=7041&KLOG=6

    # ただし、PIA を使っている場合は前者の表現となることもあります。


    いずれにせよ、oCells[1, 1] の戻り値は object 型であるため、C# においては
    Value プロパティを直接呼び出すことができません。(VB ならば呼べるのですが)
    C# では、Excel.Range 型(または、Excel.IRange)へのキャストが必要になります。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■11044  Re[4]: 文字の改行
□投稿者/ Alen -(2007/12/05(Wed) 21:50:27)
>
    No11022 (mあ@反省中 さん) に返信
    > ■No11020 (Alen さん) に返信
    >>■No10998 (mあ@反省中 さん) に返信
    > 
    > bbs.txt に追加書き込みする前に1行分あるかどうか確認してみましたか?
    
     while((str=sr.ReadLine()) == null){
            sr.ReadLine();  //1行読み込む      ←このことですか?
            strs = str.split(',');
            form1.InnerHtml += "名前:" + strs[0]+"<BR>";
            form1.InnerHtml += "内容:" + strs[1]+"<BR>";
    
    > おそらく以下のようなファイル内容になっているのですよね?
    > 
    > ファイル中身:
    > きも,今日は雨が降っている。
    > いも,今日も雨が降っている。
    > 
    > 
    > 提示されたソースだと、上記のファイル内容ならば
    > 名前:きも<br>
    > 内容:今日は雨が降っている。<br>
    > 名前:いも<br>
    > 内容:今日も雨が降っている。<br>
    > 
    > ってなるはずですよね?
    
    2行続けて打たなければなります。
    
    実行結果がこうなってくれればいいのですがいいのですがまったく浮かないです。
    できればソースコードを入れていただきたいです。
    すいません。
    
    
    実行結果
    
    名前:アメジスト
    内容:こんにちは。
    私の名前はアメジストです。
    
    (2行表示です。)
    
    
記事No.10994 のレス /過去ログ24より / 関連記事表示
削除チェック/

■53974  Re[1]: DXFを表示・編集・保存する機能を実装したい
□投稿者/ PATIO -(2010/10/01(Fri) 12:08:20)
    2010/10/01(Fri) 12:18:30 編集(投稿者)

    ImageKit7なんですが、ニュートンの奴ですよね。これってDXFに対応していますか?
    軽く見ただけですけれど対応していないように見えます。
    逆に.NET Framework版なら64bit対応と書いて有りますけれど。

    DXFはAutoCADのバージョンによって違いが有り、
    あるバージョンでは表示がうまく行くのにあるバージョンだとうまく行かないとか
    有りますので気をつけた方が良いと思いますよ。
    できれば、対象にするAutoCADのバージョンをある程度指定した方が良いかもしれません。

    DXF .NET Framework コンポーネント

    で検索してみましたが、C#で使えそうなコンポーネントも幾つかあるようです。
    確認してみられてはどうでしょうか。

    追伸:
    良く見てみたらActiveXとVCLの方にはDXFの記述があるんですね。
    もしメーカーに問合せをしていないのであれば、問合せてみてはどうでしょう。
記事No.53931 のレス /過去ログ90より / 関連記事表示
削除チェック/

■85902  Re[5]: 別のフォーム釦をおす
□投稿者/ WebSurfer -(2017/11/30(Thu) 16:06:52)
    No85891 (しろ さん) に返信
    
    > 「cForm2 なのかな?) のボタンを PerformClick しないと。」ってどうしたらよいのか
    > 意味が分からないのですが・・どうしないといけないんですか?
    
    質問者さんがやっているのは、自フォームのボタンクリックのイベントハンドラで、再度自フォー
    ムのボタンをクリックしているので、永久ループになっているのは分かりますか?
    
    やらなければいけないのは、自フォームのボタンクリックのイベントハンドラで生成した別フォー
    ムの中にあるボタンをクリックしなければならないということは分かりますか?
    
    そうするためには別フォームの中にあるボタンに外部からアクセスできる必要があるのですが、
    デザイナでツールボックスから Button を Form にドラッグ&ドロップするとその Button のアク
    セス修飾子は private になって外部からはアクセスできません。
    
    なので、例えば(あくまで例えばです)、外部から Button にアクセスできるようパブリックプロ
    パティを定義して、それを通じでアクセスすれば望むことができると思います。
    
    具体的には、Form2 というのを作ってそれに Button をドラッグ&ドロップしたとすると、以下
    のようにパブリックプロパティを追加します。
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            // button1 にアクセスするためのパブリックプロパティ
            public Button Button1
            {
                get { return this.button1; }
            }
        }
    }
    
    それを Form1 のボタンクリックで以下のように使います。
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Security.Principal;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f = new Form2();
                f.Button1.Click += Form2ButtonClick;
                f.Show();
                f.Button1.PerformClick();
            }
    
            private void Form2ButtonClick(object sender, EventArgs e)
            {
                MessageBox.Show("button clicked");
            }
        }
    }
記事No.85851 のレス /過去ログ147より / 関連記事表示
削除チェック/

■85907  Re[6]: 別のフォーム釦をおす
□投稿者/ 魔界の仮面弁士 -(2017/11/30(Thu) 21:58:49)
    No85902 (WebSurfer さん) に返信
    > デザイナでツールボックスから Button を Form にドラッグ&ドロップするとその Button のアク
    > セス修飾子は private になって外部からはアクセスできません。

    private が既定値なのは、C# の話ですよね?
    今回の質問は Visual Basic ですよ。

    https://msdn.microsoft.com/ja-jp/library/ms233630.aspx
記事No.85851 のレス /過去ログ147より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -