• ベストアンサー

データ入力最終行数取得

お世話になります。 早速ですが、エクセルVBAで、列に日々入力されるデータの最終行を取得し、次の日の 入力時にデータの入力最終行を探すことなく、次の空白部からスムーズに入力を行える ようにしたいのですが、どのようなコードにすれば良いでしょうか? いろいろ試してみたのですが、なかなかうまくいきません。 ご教授お願いいたします。

  • na714
  • お礼率52% (43/82)

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

A1セルからデータが入力されているなら、VBAを起動してThisWorkbookをクリックして以下のコードを貼り付けて保存してみてください。 Private Sub Workbook_Open() Range("A1").End(xlDown).Offset(1, 0).Select End Sub このファイルを開くとA列の最終行の1つ下のセルが選択されます。

na714
質問者

お礼

ご回答ありがとうございました。 長時間悩んでいたのにあっという間に解決しました。 丁寧な回答に感謝しております。 また機会があればご教授お願いいたします。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.2

たとえばSheet1のA列の最終行の次のセルを選択状態にしたいのでしたら、Thisworkbookのモジュールに以下のようなコードを書いておけば、起動すると該当セルを選択した状態で開きます。また、A列に入力最終行以降の行になにがしかのデータがある場合。もし、100行目からあるのでしたらRows.Countを100にしてください。 Private Sub Workbook_Open() Sheets("Sheet1").Activate Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Select End Sub

na714
質問者

お礼

早速のご回答ありがとうございます。 難しく考えすぎていました。こんなにも短いコードなんですね。 大変助かりました。 また機会があったらご教授お願いいたします。

