[[20050305051206]] 『セルに順次数字を入れて足し算させる方法』(ネオ) ページの最後に飛ぶ

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

 

『セルに順次数字を入れて足し算させる方法』(ネオ)

[セルに順次数字を入れて足し算させる方法を教えてください。]


 下記リンクのようなことでしょうか。
[[20020530145644]] 『電卓みたいな計算できますか?』(事務員です)
同じセルへ次々数値を入力していくということだと思いますが、
私はエクセルでは現実的ではないと思っています。
入力用のセルを確保しておいて合計を表示したいところへ
SUM関数で合計すればよいのでは?
画面上不要な数字の羅列があるのはみっともないかと思われてるのかもしれませんが、
エクセルには行、列の非表示機能や印刷範囲を限定する機能があるので、
実用上は問題がないと思います。
極端な話ですが、65536行×256列×メモリの許す限りのシート数  の入力空間が
あるのですからまずはそれを活用すべきです。
(みやほりん)


 ramrunさんのを少し借りてやってみました。
 本来は、みやほりんさんの仰るとおりですので、以下のものはお遊び程度でお試しください。

 シートモジュールに貼り付けてA1セルに入力すると、C1セルに値が出ます。
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "A1" Then Exit Sub
    If Not IsNumeric(Target.Value) Then Exit Sub
    Application.EnableEvents = False
    With Range("C1")
        BeforeFormat = .NumberFormat
        If Target.Value <> "" Then
            ActiveCell.Offset(-1, 0).Select
        Else
            .Value = 0
            .NumberFormatLocal = "G/標準"
            ActiveWorkbook.DeleteNumberFormat NumberFormat:=BeforeFormat
            Application.EnableEvents = True
            Exit Sub
        End If
        BeforeVal = .Value
        .Value = .Value + Target.Value
        MyKeta = Len(Replace(.Value, Fix(.Value), "")) - 1
            If MyKeta <= 0 Then
                MyStr = "#,##0"
            Else
                MyStr = "#,##0." & Application.Rept(0, MyKeta)
            End If
            MyFormat = BeforeVal & "+『 " & Target.Value & " 』= "
            .NumberFormatLocal = """" & MyFormat & """" & MyStr & ";" & """" & MyFormat & """" & "-" & MyStr
            If BeforeFormat <> "General" Then
                ActiveWorkbook.DeleteNumberFormat NumberFormat:=BeforeFormat
            End If
    End With
    Application.EnableEvents = True
End Sub

 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


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