エクセル・マクロで最終行を表示することについて
C列の最終行を表示する場合、以下のマクロで表示できます。
今回はC列に
C1=A1&B1
C2=A2&B2
↓
という式が入力されている場合について質問します。
A列とB列が空白の場合、C列には0が表示されます。
したがって、下記のマクロだとこの0の行が最終行となります。
私の希望はこのC列の0は空白とみなし、0以外の値や文字が入力されている最終行を表示することです。
どのような工夫をすれば可能でしょうか?
ご指導よろしくお願いします。
Sub 最終行表示()
maxrow = Range("c65536").End(xlUp).Row
MsgBox maxrow
End Sub
No.1ベストアンサー
- 回答日時:
>今回はC列に
>C1=A1&B1
>という式が入力されている場合
>A列とB列が空白の場合、C列には0が表示されます。
>したがって、下記のマクロだとこの0の行が最終行となります。
これは少し勘違いがあるようです。
C1=A1&B1 の式は文字列結合ですから
A1,B1空白のときに、0が表示されることはありません。
空白のとき0になるのは、
=A1 とか =A1+B1 とかの場合です。
また、C列には式が入っているので常に結果が入っていることになり
その結果が空白あれなんであれ、Range("C65536").End(xlUp).Row では、
常に式の入っている最終行が取得されることになります。
で、簡単なのは、A列、B列の最終行の大きい方をとる方法でしょう。
'-------------------------------------------
Sub 最終行表示t()
Dim MaxRow As Long
If Range("A65536").End(xlUp).Row > Range("B65536").End(xlUp).Row Then
MaxRow = Range("A65536").End(xlUp).Row
Else
MaxRow = Range("B65536").End(xlUp).Row
End If
MsgBox MaxRow
End Sub
'------------------------------------
それから、最終行を取得するときは、A65536は使わないで
Range("A" & Rows.Count).End(xlUp).Row
のように、Rows.Countを使った方がいいでしょう。
xl2007ではシートの最大行が違いますから。
列も同様。
以上です。
No.2
- 回答日時:
スマートではないですが、やりたいことをそのまま書いてみたら?
Sub 最終行表示()
Dim maxrow As Long
maxrow = Range("C65536").End(xlUp).Row
While Range("C" & maxrow).Value = ""
maxrow = maxrow - 1
Wend
MsgBox maxrow
End Sub
なお、
>A列とB列が空白の場合、C列には0が表示されます。
はほんとにそうなりますか? A列B列ともに空白なら、C列も空白になるのでは?
ご回答ありがとうございました。
希望どおりにできました。
>はほんとにそうなりますか? A列B列ともに空白なら、C列も空白になるのでは?
すみません。おっしゃるとおりです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) エクセルのマクロを2つご指南ください 3 2023/01/02 12:16
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
行数が不規則な一週間ごとの合...
-
【初歩】エクセルでのマクロ(...
-
エクセルでマクロを実行し、最...
-
エクセルで空白以外のセルの値...
-
[Excel VBA]空白セル以外に連番...
-
エクセルVBA 複数列をコピーす...
-
EXCELマクロ 最下行のセルの数...
-
《エクセル2000》A列・B列の和...
-
エクセルでマクロを使った特定...
-
A列の一つがH列の枠組みの中に...
-
【Excelマクロ】フォルダ名の一...
-
一行おきにコピーするマクロが...
-
シート保護の状態で行の追加を...
-
エクセル マクロ 貼り付け先が...
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
エクセルの複数のセルを一括で...
-
Excelの入力規則で2列表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
エクセルで行挿入した際、自動...
-
行数が不規則な一週間ごとの合...
-
Excelの非表示列も含めてコピー
-
エクセル マクロ 貼り付け先が...
-
シート保護の状態で行の追加を...
-
エクセルで表示された値だけ行...
-
エクセルで空白以外のセルの値...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルの関数について(日付で...
-
[Excel VBA]空白セル以外に連番...
-
エクセルで反転コピー
-
【初歩】エクセルでのマクロ(...
-
エクセルで縦に長い表を印刷
-
エクセルVBA 複数列をコピーす...
-
マクロで値がある列までコピー
-
Excel VBAで日にちを入力して線...
-
《エクセル2000》A列・B列の和...
-
マクロ ScrollColumn について
おすすめ情報