関連するQ&A

  • マクロを使って最終行を取得して、範囲内の空白セルに

    マクロを使って最終行を取得して、範囲内の空白セルに指定の文字列を表示させたいです。 お世話になります。 要件としてはタイトルの通りです。 Excel2013を利用しています。 A列を参照して最終行を取得し、 B列の1~最終行までの空白セルに対して「未入力」という文字列を入力したいです。 この場合、考え方はいろいろあるのでしょうが どのようにコードを組めば良いでしょうか? 自分では、まったく書けていないというのが正直なところです。 そこで御手数ですが、ご協力をお願いいたします。

  • エクセルVBAでデータ最終行取得方法

    エクセルVBAでデータ最終行取得方法で良い方法を教えてください。 データの行数、列数は不定。 最多のデータ行の列も不定。 この条件で、データ最終行を取得するにはどうすればよいでしょうか? lastrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row では、A列の最終行に限定されます。 lastrow = ActiveSheet.Cells(1, "A").SpecialCells(xlLastCell).Row では、列の限定はありませんが、一旦データ入力後、削除した部分まで入ってしまいます。 lastrow = ActiveSheet.UsedRange.Rows.Count では、データ入力後、削除した部分まで入ってしまい、かつ、1行目など上部が空白の場合、不正確になります。

  • エクセルVBAで最終行取得ができない

    エクセルVBAでたとえばC列にどこまでデータが入力されているかを調べるとき、通常は r = Cells(Rows.Count, "C").End(xlUp).Row などでできます。 しかし添付画像のような入力フォームが出来上がっており、かつC列に最初から何らか(画像では〒マーク)の入力がされているので、そこに回答者が途中まで入力された場合、これでは最終行は取得できません。 逆に上からEnd(xlDown)でやろうとしても、途中に空白セルがあってお手上げです。 余分な〒マークを元データから削除してしまいたいのですがそれでは入力されているところのマークまで消えてしまいます。 このようなファイルが何百もあり、それを1枚のシートにまとめようとしているのですが、この最終行取得でつまずいてしまいました。 どのような方法があるでしょうか? 画像はエクセル2013ですが、実際にマクロを動かすのは2010です。

  • EXCELの最終列の数値の取得

    お世話になります。 EXCELにて画像のようなデータがあった場合についてです。 例えばA列には受注目安の1回目を入力する欄が設けられており、それぞれの状態を入力します。 OKの場合はそれ以降入力する必要がないのでA列が最終列となりますが、未定の場合はC列の 受注目安2に再度入力しており、それが最終列扱いとなります。 売上も同じような方法で入力していくのですが、その右側にそれぞれの行の一番最後の値が 最終売上、最終目安に反映されるようにしたいです。 ネットで調べてみて最終行の取得などはあったのですが、入力された最終行の取得について 分かりやすい解説が見つかりませんので質問いたしました。 お手数ですが、解決方法をご教授下さい。 よろしくお願いします。

  • VBA 最終行列の取得(空白混み)

    VBA 最終行列の取得(空白混み) 例えば以下のような場合正しくカウントするにはどの様にしたら良いでしょうか □→空白セル ■→データあり □ABCDEFGH 1□□□□□□□□ 2■■■■■■■■ 3■■■■■■■■ 4■■■■■■■■ 5□□□□□□□□ 6■■■■■■■■ 期待する戻り値 maxRow→6 maxColumn→8 行は最終行から特定可能ですが その方法だと列は1か0を返してくると思います。 最大値を求める手法はどんな物が考えられるでしょうか

  • 空白行を取得し、その次の行から2行ずつセルを結合するVBAコードについて

    例えばA列の空白行を取得し、 その次の行から2列ずつ結合し、 次の文字が入力されている手前まで連続でそれを続ける VBAコードはどのように記述したらよろしいでしょうか?

  • VBAで最終行を取得する方法

    最終行を取得する方法について教えていただきたいです。 例えば以下のようなデータがあった場合 (A列~D列、3行までデータがある状態) -------------------------------- 田中 24歳 生命保険 営業 山口 47歳 銀行   営業 大野 36歳 IT    SE -------------------------------- ここで最終行を取得する際に、 Range("A1").End(xlDown).Rowをすれば取得できました。 しかしデータが以下のような場合 (A列が空白) -------------------------------- 田中 24歳 生命保険 営業    47歳 銀行   営業    36歳 IT    SE -------------------------------- この場合に上記と同じ取得方法をすると、オーバーフローになります。 そこで他の取得方法を調べたのですが、 ActiveSheet.UsedRange.Rowを試したところ、最終行として取得できたのは「1」でした。 A列が空白の状態でも、今回の場合だと「3」という最終行を取得するにはどうすれば良いでしょうか。

  • 不規則エリアの連続計算方法(VBA)

    度々お世話になっております。 エクセルVBA勉強中の初心者です。 現在、下記のような数値データが入力されています。 処理したいのは、 A列・・・・・・・・・・・・処理後B列 1行目 空白・・・・・・空白 2行目 1・・・・・・・・・・・1 3行目 2・・・・・・・・・・・2 4行目 3・・・・・・・・・・・3 5行目 4・・・・・・・・・・・4 6行目 5・・・・・・・・・・・5 7行目 空白・・・・・・空白 8行目 1・・・・・・・・・・・6→第一エリア目の最終行と足し算 9行目 3・・・・・・・・・・・8→同上 10行目 4・・・・・・・・・・・9→同上 11行目 6・・・・・・・・・・・11→同上 12行目 空白・・・・・・空白 13行目 2・・・・・・・・・・・13 →第二エリア目の最終行と足し算 14行目 4・・・・・・・・・・・15 →同上 15行目 7・・・・・・・・・・・18 →同上  ・                ・  ・                ・ 各エリアは、各1000行程度、エリアの数は、10~20になるため、どうしてもVBAで処理したいと考えております。 (空白~空白をエリアと名付けています。) 各エリアの数、行数ともに区々ですが、最大値を迎えた後、空白行が必ず入るようにデータが入力されています。 このようなデータをVBAで処理したいのですが、可能なのでしょうか? 参考書、過去ログなどを見てあれこれやってみたのですが、パニック状態です。 わかりにくい質問で恐縮ですが、良い方法をご教授いただければ幸いです。 宜しくお願いいたします。

  • VBA データのある最終行の取得

    エクセルVBAで最終行を取得する良い方法を教えて下さい。 VBA初心者でいきづまっていまして、、、 内容はボタンを押した時にF列に対して最終行を取得して、 その最終行の下のセルにボタンの内容が繁栄させるようにしたくて Private Sub CommandButton202_Click() Dim lastRow As Long lastRow = Cells(Rows.Count, 6).End(xlUp).Row + 1 Cells(lastRow, 6).Value = CommandButton202.Caption End Sub と作ってみたのですが、F17より下に文字がはいっているため、 検索範囲を「F列」ではなく、「F2:F16」のように範囲を指定したいのですがどうしたらよいでしょうか、、、。 結構色々調べてはみたのですができなくて、、、

  • エクセル:データが入った最終行の行番号の取得

    お世話になります。 A列にいろいろデータが入っているとして、データが入っている一番下(最終行)の行番号をB1のセルに表示させるにはどういう計算式で出来るでしょうか? A列のデータは数値だけでなく文字列も含みます。また途中空白セルもあります。 A1~A20にデータが入っているときはB1に20と表示させる。 よろしくお願いします。

専門家に質問してみよう