【最大10000ポイント】当たる!!質問投稿キャンペーン!

タイトルの通りですが、エクセルで毎回履歴を残していきたいのです。
簡単に説明いたしますと、毎回の出資金額に対して、収支を特定のシートに別シートからの関数で確認するシートがあるのですが
これの結果をまた別のシートで毎回履歴として残していきたいわけです。

以下のようなシート1があったとします。

     A   B   C   D   E
1行目 50                 7000
2行目                   20000
3行目                  13000  


上のシートにおいて、A1は回数だとします。
E1は出資金額、E2は獲得金額、E3はE2-E1で計算された結果だとします


これを、シート2で

     支出   収入   収支
50    7000   20000   13000 
51
52
53


と、いうような感じで残していきたいわけです。
シート1ではA1の回数は毎回、1回ずつ自動で加算されていくものとします。
E列の金額は次回データが入力されるまでは現数値がそのまま残るか、または空白状態になると思います。
このような場合にシート2で設定すべき関数、または方法がありましたら、どなたかご存知の方ご教示よろしくお願いいたします^^;

A 回答 (5件)

こんばんは、今後の活用のためにも、ボタンの作成の仕方だけ紹介しておきます。

新しいエクセルブックで、
上のバーから「表示」から「ツールバー」から「フォーム」をクリックします。
フォームのツールボックスが表示されますので、ボタンを選択して、シート上に、適当な大きさで作成します。
マクロの登録のウイザードが表示されますので、新規作成押すと、
VBエディターが開いて、
Sub ボタン1_Click()

End Sub
が自動で表示されます。その間に、以下をコピィ&ペーストして、

GYOU = Sheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Sheet2").Cells(GYOU, 2).Value = Range("E1").Value
Sheets("Sheet2").Cells(GYOU, 3).Value = Range("E2").Value
Sheets("Sheet2").Cells(GYOU, 4).Value = Range("E3").Value

×で閉じる。
E1:E3に適当に、数字入れて、ボタン押してみてください。
今後もがんばってみてください。
    • good
    • 0
この回答へのお礼

hallo-2007様、早速の補足でのご回答感謝いたします^^


マクロは全く初経験ですが、少なくともボタンの作り方だけは何とかわかりました^^;

ご提示の式を応用できるようになれば、使えそうな気がしてきましたので、なんとか基礎から本などでスキルアップに努めます^^;

お礼日時:2008/02/22 23:29

一応、質問の趣旨は実現しましたが、こまかいことは気に入るように修正してください。



sheet1はロックをかけたほうがよい。

Sheet1のworksheetに貼り付ける。
Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

r = Target.Row
c = Target.Column

r01 = 1
c01 = 5
r02 = 2
c02 = 5

If r >= r01 And r <= r02 And c >= c01 And c <= c02 Then

sethistry

End If

Application.EnableEvents = True

End Sub

bookの標準モジュールに貼り付ける。
Public r, c

Sub sethistry()

Set wb = Workbooks(ThisWorkbook.Name)
Set sh1 = wb.Sheets(1)
Set sh2 = wb.Sheets(2)

With sh1

r1 = 1
c1 = 5

hn = Cells(r1, 1)
hn = hn + 1

.Cells(r1, 1) = hn

sisyutu = .Cells(r1, c1)
syunyu = .Cells(r1 + 1, c1)
syusi = syunyu - sisyutu

.Cells(r1 + 2, c1) = syusi

With sh2

r2 = hn + 1
c2 = 1

.Cells(r2, c2) = hn
.Cells(r2, c2 + 1) = sisyutu
.Cells(r2, c2 + 2) = syunyu
.Cells(r2, c2 + 3) = syusi

End With

End With

End Sub
    • good
    • 0
この回答へのお礼

okormazd様、2回もご回答いただきましてありがとうございます^^

いただいた方法なのですが、私全くマクロやVBAなどを触ったことがない為に、敷居が高い方法のようです^^;

せっかくお考えいただいた方法ではあるのですが、今の私には活用できそうもありません。。。

関数では難しいということがわかりましたので、マクロを基礎からある程度覚えてから、いただいた方法を試してみたいと思います^^

お礼日時:2008/02/22 21:32

何か、先ほど回答した内容と同じような気がします。


以下のスレ参考にしてください。
マクロボタンの作成の仕方など、わからなければ別途質問してください。

以下、参考マクロ(VBA)

Sub ボタン3_Click()
GYOU = Sheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Sheet2").Cells(GYOU, 2).Value = Range("E1").Value
Sheets("Sheet2").Cells(GYOU, 3).Value = Range("E2").Value
Sheets("Sheet2").Cells(GYOU, 4).Value = Range("E3").Value
End Sub

参考URL:http://oshiete1.goo.ne.jp/qa3798742.html
    • good
    • 0
この回答へのお礼

hallo-2007様、ご回答ありがとうございます^^

同じような質問はよくあるみたいですね^^;
十分検索してから質問すればよかったのですが・・・
マクロボタンの作成の仕方以前にマクロは全く触ったことないものですから、私にとってはかなり敷居の高い方法のようです^^;

一度基礎からマクロを覚えてから、再度ご提示の方法含めてやってみたいと思います。

お礼日時:2008/02/22 21:27

関数では無理だろう、思いつかない。


VBAならできるが。

シート1は、
変更するデータは、「E1は出資金額、E2は獲得金額」だけか。
質問にあるようにレコードが1個だけなのか。
    • good
    • 0

ご質問の内容を見る限り、・・・



シート2 の支出欄は、E1 を参照し、収入欄は、E2 を、収支欄は、E3 を、それぞれ単純に参照すれば良いように思えます。

なお、単純に参照しているだけにすると、シート1 を変更するたびに、シート2 の内容もすべて更新されてしまいます。

 これを防ぐために、シート2 の項目のうち変更させたく無い部分に関しては、更新させたくない部分を選択し、<コピー> --> <形式を選択して貼り付け> で、<値> を選びます。 
 これで、この処理をした部分については、シート1 を変更しても、内容が更新されなくなります。
    • good
    • 0
この回答へのお礼

DIooggooID様、ご回答ありがとうございます。
ご提示の方法は私も考えはしたのですが
やはり全自動でできる方法がないかと、知恵を借りようかと思い質問させていただきました^^;

でも、ほかに方法がなければこの方法でやってみようと思います^^

お礼日時:2008/02/22 21:02

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


人気Q&Aランキング