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

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

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

No.6004 の関連記事表示

<< 0 | 1 >>
■6004  Excel セルより読込
□投稿者/ C#初心者 -(2007/07/29(Sun) 06:52:33)

    分類:[C#] 

    C#の初心者です。

    エクセルのセルにデータを送るのはわかりました。
    oSheet.Cells[1, 1] = str;
    逆はどうしたらいいのでしょうか?
    str = oSheet.Cells[1, 1].ToString();
    ?????
    うまくいきません。

    誰か助けてください。
    よろしくお願いします。
親記事 /過去ログ16より / 関連記事表示
削除チェック/

■6005  Re[1]: Excel セルより読込
□投稿者/ IIJIMAS -(2007/07/29(Sun) 11:30:09)
    No6004 (C#初心者 さん) に返信
    > C#の初心者です。
    >
    > エクセルのセルにデータを送るのはわかりました。
    > oSheet.Cells[1, 1] = str;
    > 逆はどうしたらいいのでしょうか?
    > str = oSheet.Cells[1, 1].ToString();
    > ?????
    > うまくいきません。
    >
    > 誰か助けてください。
    > よろしくお願いします。
    >

    Range メンバ
    http://msdn2.microsoft.com/ja-jp/library/microsoft.office.interop.excel.range_members(VS.80).aspx

    ValueかValue2が必要なのではなかったでしょうか。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6008  Re[2]: Excel セルより読込
□投稿者/ 片桐 -(2007/07/29(Sun) 19:07:25)
>
    IIJIMASさんのリンク先の記事(rangeオブジェクトのメンバー)のとおりかと。

    oSheet.Cells[1, 1] = str;

    実は、これは、
    oSheet.Cells[1,1].value = str;
    と書くべきところを「コンパイルエラーにならない」「実際に動いてしまう」ことから、「.value」の存在を忘れてしまって起きてしまってることですね。

    過去ログ13の記事No.4178 あたりがそのお話です。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6007  Re[2]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/29(Sun) 19:04:14)
    No6005 (IIJIMAS さん) に返信
    ご回答、ありがとうございます。
    なにぶん初心者なものでRangeメンバのことがよくわかっていません。
    もう少し教えてください。
    Microsoft.Office.Interop.Excel のことがよくわかっていません。
    Excel2007をインストールしているパソコンでMicrosoft.Excel 12.0 Object Library を参照追加すると
    using Excel = Micorsoft.Office.のうしろにInteropとCoreが出てきます。
    using Excel = Micorsoft.Office.Interop.Excel;
    と書くと正常に認識します。
    しかし、Excel2003をインストールしているパソコンでMicrosoft.Excel 11.0 Object Library を参照追加すると
    using Excel = Micorsoft.Office.のうしろにCoreだけしか出てきません。
    当然、
    using Excel = Micorsoft.Office.Interop.Excel;
    と書くと、エラーになります。
    Excel2003の場合には、この行を省略しても、セルにデータを書き込めます。
    しかし、セルのデータを読み込めません。
    Interopについて教えてもらえませんか?
    お手数をおかけします。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6009  Re[3]: Excel セルより読込
□投稿者/ HiJun -(2007/07/29(Sun) 20:27:49)
    前にも同じ質問があった気がする...

    値の参照や取得は、IIJIMASさんや片桐さんのおっしゃる通りで、
    Valueを使用するべきです。
    oSheet.Cells[1, 1]の値は、Cellオブジェクトですので...
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6019  Re[4]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 09:31:12)
    No6009 (HiJun さん) に返信
    いろいろなアドバイス、ありがとうございます。
    Valueのことはぼんやりと理解していたのですが、
    using Excel = Micorsoft.Office.Interop.Excel;
    と書くとエラーになるため、
    Valueも書けませんでした。
    Microsoft.Excel 11.0 Object Library を参照しています。
    こういった現象は私のパソコンだけなのでしょうか?
    Microsoft.Excel 12.0 Object Library だと正常に動きます。
    何が足りないのでしょうか?
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6022  Re[5]: Excel セルより読込
□投稿者/ HiJun -(2007/07/30(Mon) 12:53:26)
    そもそも、参照しているバージョンが違うので
    操作も異なるのではないかと思います。

    using Excelを使用するのをやめてみてはいかがですか?
    参照設定でExcel Libraryを追加して
    ソースの中でNameSpace付で書くような感じでしょうか。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6021  Re[5]: Excel セルより読込
