• ベストアンサー

入力されたセルが何行あるか調べる方法

エクセルVBAを勉強中です。 2つのsheetを使って表を作っていて、手入力したsheet1から自動でsheet2へコピーする際に、あらかじめsheet1で使っている行数だけsheet2で表を増やしておきたいのです。 sheet1で使っている行の数はどうやって表せばよいのでしょう? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

1.たとえばA列の最終入力行なら MsgBox Sheet1.Cells(Rows.Count, "A").End(xlUp).Row 2.使用範囲内での最終行なら MsgBox Sheet1.Cells(1, 1).SpecialCells(xlLastCell).Row で取得できます。 ただし、2.は、一旦入力されてからクリアしたようなセルもカウントしますので正確とはいえません。

yunako0517
質問者

お礼

回答ありがとうございます。 変動するある範囲内でのB列に入力された行数を知りたいので、 2.の方法かなと思うのですが、クリア済みのセルはカウントされない方法ってないのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 変動するある範囲内でのB列に入力された行数を知りたいので、 範囲がどう変動しようがB列の最終行なら MsgBox Sheet1.Cells(Rows.Count, "B").End(xlUp).Row で、求められますよ。 B列の一番下(2003ならB65536)から Ctrl+↑ で飛ぶ先のセルの行という意味です。

yunako0517
質問者

お礼

ありがとうございます。 この方法で書いてみました。 2つの表をsheetの縦に作ってしまうと、それぞれの表で行数を知ることはこの方法では無理ですよね?

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

End(xlUp).Rowなどのほかに Sub test01() MsgBox Range("A2").CurrentRegion.Rows.Count MsgBox ActiveSheet.UsedRange.Rows.Count End Sub これらは意味を良く知って、適切に使う必要があります。 WEBで各語句で照会のこと。 End(xlUp).Rowは比較的安全と思いますが、反例は作れます。

yunako0517
質問者

お礼

