dポイントプレゼントキャンペーン実施中!

初めまして。仕事の書類を作っている最中に壁に当たったのでご質問させていただきました。
早速ですが本題に入りたいと思います。
ユーザーフォームを使用してテキストボックスを使い3つのテキストボックスに入力を終えた後にコマンドボタンを押してセルB2,C3,D4に表示するとします。(下図のように)
A B C D E
1
2 あ い う
3
4
5
6
このとき、また違う文字をテキストボックスに入力し、登録した場合、
B列,C列,D列の最終行+1にどんどん入力していくというコードは調べてわかったのですが、下図のように上下とも既に文字列が入っていて、この間セル(B3:B6,C3:C6,D3,D6)に上から順にコマンドボタンを押す度どんどん入れていくためのVBAはどうなるのでしょうか?
A B C D E F
1
2 s d f d
3
4
5
6
7 f f f f
8
9
10
ちなみにこの場合だと8列目もしくは変なところに飛ぶと思うのですが…。
どうぞよろしくお願い致します。

A 回答 (1件)

試しにサンプルマクロを組んでみました。


A7以降もデータを転記する場合は、コメント(1)(2)の行は削除してください。

Sub test()
  Dim rng1 As Range
  Dim rng2 As Range
  Dim dcell As Range
  Dim ecell As Range
  
  Set rng1 = Range("A2", Range("A2").End(xlDown))
  Set ecell = Range("A7") '(1)
  On Error Resume Next
  Set rng2 = rng1.SpecialCells(xlCellTypeBlanks)
  On Error GoTo 0
  If Not rng2 Is Nothing Then
    Set dcell = rng2.Item(1)
  ElseIf rng2 Is Nothing Then
    If rng1.Item(rng1.Count) = ecell Then Exit Sub '(2)
    Set dcell = rng1(rng1.Count).Offset(1)
  End If
  dcell.Value = "ABC"
End Sub
    • good
    • 0
この回答へのお礼

本日実行してみました。
おかげでこの問題が解決しました!!
本当にありがとうございました。
またありましたらよろしくお願いします!!

お礼日時:2008/10/29 22:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!