質問するログイン新規登録

回答編集履歴

2

誤字訂正

2017/01/20 09:57

投稿

KoichiSugiyama
KoichiSugiyama

スコア3041

answer CHANGED
@@ -27,4 +27,4 @@
27
27
  int maxrow = maxCell.get_row();
28
28
  int maxcol = maxCell.get_Column();
29
29
  ```
30
- 本来でしたら、エラーチェックとか厳密にしないといけないのですが、ちょっと見づらくなりますので省いています。また、MFCでのラッパークラスでは、ExcellのプロパティであるCellsやRows、ColumnsはすべてRangeとして扱うので、上記のような書き方になります。
30
+ 本来でしたら、エラーチェックとか厳密にしないといけないのですが、ちょっと見づらくなりますので省いています。また、MFCでのラッパークラスでは、ExcelのプロパティであるCellsやRows、ColumnsはすべてRangeとして扱うので、上記のような書き方になります。

1

C\+\+での記述を追加

2017/01/20 09:56

投稿

KoichiSugiyama
KoichiSugiyama

スコア3041

answer CHANGED
@@ -11,4 +11,20 @@
11
11
  maxrow = .Cells(.Rows.Count, .Columns.Count).Row
12
12
  maxcol = .Cells(.Rows.Count, .Columns.Count).Column
13
13
  End With
14
- ```
14
+ ```
15
+
16
+ 追加(2017/01/20)
17
+ C++で書く場合、COMを扱ういろいろ方法があるのはご存じだと思いますが、私が最近MFC経由でしか使っていませんでしたので、MFCで書かせていただきます。(ビルドしてないので、ちゃんと動くかわかりませんが、ニュアンスをつかんでもらえれば)。
18
+ ```C++
19
+ CVariant varOption((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
20
+ CRange range(pWorksheet.get_Range("A11", varOption));
21
+ CRange Current(Range.get_CurrentRegion());
22
+ CRange Rows(Current.get_Rows());
23
+ CRange Columns(Current.get_Columns());
24
+ int rowsCount = Rows.get_Count();
25
+ int columnsCount = Columns.get_Count();
26
+ CRange maxCell (Current.get_Range(rowsCount, columnsCount));
27
+ int maxrow = maxCell.get_row();
28
+ int maxcol = maxCell.get_Column();
29
+ ```
30
+ 本来でしたら、エラーチェックとか厳密にしないといけないのですが、ちょっと見づらくなりますので省いています。また、MFCでのラッパークラスでは、ExcellのプロパティであるCellsやRows、ColumnsはすべてRangeとして扱うので、上記のような書き方になります。