□投稿者/ 特攻隊長まるるう -(2007/07/30(Mon) 12:48:16)
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6025  Re[6]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 15:16:58)
    No6021 (特攻隊長まるるう さん) に返信
    いろいろなご回答、ありがとうございました。
    HiJunさんのアドバイスは、私には難しすぎるようです。
    特攻隊長まるるうさんのアドバイスで解決しました。
    PIAがインストールできていなかったようです。
    OfficeXPでは別途インストールしなければならないように理解していたのですが、
    Excel2003では自動でインストールされるみたいな勘違いをしていました。
    指示するか完全にインストールしなければならなかったようです。
    using Excel = Microsoft.Office.Interop.Excel;
    でのエラーは無くなりました。

    しかし、片桐さんのアドバイスのように、
    oSheet.Cells[1,1].value = str;
    とすると、
    objectにValueの定義がありません。
    とエラーになります。
    Valueの必要性は理解したつもりなんですが…。

    using System.Reflection;
    using Excel = Microsoft.Office.Interop.Excel;
    |
    |
    |
    string strFileName = System.Windows.Forms.Application.StartupPath + @"\サンプル.xls";

    Excel.Application oXL;
    Excel._Workbook oWB;
    Excel._Worksheet oSheet;

    oXL = new Excel.Application();
    oXL.Visible = true;

    oWB =
    oXL.Workbooks.Open(strFileName,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing);

    oSheet = (Excel._Worksheet)oWB.ActiveSheet;
    oSheet.Cells[1, 1].Value = "test";

    再下行でValueがエラーになります。
    何が足りないのでしょうか?
    アドバイス、お願いします。

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

