
タイトルの通りですが、エクセルで毎回履歴を残していきたいのです。
簡単に説明いたしますと、毎回の出資金額に対して、収支を特定のシートに別シートからの関数で確認するシートがあるのですが
これの結果をまた別のシートで毎回履歴として残していきたいわけです。
以下のようなシート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で設定すべき関数、または方法がありましたら、どなたかご存知の方ご教示よろしくお願いいたします^^;
No.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に適当に、数字入れて、ボタン押してみてください。
今後もがんばってみてください。
hallo-2007様、早速の補足でのご回答感謝いたします^^
マクロは全く初経験ですが、少なくともボタンの作り方だけは何とかわかりました^^;
ご提示の式を応用できるようになれば、使えそうな気がしてきましたので、なんとか基礎から本などでスキルアップに努めます^^;
No.4
- 回答日時:
一応、質問の趣旨は実現しましたが、こまかいことは気に入るように修正してください。
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
okormazd様、2回もご回答いただきましてありがとうございます^^
いただいた方法なのですが、私全くマクロやVBAなどを触ったことがない為に、敷居が高い方法のようです^^;
せっかくお考えいただいた方法ではあるのですが、今の私には活用できそうもありません。。。
関数では難しいということがわかりましたので、マクロを基礎からある程度覚えてから、いただいた方法を試してみたいと思います^^
No.3
- 回答日時:
何か、先ほど回答した内容と同じような気がします。
以下のスレ参考にしてください。
マクロボタンの作成の仕方など、わからなければ別途質問してください。
以下、参考マクロ(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
hallo-2007様、ご回答ありがとうございます^^
同じような質問はよくあるみたいですね^^;
十分検索してから質問すればよかったのですが・・・
マクロボタンの作成の仕方以前にマクロは全く触ったことないものですから、私にとってはかなり敷居の高い方法のようです^^;
一度基礎からマクロを覚えてから、再度ご提示の方法含めてやってみたいと思います。
No.2
- 回答日時:
関数では無理だろう、思いつかない。
VBAならできるが。
シート1は、
変更するデータは、「E1は出資金額、E2は獲得金額」だけか。
質問にあるようにレコードが1個だけなのか。
No.1
- 回答日時:
ご質問の内容を見る限り、・・・
シート2 の支出欄は、E1 を参照し、収入欄は、E2 を、収支欄は、E3 を、それぞれ単純に参照すれば良いように思えます。
なお、単純に参照しているだけにすると、シート1 を変更するたびに、シート2 の内容もすべて更新されてしまいます。
これを防ぐために、シート2 の項目のうち変更させたく無い部分に関しては、更新させたくない部分を選択し、<コピー> --> <形式を選択して貼り付け> で、<値> を選びます。
これで、この処理をした部分については、シート1 を変更しても、内容が更新されなくなります。
DIooggooID様、ご回答ありがとうございます。
ご提示の方法は私も考えはしたのですが
やはり全自動でできる方法がないかと、知恵を借りようかと思い質問させていただきました^^;
でも、ほかに方法がなければこの方法でやってみようと思います^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するQ&A
- 1 <エクセル>内容を変更したときの時刻を履歴として残すには?
- 2 エクセルの保存履歴を残す方法
- 3 エクセル エクセルです 上の通り打ち込んだところ 下のようになりました これは正しい表示なのでしょう
- 4 エクセル履歴書テンプレートの左側の履歴の行数を4行減らしたいのです。
- 5 エクセル2003で、数式を入っているセルの数字だけを残したい場合・・・
- 6 エクセル2013VBA タイトルを除いて配列に入れて、別タイトルの下に転記したい
- 7 エクセルでタイトルを指定すると、タイトルだけのページが多数出力される
- 8 エクセル2016 残日数を 残〇〇日 と表示する方法
- 9 エクセルの1枚印刷マクロを作ったが大量印刷してしまう。マクロは以下の通りです。どこが変ですか
- 10 エクセルで、6桁の数値から、大きな位の数値から4桁を取り除き、残る数値を表したい。
関連するカテゴリからQ&Aを探す
おすすめ情報
人気Q&Aランキング
-
4
Access-VBAでExcelファイ...
-
5
エクセルでファイルを開いたと...
-
6
EXCELでチェックボックスに自動...
-
7
エクセルのシート名をリスト化...
-
8
シートの名前をほかのシート、V...
-
9
特定のセルを丸で囲む方法 ご...
-
10
excelで会議室予約表の作成(マ...
-
11
指定したシート名以外を非表示...
-
12
エクセルで、シートの名前を変...
-
13
range クラスのselectメソッド...
-
14
Excelでハイパーリンク先の表示...
-
15
Excel2010 イベントプロシージ...
-
16
複数シートのボタンに同一の動...
-
17
Openoffice calc で複雑な入力...
-
18
Excelに貼り付けたオブジェクト...
-
19
【エクセルVBA】「インデックス...
-
20
InputBoxに入力した言葉をシー...