シート1を指定してrangeで指定したセル範囲の値を出力した後、シート10を指定しまたrangeで指定したセル範囲の値を出力したいです。現在以下のようなソースコードを書いており、実行するとシート1の処理はうまくいくのですがシート10にするとrange.value2内がなぜかシート指定しているのにもかかわらず、シート1のものになってしまいます。どうすればシートを指定してrangeで値を出力することができますでしょうか?
// Excelアプリケーション生成 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); // 既存のBookを開く Microsoft.Office.Interop.Excel.Workbooks xlBooks = xlApp.Workbooks; Microsoft.Office.Interop.Excel.Workbook xlBook = xlBooks.Open(System.IO.Path.GetFullPath(@"Excel名")); // シートを選択する Microsoft.Office.Interop.Excel.Sheets xlSheets = xlBook.Worksheets; // Excelのファイル名取得 string ExcelBookFileName = xlBook.FullName; // Excelファイルを開く Workbook wb = xlApp.Workbooks.Open(ExcelBookFileName, 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); // シート指定 ExcellData.ws1 = ExcellData.wb.Sheets[1]; range=.xlApp.get_Range("A1", "D100); for(int a=1;a<100:a++) { textbox1.Text=range.value2[a,a]; } // シート指定 ExcellData.ws1 = ExcellData.wb.Sheets[10]; range=.xlApp.get_Range("A1", "D100); for(int a=1;a<100:a++) { textbox1.Text=range.value2[a,a]; }
C#、FormApplicationでMicrosoft.Office.Interop.Excelを使用して開発しています。
ExcellData.ws1 というのに代入したシートオブジェクトはどこで使用されているんでしょう?
そもそもExcellData.ws1はどこから出てきたんでしょう?提示されたソースでは定義されていないようですが
>>radian
ExcellData.ws1で設定したとき、自動的にrange.Value2に代入されるものだと思っていたのですが、違うのですか?
>>radian
今理解しました。「range=.xlApp.get_Range("A1", "D100);」ではシートが指定されていないので「 ExcellData.range = ExcellData.ws1.get_Range("A1", "D100" );」のようにしてws1を指定するということですね。ありがとうございます。
回答1件
あなたの回答
tips
プレビュー