■6029  Re[7]: Excel セルより読込
□投稿者/ IIJIMAS -(2007/07/30(Mon) 16:15:27)
    No6025 (C#初心者 さん) に返信
    > ■No6021 (特攻隊長まるるう さん) に返信
    > いろいろなご回答、ありがとうございました。
    > HiJunさんのアドバイスは、私には難しすぎるようです。
    > 特攻隊長まるるうさんのアドバイスで解決しました。
    > PIAがインストールできていなかったようです。
    > OfficeXPでは別途インストールしなければならないように理解していたのですが、
    > Excel2003では自動でインストールされるみたいな勘違いをしていました。
    > 指示するか完全にインストールしなければならなかったようです。
    > using Excel = Microsoft.Office.Interop.Excel;
    > でのエラーは無くなりました。
    >
    > しかし、片桐さんのアドバイスのように、
    > oSheet.Cells[1,1].value = str;
    > とすると、
    > objectにValueの定義がありません。
    > とエラーになります。
    > Valueの必要性は理解したつもりなんですが…。
    >
    > using System.Reflection;
    > using Excel = Microsoft.Office.Interop.Excel;
    > |
    > |
    > |
    > string strFileName = System.Windows.Forms.Application.StartupPath + @"\サンプル.xls";
    >
    > Excel.Application oXL;
    > Excel._Workbook oWB;
    > Excel._Worksheet oSheet;
    >
    > oXL = new Excel.Application();
    > oXL.Visible = true;
    >
    > oWB =
    > oXL.Workbooks.Open(strFileName,
    > Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    > Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    > Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    > Type.Missing, Type.Missing);
    >
    > oSheet = (Excel._Worksheet)oWB.ActiveSheet;
    > oSheet.Cells[1, 1].Value = "test";
    >
    > 再下行でValueがエラーになります。
    > 何が足りないのでしょうか?
    > アドバイス、お願いします。
    >

    各オブジェクトを1行ずつ適切に
    Excel.Workbookインターフェース
    Excel.Worksheetインターフェース
    Excel.Rangeインターフェース
    にキャストしてみてはどうでしょうか。
    ピリオドを打つことでIntelliSenseによってメンバがでませんか。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6031  Re[8]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 16:39:13)
    No6029 (IIJIMAS さん) に返信
    > ピリオドを打つことでIntelliSenseによってメンバがでませんか。

    メンバが出なくて悩んでいるのです。
    何が悪いのでしょう?
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6033  Re[9]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 16:40:29)
    No6031 (C#初心者 さん) に返信
    > ■No6029 (IIJIMAS さん) に返信
    >>ピリオドを打つことでIntelliSenseによってメンバがでませんか。
    >
    > メンバが出なくて悩んでいるのです。
    > 何が悪いのでしょう?
    >
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6044  Re[10]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 17:45:49)
    No6033 (C#初心者 さん) に返信
    マイクロソフトのページでは、
    oSheet.Cells[1, 1] = "First Name";
    と書いてあります。
    Valueは不要なのでは?
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6045  Re[11]: Excel セルより読込
□投稿者/ 特攻隊長まるるう -(2007/07/30(Mon) 17:57:18)
    No6044 (C#初心者 さん) に返信
    それは
    >過去ログ13の記事No.4178
    を読んだ上での発言ですか?
    
     # ページ上部の[記事検索]メニューを選択し、
     # [検索範囲]を(過去ログ13)
     # [キーワード]を4178
     # にして検索してください。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6047  Re[12]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 19:04:53)
    No6045 (特攻隊長まるるう さん) に返信
    > ■No6044 (C#初心者 さん) に返信
    > それは
    > >過去ログ13の記事No.4178
    > を読んだ上での発言ですか?

    もちろん読んでいます。
    Valueの必要性もわかっています。
    しかし、私のパソコンではValueを入れるとエラーになり、
    Valueを無くすると正常なのです。
    そこで悩んでいるのです。
    もっとほかのところに原因があり、私のパソコン固有の症状なのかと悩んでいます。
    No6026で、再下行のValueを外すと正常に動きます。
    なぜなのでしょうか?
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6048  Re[13]: Excel セルより読込
□投稿者/ 片桐 -(2007/07/30(Mon) 19:08:58)
    単純に考えた事。

    cells[1,1]のオブジェクト型は何になってますか?

    Valueのプロパティをバインドできない型になっているのでは?
    つまり、RangeオブジェクトやCellオブジェクトを継承してないただのオブジェクト型になっている……ということが考えられないかナァ、と。tostringとか動いたりして<おい

    Intellicenseが使えているなら、そのオブジェクトの型も判るはず。

    動けばいいじゃん、というなら、そこまでですけれど……
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6049  Re[14]: Excel セルより読込
□投稿者/ 特攻隊長まるるう -(2007/07/30(Mon) 19:28:29)
    単純に考えた事。

    キャスト(型変換)した後のコードを書いておいてもらえます?念のため。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6053  Re[15]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/30(Mon) 22:31:04)
    No6049 (特攻隊長まるるう さん) に返信
    > 単純に考えた事。
    >
    > キャスト(型変換)した後のコードを書いておいてもらえます?念のため。

    片桐さん、特攻隊長まるるうさん
    申し訳ありませんが、初心者のため、理解できない言葉がたくさんあります。
    片桐さんの
    Valueのプロパティをバインドできない型になっているのでは?
    というのが当たっているような気がしますが、詳しくはわかりません。

    簡単なtestprogramを書きます。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Reflection;
    using Excel = Microsoft.Office.Interop.Excel;

    namespace testprogram
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    string strFileName = System.Windows.Forms.Application.StartupPath + @"\サンプル.xls";

    Excel.Application oXL;
    Excel._Workbook oWB;
    Excel._Worksheet oSheet;

    oXL = new Excel.Application();
    oXL.Visible = true;

    oWB =
    oXL.Workbooks.Open(strFileName,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing);

    oSheet = (Excel._Worksheet)oWB.ActiveSheet;
    oSheet.Cells[1, 1] = "test";

    //oWB.Close(false, Type.Missing, Type.Missing);
    //oXL.Quit();
    //System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL);
    //oXL = null;
    }
    }
    }

    Valueが無ければ正常に動くのです。
    oSheet.Cells[1, 1].Value = "test";
    とするとエラーになります。

    上記プログラムで、キャスト(型変換)ってどうするのですか?
    オブジェクト型ってどうやって調べるのですか?
    初歩的な質問ですみません。
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6056  Re[16]: Excel セルより読込
□投稿者/ mあ -(2007/07/31(Tue) 02:36:43)
    No6053 (C#初心者 さん) に返信
    ● oSheet = (Excel._Worksheet)oWB.ActiveSheet;
    ● oSheet.Cells[1, 1] = "test";

    ●のとこにブレークポイント(以下BP)置いて、ステップ実行。
    最初のBPに止まったら、oWB をウォッチで確認。
    次のステップに進んで、次のBPで、oSheet を確認。

    oSheet.Rows(1).Cells(1) とか、書けないのだろうか??
    普通に書くと、普通に悩まなくて済むはずなんだけどな。

    >
    > Valueが無ければ正常に動くのです。
    > oSheet.Cells[1, 1].Value = "test";
    > とするとエラーになります。
    >
    > 上記プログラムで、キャスト(型変換)ってどうするのですか?

    初心者だからって文法分からないはまずいでしょう?
    キャストって何ですか?って鸚鵡返しする前に調べなくちゃ。

    VB6 でもあったけど、
    レコードセットのなんたらで、
    oraSet!COL1
    とか書くとインテリ出ないけど、
    oraSet.Item("COL1").Value とか
    書くと普通にインテリ出てたよね。
    Cells[]って古い書き方なんじゃ?


    > オブジェクト型ってどうやって調べるのですか?
    デバッガでステップ実行すれば、ウォッチ窓で確認できるでしょう?

    > 初歩的な質問ですみません。
    >

    作った奴に聞くのが一番なんじゃ?>作った本人が一番の理解者です。
    あなたの周りに聞ける奴はいないのでしょうか?
    もしかして、どこからかコピペしてきたソースを元に改造してる?
記事No.6004 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6059  Re[17]: Excel セルより読込
□投稿者/ C#初心者 -(2007/07/31(Tue) 10:31:19)
    No6056 (mあ さん) に返信

    > ●のとこにブレークポイント(以下BP)置いて、ステップ実行。
    > 最初のBPに止まったら、oWB をウォッチで確認。
    > 次のステップに進んで、次のBPで、oSheet を確認。
    型の見方はわかりました。
    ありがとうございます。

    > Cells[]って古い書き方なんじゃ?
    いつも使っていますが、古い書き方なんですか?
    新しい書き方って?

    > oSheet.Rows(1).Cells(1) とか、書けないのだろうか??
    > 普通に書くと、普通に悩まなくて済むはずなんだけどな。
    oSheet.Rows(1).Cells(1)が新しい書き方なんでしょうか?
    エラーが出て動きません。
    私のパソコンだけ?

    > 作った奴に聞くのが一番なんじゃ?>作った本人が一番の理解者です。
    > あなたの周りに聞ける奴はいないのでしょうか?
    > もしかして、どこからかコピペしてきたソースを元に改造してる?
    作った奴は自分なので聞けません。
    近くに聞ける奴がいたらここに来ていません。
    実際のソースは長くてここに書けないため、エラーの出る部分だけを
    テストプログラムとして記述しました。

    > 初心者だからって文法分からないはまずいでしょう?
    初心者なりの一通りの文法はわかっているつもりです。
    特攻隊長まるるうさんの
    「キャスト(型変換)した後のコードを書いておいてもらえます?」
    の表現が理解できませんでした。
    そんなコードが無いから…。
    だから簡単なソースを書きました。
    私のパソコンでは、上記プログラムはValueでエラーになります。

    とりあえず、Valueをつけないこととしました。
    納得はしていませんが、プログラムを動かすことを優先します。

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

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -