Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1974 / 13645 ツリー ←次へ | 前へ→

【70713】Excelシートの最終行、最終列  を調べる りんご 11/12/19(月) 10:49 質問[未読]
【70714】Re:Excelシートの最終行、最終列  を調べ... とおりすぎ 11/12/19(月) 11:39 回答[未読]
【70715】Re:Excelシートの最終行、最終列  を調べ... りんご 11/12/19(月) 12:09 質問[未読]
【70717】Re:Excelシートの最終行、最終列  を調べ... とおりすぎ 11/12/19(月) 13:50 回答[未読]
【70718】Re:Excelシートの最終行、最終列  を調べ... りんご 11/12/19(月) 17:08 質問[未読]
【70719】Re:Excelシートの最終行、最終列  を調べ... とおりすぎ 11/12/19(月) 17:12 回答[未読]
【70720】Re:Excelシートの最終行、最終列  を調べ... りんご 11/12/19(月) 17:27 お礼[未読]
【70723】Re:Excelシートの最終行、最終列  を調べ... とおりすぎ 11/12/19(月) 17:59 回答[未読]

【70713】Excelシートの最終行、最終列  を調べる
質問  りんご  - 11/12/19(月) 10:49 -

引用なし
パスワード
   よろしくお願い致します。

VBAでシートにデータを書き込んでいくようなマクロを作成しています。
Excel2007でマクロを作成しExcel2003で動作させたところ、MAX最終行が異なっており、エラーとなってしましました。

Excelのバージョンによって書ける範囲が違うのですが、この行と列のMAX値というのはどこを参照すればよいのでしょうか?

【70714】Re:Excelシートの最終行、最終列  を調...
回答  とおりすぎ  - 11/12/19(月) 11:39 -

引用なし
パスワード
   どんなコードで試したのか?
ActiveSheet.Range("A" & Cells.Rows.Count).End(xlUp).Address?

Sub test()
 Dim Rng1 As Range, Rng2 As Range
 Set Rng1 = ActiveSheet.Cells.Find("*", ActiveSheet.Range("A1"), , , _
                  xlByRows, xlPrevious)
 Debug.Print Rng1.Address
 Set Rng2 = ActiveSheet.Cells.Find("*", ActiveSheet.Range("A1"), , , _
                  xlByColumns, xlPrevious)
 Debug.Print Rng2.Address
End Sub

【70715】Re:Excelシートの最終行、最終列  を調...
質問  りんご  - 11/12/19(月) 12:09 -

引用なし
パスワード
   ▼とおりすぎ さん:


よろしくお願い致します。

varOutput に戻り値が入っているのでそれを書き込んでいます。
できれば、次のようにしたいのです。

シートのMax行を超えるようであれば、途中までのデータですというようなメッセージも出力したいのです。

★希望
For lngR = (LBound(varOutput, 1) - lngRadd) To シートのMax行


Next lngR


★現在のコード
  lngRadd = LBound(varOutput, 1)
  lngCadd = LBound(varOutput, 2)

  Set rngMy = Cells(lngR, lngC)

  For lngR = (LBound(varOutput, 1) - lngRadd) To (UBound(varOutput, 1) - lngRadd)
    For lngC = (LBound(varOutput, 2) - lngCadd) To (UBound(varOutput, 2) - lngCadd)
      Cells(rngMy.Row + lngR, rngMy.Column + lngC).Value = varOutput(lngR + lngRadd, lngC + lngCadd)
    Next lngC
  Next lngR
    

【70717】Re:Excelシートの最終行、最終列  を調...
回答  とおりすぎ  - 11/12/19(月) 13:50 -

引用なし
パスワード
   Cells.Rows.Countのこと?

【70718】Re:Excelシートの最終行、最終列  を調...
質問  りんご  - 11/12/19(月) 17:08 -

引用なし
パスワード
   ▼とおりすぎ さん:

ありがとうございます。

>Cells.Rows.Countのこと?

試しに、Cells.Rows.Countを使用すると、75行目までデータが入っていたので、75で戻ってきました。


説明が悪くて申し訳ありませんが、下記の数値が欲しいのです。

2003
65536行、256列

2007
1,048,576 行、16,384 列


もしくは、例えば(あくまでもイメージです。)

Range("A1").LastRow
Range("A1").LastColumn

とすると、現在使用しているExcelのバージョンの最大行数や最大列数をGetできないかと思っています。


今後、2020などがレリースされてもいいように、何かオブジェクトがあるのか知りたいのです。

【70719】Re:Excelシートの最終行、最終列  を調...
回答  とおりすぎ  - 11/12/19(月) 17:12 -

引用なし
パスワード
   >試しに、Cells.Rows.Countを使用すると、75行目までデータが入っていたので、
>75で戻ってきました。

そんなはずは無いと思うが、どんなコードでためしたのか。

【70720】Re:Excelシートの最終行、最終列  を調...
お礼  りんご  - 11/12/19(月) 17:27 -

引用なし
パスワード
   ▼とおりすぎ さん:
>>試しに、Cells.Rows.Countを使用すると、75行目までデータが入っていたので、
>>75で戻ってきました。
>
>そんなはずは無いと思うが、どんなコードでためしたのか。


申し訳ございません。
私が、コーディングを勘違いしておりました。これで、欲しい値がGetできました。

wsWork.Cells(Rows.Count,1).Row

ありがとうございました。

【70723】Re:Excelシートの最終行、最終列  を調...
回答  とおりすぎ  - 11/12/19(月) 17:59 -

引用なし
パスワード
   Msgbox Cells.Rows.Count & vbLf & Cells.Columns.Count

1974 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free