[[20030305182905]] 『A1 B1 C1と入力するたびに1セルずれるように』(miyuki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『A1 B1 C1と入力するたびに1セルずれるように』(miyuki)

いつも、為になり助かってます。

[[20020530145644]]で電卓みたいな計算を紹介していたのですが、outpをシート2のA1、B1、C1と入力するたびに1セルずれることは不可能でしょうか?宜しくお願いします。(miyuki)


 ちょっと想像し難いのですが、1セルずれるとはどういうことですか?

 シート2のA1に入力したら答えはどこに出すの?

 シート2のB1に入力したら答えはどこに出すの?

 シート2のC1に入力したら答えはどこに出すの?

 行は1しか使わないのかな?

 (ramrun)


訊き方悪くごめんなさい。入力はシート1のA1のみとして入力するたびにシート2のA1.B1.C1.D1.E1というふうにずらしたいのですが・・・お願いします。


 電卓みたいな計算をするわけではないってことですね?

 シート1のA1で入力するとシート2のA1,B1,C1,... とズレます。

 シート1のA1でdeleteすると、逆に消しながら戻ってきます。

 シート1のB1で、シート2のセルの位置を管理してます。

 そこではまずいようでしたら、 outp = "$B$1" を変更してください。

 sno = 2 を変えれば、出力シートを変更できます。

 (ramrun)

 Private Sub Worksheet_Change(ByVal Target As Range)

    Application.EnableEvents = False

    Dim inp, outp As String

    Dim sno, posi As Integer

    inp = "$A$1"

    outp = "$B$1"

    sno = 2

    posi = Range(outp).Value

    If posi < 1 Then posi = 1

    If Target.Address = inp Then

        Worksheets(sno).Cells(1, posi).Value = Target.Value

        If Target.Value <> "" Then

            Range(outp).Value = posi + 1

            Range(inp).Select

        ElseIf posi > 1 Then

            Range(outp).Value = posi - 1

            Worksheets(sno).Cells(1, posi - 1).Value = Empty

        End If

    End If

    Application.EnableEvents = True

 End Sub

ほんとに助かりました。次回は自分でもVBAの本を買って、ramrun先生の作成していただいたマクロが読めるよう頑張ります。ありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.