Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6547 / 13646 ツリー ←次へ | 前へ→

【44615】マクロの実行 ミーナ 06/11/24(金) 12:43 質問[未読]
【44617】Re:マクロの実行 かみちゃん 06/11/24(金) 12:48 発言[未読]
【44620】Re:マクロの実行 ミーナ 06/11/24(金) 13:08 質問[未読]
【44621】Re:マクロの実行 かみちゃん 06/11/24(金) 13:53 回答[未読]
【44622】Re:マクロの実行 ミーナ 06/11/24(金) 14:13 お礼[未読]

【44615】マクロの実行
質問  ミーナ  - 06/11/24(金) 12:43 -

引用なし
パスワード
   いつもお世話になります。
いつも、コマンドボタンをクリックすることでマクロを実行するコードばかり作っていました。

Sub ナンバー()
  列 = 2
  For 行 = 2 To 9
  If Cells(行, 列) <> "" Then
   Set Lstv = .Range("A65536").End(xlUp)
   .Range("A65536").End(xlUp).Offset(1) = Lstv + 1
  End If
  Next
End Sub

標準モジュールに記入して実行するとできるのですが、2列目に記入があればA行に番号を入れて行きたいのですが、
シートモジュールにどのように書けばいいのでしょうか?
ご教授お願いいたします。

【44617】Re:マクロの実行
発言  かみちゃん  - 06/11/24(金) 12:48 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 2列目に記入があればA行に番号を入れて行きたい

ご提示のコードはエラーで動きませんが、何がしたいのでしょうか?
列と行の関係をきちんと整理してもう一度説明していただけませんか?
A行ってA列のこと?

【44620】Re:マクロの実行
質問  ミーナ  - 06/11/24(金) 13:08 -

引用なし
パスワード
   すみません。まったくもって間違ってました。

Sub ナンバー()
With Sheets("db").Select
  列 = 2
  For 行 = 2 To 9
    If Cells(行, 列) <> "" Then
   Set Lstv = Sheets("db").Range("A65536").End(xlUp)
  Sheets("db").Range("A65536").End(xlUp).Offset(1) = Lstv + 1
    End If
  Next
  End With
End Sub

これが正しいコードで、Sheets("db")のRange("A1")には常に数字が入ってます。
かみちゃんさんのいうとおり、A行でなくA列の間違いです。
Sheets("db")のB列に記入するたびに、一つしたの行のA列に続き番号を入れたいんです。
よろしくお願いします。

【44621】Re:マクロの実行
回答  かみちゃん E-MAIL  - 06/11/24(金) 13:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> Sheets("db")のRange("A1")には常に数字が入ってます。
> かみちゃんさんのいうとおり、A行でなくA列の間違いです。
> Sheets("db")のB列に記入するたびに、一つしたの行のA列に続き番号を入れたい

一つ下の行のA列に記入するのですね?
Sheets("db")のシートモジュールに以下のようなコードを記述してください。
若干無駄なコードも書いていますか、参考にしていただけるよう残しています。

Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
  If .Count > 1 Then Exit Sub
  If IsEmpty(.Value) Then Exit Sub
  If Intersect(Target, Columns("B")) Is Nothing Then Exit Sub
'  If Intersect(Target, Range("B2", Cells(Rows.Count, 2))) Is Nothing Then Exit Sub
 End With
' With Sheets("db").Range("A65536").End(xlUp)
'  .Offset(1).Value = .Value + 1
' End With
 With Target
  .Offset(1, -1).Value = .Offset(, -1).Value + 1
  '行番号をA1セルの値に加算する
  '.Offset(1, -1).Value = Range("A1").Value + .Row
 End With
End Sub

【44622】Re:マクロの実行
お礼  ミーナ  - 06/11/24(金) 14:13 -

引用なし
パスワード
   何度もありがとうございました。出来ました。
分からないところが多いので、一つ一つ理解していきたいと思います。

6547 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free