
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.ブックを保存終了し、再度そのブックを開く。
あなた様のやられたいことが実現していると思います。
もし、不都合な点がありましたら、遠慮なくお知らせ下さい。私でよろしければ、あなた様のやられたいことが実現できるまで一緒に考えたいと思います。 その際には、表の構成内容とあなた様のやられたいことを順を追って詳しくお知らせ下さい。
お手数をおかけいたしますが、よろしくお願いいたします。
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のコードウインドウに、コピー&ペーストして使います。
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.ブックを保存終了し、再度そのブックを開く。
あなた様のやられたいことが実現していると思います。
もし、不都合な点がありましたら、遠慮なくお知らせ下さい。私でよろしければ、あなた様のやられたいことが実現できるまで一緒に考えたいと思います。
お手数をおかけいたしますが、よろしくお願いいたします。
この回答への補足
どうもありがとうございます。worksheetを開くと最終の入力セルに移動できました。欲を言えば、こんなのできますでしょうか?
入力された行がA412まであってA3の編集作業をして次に
A413の空白セル(A413)まで飛ぶやり方ですが、、
A413を指定するのではなくあくまでも次の空白セル(最終行)なのですが、、いろいろな方にアドバイスいただきましたが、私のやりたいことはそんな感じです。
どうかお知恵を拝借させてください
よろしくお願い致します。
No.5
- 回答日時:
> VBAのコマンドボタンか何かで最終行(次に入力するセル)まで一発で移動
ということであれば、
Private Sub CommandButton1_Click()
Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1).Select
End Sub' ~~~
とか、いかがでしょう。(1列目の例です。~~~の所が行数です。)
この回答への補足
アドバイスありがとうございます。
大変参考になりました。
移動したい場所は最終の空白セルなのですが、どうやって指定したらいいのでしょうか?
たびたび申し訳ありませんが、ご指導お願い致します
No.4
- 回答日時:
Ctrl+↓ (↑ → ← ↓)
は、連続する行・列に対して最後(最前)まで飛びますが、
途中でデータが抜けている(空白セル)と、そこの前まで
しか飛びません。
つまり、シートの最左・左上 A1 に飛ぶには、Ctrl+Home
ですから、その逆になります。
No.3
- 回答日時:
private sub()
Range("A1").Serect //行きたい列
Selection.End(xlDown).Select
これではダメでしょうか?
No.2
- 回答日時:
少なくとも、
Ctrl+End
で、最下行・最右セル
まではジャンプできます。
その、最下行・最右セルから、Home キー
で、最下行の A 列にシフトできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) VBA 登録ボタンを省略してエンターキーで作業 4 2022/07/09 22:29
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) マクロを教えてください 3 2023/07/31 21:57
- Excel(エクセル) マクロを教えてください 2 2023/07/30 23:05
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
2つのマクロでチェックボックス...
-
【ExcelVBA】5万行以上のデー...
-
VBAでCOPYを繰り返すと、処理が...
-
エクセルの改行について
-
【ExcelVBA】値を変更しながら...
-
Excel 範囲指定スクショについ...
-
【マクロ】開いているブックの...
-
VBAでセルの書式を変えずに文字...
-
[VB.net] ボタン(Flat)のEnable...
-
vb.net(vs2022)のtextboxのデザ...
-
【マクロ】変数を使った、文字...
-
(EXCEL超初心者)EXCELの関数(ま...
-
VBA レジストリの値の読み方に...
-
エクセルのマクロについて教え...
-
エクセルのVBAコードと数式につ...
-
VBAの「To」という語句について
-
算術演算子「¥」の意味について
-
Vba 型が一致しません(エラー1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
-
【マクロ】値を渡されたプロシ...
おすすめ情報