• ベストアンサー

excelで入力の最終行に移動するには

excelで上から順に入力していきます。次第に行が増えて400行とかなってしまうんですが、それをVBAのコマンドボタンか何かで最終行(次に入力するセル)まで一発で移動できませんか? 大変困っていますのでよろしくお願い致します

  • Hugh
  • お礼率48% (45/92)

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

  • ベストアンサー
回答No.7

こんにちわ。サンプルマクロを作ってみました。次のように操作してみて下さい。 1.データの入力されているブックを開き、CTR+F11キーを押してVBE画面を表示させる。 2.VBAProjectの下にあるThisWokrkbookにカーソルを合わせダブルクリックする。 3.ThisWorkbookのコードエディター(右側の白い部分)が開くので、そこに下記のコードをコピー・ペーストする。 Private Sub Workbook_Open() Dim myCell As String myCell = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Address If myCell = "$A$1" Then ThisWorkbook.Worksheets(1).Range("A1").Select Else ThisWorkbook.Worksheets(1).Range(myCell).Offset(1, 0).Select End If End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim myCell As String myCell = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Address If myCell = "$A$1" Then ActiveSheet.Range("A1").Select Else ActiveSheet.Range(myCell).Offset(1, 0).Select End If End Sub 4.VBAProjectの下にあるSheet1にカーソルを合わせダブルクリックする。 5.Sheet1のコードエディター(右側の白い部分)が開くので、そこに下記のコードをコピー・ペーストする。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myRow As Long If Target.Address = "$A$3" Then If Target.Value <> "" Then myRow = Cells(Rows.Count, 1).End(xlUp).Row If Cells(myRow, 1).End(xlToRight).Column _ = Cells(myRow - 1, Columns.Count).End(xlToLeft).Column Then Cells(myRow + 1, 1).Select Else Cells(myRow, Columns.Count).End(xlToLeft).Offset(0, 1).Select End If End If End If End Sub 6.ブックを保存終了し、再度そのブックを開く。 あなた様のやられたいことが実現していると思います。 もし、不都合な点がありましたら、遠慮なくお知らせ下さい。私でよろしければ、あなた様のやられたいことが実現できるまで一緒に考えたいと思います。 その際には、表の構成内容とあなた様のやられたいことを順を追って詳しくお知らせ下さい。 お手数をおかけいたしますが、よろしくお願いいたします。

Hugh
質問者

お礼

完璧にできました。 どうもありがとうございました。

その他の回答 (7)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.8

Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1).Select で、A列の最終行の次の空白セルに移動しますよ。もし、セル編集後にどの位置からでも即座にその列の最終行の次の空白セルに移動したいというのであれば、次のコードになります。 Private Sub Workbook_SheetChange(ByVal Sh As Object, _ ByVal Target As Range) c = Range(Target.Address).Column Cells(ActiveSheet.Rows.Count, c).End(xlUp).Offset(1).Select End Sub vbエディタのThisWorkbookのコードウインドウに、コピー&ペーストして使います。

Hugh
質問者

お礼

おかげさまでできました どうもご親切にありがとうございました

回答No.6

はじめまして。 サンプルマクロを作ってみました。以下のように操作してみて下さい。 1.データの入力されているブックを開き、CTR+F11キーを押してVBE画面を表示させる。 2.VBAProjectの下にあるThisWokrkbookにカーソルを合わせダブルクリックする。 3.ThisWorkbookのコードエディター(右側の白い部分)が開くので、そこに下記のコードをコピー・ペーストする。 Private Sub Workbook_Open() Dim myCell As String myCell = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Address If myCell = "$A$1" Then ThisWorkbook.Worksheets(1).Range("A1").Select Else ThisWorkbook.Worksheets(1).Range(myCell).Offset(1, 0).Select End If End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim myCell As String myCell = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Address If myCell = "$A$1" Then ActiveSheet.Range("A1").Select Else ActiveSheet.Range(myCell).Offset(1, 0).Select End If End Sub 4.ブックを保存終了し、再度そのブックを開く。 あなた様のやられたいことが実現していると思います。 もし、不都合な点がありましたら、遠慮なくお知らせ下さい。私でよろしければ、あなた様のやられたいことが実現できるまで一緒に考えたいと思います。 お手数をおかけいたしますが、よろしくお願いいたします。

Hugh
質問者

補足

どうもありがとうございます。worksheetを開くと最終の入力セルに移動できました。欲を言えば、こんなのできますでしょうか? 入力された行がA412まであってA3の編集作業をして次に A413の空白セル(A413)まで飛ぶやり方ですが、、 A413を指定するのではなくあくまでも次の空白セル(最終行)なのですが、、いろいろな方にアドバイスいただきましたが、私のやりたいことはそんな感じです。 どうかお知恵を拝借させてください よろしくお願い致します。

  • TTak
  • ベストアンサー率52% (206/389)
回答No.5

> VBAのコマンドボタンか何かで最終行(次に入力するセル)まで一発で移動 ということであれば、 Private Sub CommandButton1_Click() Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1).Select End Sub'           ~~~ とか、いかがでしょう。(1列目の例です。~~~の所が行数です。)

Hugh
質問者

補足

アドバイスありがとうございます。 大変参考になりました。 移動したい場所は最終の空白セルなのですが、どうやって指定したらいいのでしょうか? たびたび申し訳ありませんが、ご指導お願い致します

  • Zz_zZ
  • ベストアンサー率44% (756/1695)
