前回と同じく簡単入力のマクロについての質問です。

新しいユーザを登録した後自動的にソートしたいのです、自動マクロではうまくいきません。よろしくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/10/10 09:55:26
  • 終了:2007/10/10 12:14:55

ベストアンサー

id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/10/10 11:02:26

ポイント35pt

前回のコメントで提示したコードを元に回答しますが、

転記の後ろの部分にソート処理を追加してください。

Sub 転記()
    If Range("C4") = "" Or Range("C10") = "" Then
        MsgBox "氏名か電話番号が未入力です。"
        Range("C4").Select
        Exit Sub
    End If

    Dim cLine As Long
    If 修正行 > 0 And 状態 = "修正" Then
        cLine = 修正行
    Else
        cLine = Worksheets("DATA").Range("A4").CurrentRegion.Rows.Count + 4
    End If
    Sheets("入力").Range("C4:C" & Range("A4").CurrentRegion.Rows.Count + 3).Copy
    Sheets("DATA").Range("A" & cLine).PasteSpecial _
        Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Application.CutCopyMode = False
    
    cLine = Worksheets("DATA").Range("A4").CurrentRegion.Rows.Count + 4
    Sheets("DATA").Rows("5:" & cLine).Sort Key1:=Sheets("DATA").Range("A5"), Order1:=xlAscending, Header:=xlNo
    InitForm
End Sub

マクロの自動記録でおおよそのやり方はわかると思いますが、細かい修正が必要です。

今回の場合はシートを指定してあげればできると思います。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sort.html

id:mika555

いつもありがとうございます。

転記後、一度一番下の行にデータが登録されます。これをWクリックするとソートされるという仕様と考えてよろしいのでしょうか?

2007/10/10 11:51:03

その他の回答(1件)

id:KUROX No.1

KUROX回答回数3542ベストアンサー獲得回数1402007/10/10 10:01:04

ポイント35pt

■Excel VBA 入門講座

http://excelvba.pc-users.net/fol7/7_4.html

id:mika555

ありがとうございます。今後の勉強に役立ちます感謝いたします。

2007/10/10 11:51:43
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/10/10 11:02:26ここでベストアンサー

ポイント35pt

前回のコメントで提示したコードを元に回答しますが、

転記の後ろの部分にソート処理を追加してください。

Sub 転記()
    If Range("C4") = "" Or Range("C10") = "" Then
        MsgBox "氏名か電話番号が未入力です。"
        Range("C4").Select
        Exit Sub
    End If

    Dim cLine As Long
    If 修正行 > 0 And 状態 = "修正" Then
        cLine = 修正行
    Else
        cLine = Worksheets("DATA").Range("A4").CurrentRegion.Rows.Count + 4
    End If
    Sheets("入力").Range("C4:C" & Range("A4").CurrentRegion.Rows.Count + 3).Copy
    Sheets("DATA").Range("A" & cLine).PasteSpecial _
        Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Application.CutCopyMode = False
    
    cLine = Worksheets("DATA").Range("A4").CurrentRegion.Rows.Count + 4
    Sheets("DATA").Rows("5:" & cLine).Sort Key1:=Sheets("DATA").Range("A5"), Order1:=xlAscending, Header:=xlNo
    InitForm
End Sub

マクロの自動記録でおおよそのやり方はわかると思いますが、細かい修正が必要です。

今回の場合はシートを指定してあげればできると思います。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sort.html

id:mika555

いつもありがとうございます。

転記後、一度一番下の行にデータが登録されます。これをWクリックするとソートされるという仕様と考えてよろしいのでしょうか?

2007/10/10 11:51:03
  • id:Mook
    コメントが無効だったので終了後で失礼します。

    動作は、登録した時点でソートするので、常にソートされた常態となります。

    別々に処理した方が良かったでしょうか。
  • id:mika555
    入力してDATAシートを確認すると、一番下の行にデータが挿入されています。できたら、転記したら即ソート完了する状態が一番望ましいのですが。また、挿入された行が見えるようにすることは可能でしょうか?
  • id:Mook
    あら、転記後にソートされませんでしたか?
    これから確認します。


    確認しました。
    うーん、こちらでは登録と同時にソートされるので、DATAシートを見たときにはソート済みになっているのですが、入力したデータの名前が最後にくるような名前ということはないですよね。

    挿入された行が見えるようにするのは別の処理が必要ですが、まずはソートがきちんと動作していないでしょうか?

    いくつか順番が真ん中にくるようなデータを入力した場合、どうでしょうか。
  • id:mika555
    体を壊してお返事遅くなりました。データ量が多いためにうまく動かないのかもしれませんが、この機能は不要になりましたのでありがとうございました。いつも本当にありがとうございます。
  • id:Mook
    わざわざコメントありがとうございました。

    もう体調は戻られましたか?
    無理なさらないように。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません