| ■No56974 (C#入門者 さん) に返信 > ・内容:C#でExcelに接続後 Marshal.ReleaseComObject は?
> Excelシートに入力されている一番最後の行数を取得したい。 SpecialCells メソッドで xlCellTypeLastCell を指定すると言う手があります。 ただし、入力後に値を削除した後でも、以前の最終セルが返されます。
値を削除したセルを含めたくないなら、UsedRange プロパティを使ってみてください。
> *今回やりたいことは、VBAで言うところの MsgBox SheetName.Cells(65563, 1).End(xlUp).Row です。 それだと、一列目が未使用で、二列目以降からデータが記載されていたような場合に対応できないかと。
> wb = ExcelApp.Workbooks.Open(ExcelFile, これだと、Workbooks の解放に問題が生じる可能性が高くなります。
COM を扱う際に、2つ以上の「.」が続くような記述は避けた方が良いかと思いますよ。 (名前空間を指定するための「.」は構いませんが)
> rng = ws.get_Range("A65536", ExcelApp.ActiveCell.get_End(Excel.XlDirection.xlUp)); Active〜系プロパティは多用しないようにしましょう。コードが曖昧になります。 |