No.3ベストアンサー
- 回答日時:
#2 です。
ついでに補足を。実務的には、データのある最終行とか最終セルがほしいことがほとんど
ですよね。SpecialCells(xlLastCell) でも UsedRange でもその動作仕様
を理解している場合は問題なく使えますが、こんな方法が最も確実だった
りします。
Sub Sample2()
Dim r As Range
Set r = FindLastCell(ActiveSheet)
MsgBox r.Address
End Sub
' // シート内の最終データセルを求める(最後のセルではない)
Public Function FindLastCell(ByVal Sh As Worksheet) As Range
Dim lRow As Long, lCol As Long
On Error GoTo Err_
lRow = Sh.Cells.Find(What:="*", _
LookIn:=xlValues, _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
lCol = Sh.Cells.Find(What:="*", _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByColumns).Column
Set FindLastCell = Sh.Cells(lRow, lCol)
Bye_:
Exit Function
Err_:
' // case no data in the worksheet.
Set FindLastCell = Sh.Cells(1, 1)
Resume Bye_
End Function
No.5
- 回答日時:
Excel で最終行の取得方法は複数あります。
下のサイトで検証されています。すべてを試されてはいかがでしょうか。
ノーツ/ドミノ パワーアップガイド (toru's page) - No.8 ワークシートの最終行、最終列を取得する
http://www.niji.or.jp/home/toru/notes/8.html
No.4
- 回答日時:
ActiveSheet.Cells.SpecialCells(xlLastCell).Row
の仕様上の問題です。まぁバグと言ってしまえばそうなんですが、最早そういう仕様という認識をされた方がよいかと。VBAのサンプルサイトでもその方法を推奨しているところはあまり見かけたことはありません。あったとしても下記のようにちゃんと注意点が書かれていたりします。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
対策としてはFAQサイトでサンプルとしてよく挙げられている方法を使うべきかと。
例えば下記とか。
ActiveSheet.Range("$A$65536").End(xlUp).Address
No.2
- 回答日時:
こんにちは。
ダミーで良いから一度 UsedRange を使うと最終セルが補正されます。
こんな感じ。
Sub Sample()
Dim lDummy As Long
lDummy = ActiveSheet.UsedRange.Row
MsgBox ActiveSheet.Cells.SpecialCells(xlLastCell).Row
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- PHP PHPでテキストファイルに保存した時の改行問題 1 2022/11/19 15:07
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
6
CSV形式にすると出てくる空白を消したいです。
その他(Microsoft Office)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
9
EXCELでCSVファイル保存するとデータが無いところにカンマ
その他(ソフトウェア)
-
10
Excelマクロ 空白セルを無視してCSV出力
Excel(エクセル)
-
11
VBA 数値を文字列として貼付したい
Excel(エクセル)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
エクセルでエラーが出て困っています。
Excel(エクセル)
-
14
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
15
エクセルでENTERを押すと数式がそのまま文字列になってしまう
Excel(エクセル)
-
16
EXCELからCSVにすると余計なカンマがつきます
Excel(エクセル)
-
17
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
VBA コレクションに2次元配列を追加して取り出す方法
Visual Basic(VBA)
-
20
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbsからのExcelアドインのカス...
-
ExcelのVBAコードについて教え...
-
Geogebraの操作方法について
-
VBA一覧取得 再投稿
-
VBA指定行削除
-
【ExcelVBA】値を変更しながら...
-
VBA 複数のエクセルから一つの...
-
VBAで大量のファイルをシート名...
-
Vba 実数および実数タイプの変...
-
Excelのマクロについて教えてく...
-
VBA レジストリの値の読み方に...
-
VBAで各列の"+"と"o"の合計数を...
-
Excel VBAで値を変えながら、pd...
-
VB.NETでボタンのクリックイベ...
-
指定した条件で行セルを非表示...
-
エクセルVBAについて
-
【マクロ】1つのマクロの中に...
-
VBA ユーザーフォーム ボタンク...
-
エクセルについて
-
ExcelのVBAコードについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで大量のファイルをシート名...
-
VBA レジストリの値の読み方に...
-
Excelのマクロについて教えてく...
-
ユーザーフォームに別シートか...
-
VBAの計算で@が出てしまう件
-
エクセルVBAについて
-
Vba 実数および実数タイプの変...
-
【ExcelVBA】値を変更しながら...
-
VBA一覧取得 再投稿
-
VBA指定行削除
-
エクセルVBAについて
-
VBA ユーザーフォーム ボタンク...
-
VBA 何かしら文字が入っていたら
-
エクセルについて
-
2つのマクロでチェックボックス...
-
【マクロ】1つのマクロの中に...
-
ExcelのVBAコードについて教え...
-
VB.net(VB)で、フォームにExcel...
-
Vba SelStart、SelLen教えてく...
-
Excel-VBAのmsgBox()の不思議
おすすめ情報