回答ありがとうございます。 大変申し訳ありませんが、コードの意味を教えていただけないでしょうか? ネットで検索しましたが、良く理解できませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マーク入力セルがある行は非表示

    Excelシート1~10行のうち1.3.7.9行のD列にIF関数により"●"が入力されています。 "●"の1.3.7.9行をVBAコード入力で非表示にならないでしょうか。解る方、宜しくお願いたします。

  • セルのコピーが遅い

    パソコンに詳しくなくてすみません。エクセルファイルを開いてセルをコピーすると、非常に時間が掛かるのです。 マクロは使ってません。シートの数は2シートだけです。 1行20セル(内 計算式が 入っているのは 5セル)を次の行にコピーするのに 約40秒掛かります。 このシートの行数は200行にもありません。他のエクセルファイルを2-3試してみましたが他のファイルは素早くコピーできます。 自動計算はしていましたが(たいていの人は自動計算にしていると思いますが)手計算に変更しましたが状況は変わりません。 「戻る」の矢印をクリックすると約7秒掛かってコピーの前の状態に戻ります。 ウィルスバスター2007のチェックでは、ウィルスは無いです。 パソコンはwin2000 intel celeron 2.4GHz メモリ 770MBです。どのような原因が考えられるでしょうか。

  • 日付セルの日数差でコピー入力を変えたい

    Excelの日付B1セルに1~3日後の日付を入力したとき表-2のように基準2行目のAを それぞれ1~3日後(3~5行目)にコピーしたいのですが。表-3は例として1月3日を 入力した際、以前の1月1日がずれその差2を基にコピーを2行ずらしでしたらと 思ったのですが、どなたかVBAコードで良い方法が解る方よろしくお願いします。

  • あるセルに文字が入力されている行だけを別シートにコピーする方法

    ある一つのセルに文字が入力されている行だけを別シートに 自動でコピーする方法はありませんでしょうか? 顧客リストをエクセルで管理しているのですが、 「休眠顧客」をそこから自動で抜き出す方法を探しています。 たとえば、ある列を「リリース」とか「アプローチ中止」などの 項目にし、そのセルに●印が入っている行だけを自動で、別シートに 反映させたく思っています。 自動で「休眠顧客リスト」ができたらいいなって思っています。 どなたか、お教えくださいますよう、お願いいたします。

  • エクセルの使い方

    エクセルを使い、自動で複式簿記の仕分けができるようにしたいので、次のようなことはできますか? 第1シートの表は入力されている行と入力されていない行があり、この表をもとに、第2シートに入力されている行のみを上から順に詰めた表が自動で作成されるようにすることはできますか? 説明が難しいなら、何を勉強すればいいですか?マクロとかVBAとかなら、何の部分になりますか?

  • ある行(の各セル)に入力されたデータが、自動的に別の行(の各セル)に表示されるようにしたい。

    Excelに関しては全くの素人のあほな質問で、大変恐縮しています。 あるブックの中のシートのある行に、各セルに「1119」「1187」「1113」「664」......などと左から右へ入力していきます。 この各セルに入力したデータが、別のブックにあるシートの特定の行の各セルに、左から右へ「1119」「1187」「1113」「664」......と、自動的に数値が入力されるようにしたいのです。 これを可能にする方法は、何かありますか? ちなみに、100個くらいの行のデータが別の行にも自動的に入力されるようにしたいと考えています。

  • Excel VBA 残りの行数を計算し、貼付けられるか、別のシートに貼り付けるかを判断し実行するマクロ

    Sheet1に二十数個の項目が列記されており、その内、必要な項目だけをコピーしてheet2に貼り付けて行きます。 一項目の行数は6行~18行とまちまちです。 必要な項目はその都度違います。 heet2の行数は50行と決まっています。 よって、あるところで50行を超えてしまいますので、Sheet3へ移動し続きを貼り付けます。 このとき、一つの項目がSheetをまたいではいけません。 (Sheet1に空白が出来てもかまいません) 要は、貼り付ける行数と残りの行数を自動で判断して、入る場合は貼付け、入らない場合はSheetを変えて貼付けるVBAのコードを具体的にご教授願いたいのです、宜しくお願いします。 Excel2000、VBAはマクロの自動記録をいじる程度のスキルです。

  • エクセルで行挿入した際、自動的に計算式も入力される方法を教えて下さい。

    例えば、A列は単価を入力する欄、B列には数量を入力する欄、C列には=A1*B1(1行目の場合)の計算式が入っている表があるとします。 表の途中で行挿入すると、自動的にCのセルに数式が入力される方法はありますでしょうか? 複数の人に毎月この表(実際はもっと列が多い表)に入力して貰って集計等をしているのですが、各個人で表の途中で行挿入して行を増やした際、数式がコピーされてない人がいるため、行挿入すると自動的に数式が入力される方法がないかと思っております。 エクセルのバージョンは2000又は2003、行挿入は必要なので、行挿入を禁止する事はできません。 宜しくお願いします。

  • エクセルでセルに数字を入力することにより行をコピー挿入

    仕事で送り状作成用のデーターを作っています。 行に郵便番号、住所、名前等が入力されてます。この1行をコピーしたいのですが、セルに必要する数字を入力することによりコピー挿入することはできないでしょうか? 例)    A       B       C      D 1  郵便番号  住所       名前    コピー行数 2  100-0001  東京都港区・・・ 山本太郎    5 3  101-0001  東京都江東区・・ 山田花子    8 以下複数行続きます。 D列に必要なコピー行数を入力することにより、一発でコピーできる方法をご教授くださいませ。エクセルのマクロを使えばできそうなのですが、マクロはあまりわかりませんので、できるだけ詳しくお願い致します。

  • 結合セルでの行の高さの自動調整

    エクセルでの質問です。 結合セルに折り返して表示の設定がしてあり、文章が入力されています。入力方法が統一されていないため、セルによって、一行だったり、長文だったり、セル内で改行して箇条書きで入力されていたりします。 文章の下が切れてしまうセルがあるので、手作業で行の高さを広げています。行数が何百行もあったりするのでとても手間と時間がかかってしまいます。いい方法がないかと、“マクロでセル内の文字数が50以上なら行の高さを30にする”としてみたのですが、箇条書きのセルだとうまくいきません。そこで、“セル内に3行以上なら、行の高さを30 とする”というように行数を数えることは可能でしょうか? また、他に良い方法があれば教えてください。宜しくお願いします。

デスクトップPCのLAN増設
このQ&Aのポイント
  • デスクトップPCのLAN増設についての質問です。
  • ご利用の製品はEDC-G01シリーズです。
  • USBでのLAN増設方法について教えてください。
回答を見る

専門家に質問してみよう