回答No.4

Ctrl+↓ (↑ → ← ↓) は、連続する行・列に対して最後(最前)まで飛びますが、 途中でデータが抜けている(空白セル)と、そこの前まで しか飛びません。 つまり、シートの最左・左上 A1 に飛ぶには、Ctrl+Home ですから、その逆になります。  

  • aieeen
  • ベストアンサー率12% (7/54)
回答No.3

private sub() Range("A1").Serect //行きたい列 Selection.End(xlDown).Select これではダメでしょうか?

  • Zz_zZ
  • ベストアンサー率44% (756/1695)
回答No.2

少なくとも、 Ctrl+End で、最下行・最右セル まではジャンプできます。 その、最下行・最右セルから、Home キー で、最下行の A 列にシフトできます。  

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

コントロールキー(Ctrl)を押しながら、矢印キーの下(↓)を押すと、内容が詰まっている 最後のセルに飛ぶんですが、それでどうですか?

関連するQ&A

  • エクセルで文字最終行の空白セルへ移動

    エクセル2000です。 1000行内で間にとびとび(順不同)に空白セル、他は文字有りです。 (1000行目は文字あり) シートが10個あり、各シートともばらばら(ウィンドー枠固定位置)ですが、ウィンドー枠固定内の行に「最終行へ移動」のボタンを設け、いずれの行からも、最終文字入力の次の行空白セル(AからZ列のいずれか)へ移動したいです。 方法がありますでしょうか? VBAの場合、素人につきVBAへの入力方法等も一緒にお願いします。またVBAの場合、ソフトを立ち上げたら直ぐに実行できるようにしたいです。(立ち上がり時のマクロ警告はあり) よろしくお願いいたします。

  • EXCELで最終行への簡単な移動

    EXCEL2000を使用して、列15x行5000くらいのデータを操作しています。 1.列Cの最終行に簡単に移動できるキーボード操作がわかったら教えてください 2.列Cの最終行を検索するVBAを教えてください 3.列Cの第1行から最終行までのうち、「あ」という文字を検索するVBAを作りたいのですが、簡単な作り方を教えてください。

  • Excelでセルを次の行の先頭の列に移動させる方法を教えてください。

    Excelでセルを次の行の先頭の列に移動させる方法があれば教えてください。 例えば、A1、B1、C1と順に入力し、C1のセルでEnterキーを押すと次の行の先頭列A2に入力セルが移動されるといった場合です。

  • エクセルのコマンドボタンの位置をVBAで指定できませんか?

    エクセルのコマンドボタンの位置をVBAで指定できませんか? 表にコマンドボタンがかぶらないようにデータのない最終行にコマンドボタンを移動する VBAを教えていただけませんか? 最終列に移動するVBAも合わせて教えてください。

  • Excelでのセル入力後の移動について

    Excelでセル入力後の移動(下とか右とか...)の設定はわかるのですが、 ある規則を持たせて、次の行の任意のセルに移動することは可能なんでしょうか? そんな裏技がありましたら教えて下さい!!

  • エクセル最終行の下に貼り付け

    VBAで以下の作業を教えて下さい。 Sheet1のB列に入力済みのセルが何行かあります。 その入力済みのセルの値をコピーして、Sheet2のA列の入力済みの最終行のすぐ下の行に貼り付ける。 *Sheet1のB列の入力済みのセルの行数は毎回変わります。 *Sheet2のA列には一番最初は何も入力されていない状態です。 宜しくお願い致します。

  • エクセル、「最終行への移動機能」を無効にしたい

    お世話になります。 エクセルで、   1. セルをクリックする。   2. クリックしたセルの下側境界線をダブルクリックする。 この操作で、最終列(※)に移動します。   ※正確には、1.で選択したセルから下方に向かって、     “その列で値が連続して入っている最終列”。     1001     1002 ← ここで上記の操作をすると、     1003     1004     1005 ← このセルに移動する。     空白セル     1007     1008       (空白セルとは何も入っていないセル。         ブランクが入っていたら空白セルではないので、         1008に移動します。) でも、この操作、単純すぎて意図しない時に、 例えば、一旦セルを選択した後に、 そのセルをダブルクリックしたかったのに、 マウスが微妙にズレて→下方境界をクリックしてまい→最終行に移動にジャンプ! なんてこと 有りませんか?  私は、しばしば有るのです。 この機能を無効にする方法が有ったら、教えてください。 よろしくお願い致します。

  • エクセルで数字を入れると自動的に最終行までとんでしまう。

    エクセルで数字を入れると自動的に最終行までとんでしまう。 OS:Windows XP Excel2002 数字を入力すると、最終行(66536)までとんでしまいます。 ひらがなの入力ではとびません。 ステータスバーの左にコマンドと出ています。 ステータスバーの右にはEND表示はでていません。 ですが、数字を入力すると、最終行(66536)にとびます。 数字を入力しても、最終行までアクティブセルが とばないようにするにはどうしたらいいですか?

  • エクセルVBAにて最終行の取得とその活用

    エクセルVBA初心者です。 VBAで入力行最終行を取得するのは、色々なところに載っているですが、 その行から一個下の行を全て消すのはどうしたらよいのですか? Sub 最終行取得() Dim r r = Range("B4").End(xlDown) Rows(r + 2).ClearContents  ←ここは適当です。 ちなみに Range("a"&r+1).ClearContents で一つしたのセルを消す事は出来ました。

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

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

専門家に質問してみよう