ちょっと伝えづらいのですが
何とか読み取って頂けますと幸いです。
できると助かる動作は以下の通りです。
●シートの1つを「入力」、もう1つを「集計」として、まず「入力」のシートへ、
-----------------------
2012/5/1
No 名前 料金
1 山田太郎 1000円
----------------------
と入力したとします。
※添付画像を御覧ください。
●次に「集計」シートの方へは入力した情報を元に
===========
2012/5/1 山田太郎 1000円
===========
という形で表示させる
●また「入力」シートへ戻り、今度は
----------------------
2012/5/1
No 名前 料金
2 山田花子 3000円
----------------------
と入力内容を変更します。
そしてまた「集計」のシートを見たとき
===========
2012/5/1 山田太郎 1000円
山田花子 3000円
===========
と加わっている。
このような動作はマクロやVBAを使えばできるのでしょうか?
できるとすればやり方をご教授願います。
初心者の為、うまく伝えることができず申し訳ありませんが
宜しくお願いします。
No.1
- 回答日時:
できない事もないけど、入力した内容を次々と上書きするなら、VBAでマクロを組まないとできないと思います。
私がするなら「集計に追加する」ボタンを置いて、それが押された時に集計のシートに書き込むようにするかな。
でも本当に簡単にするなら、次のように下に追記させる様に入力させます。
これなら集計はピボットテーブルを使えば簡単に入力に連動した表が作れますから。
それに、先のVBAで作る方法でも、一度は他のシートに下と同じようにデータを並べてからピボットテーブルで集計させた方が簡単にできると思います。
----------------------
No 日付 名前 料金
1 2012/5/1 山田太郎 1000円
2 2012/5/1 山田花子 3000円
----------------------
なるほど!
「集計に追加する」ボタンの設置はいいですね!
ピボットテーブルという機能もあるんですね、
今後の参考になりました。
ご回答いただきありがとうございます!
No.2
- 回答日時:
Excelには、貴方の質問に似たような機能に「データフォーム」機能があります。
これが使えるかどうかは解りませんが、勉強してください。
http://allabout.co.jp/gm/gc/297800/
「Excel データフォーム」で検索すれば、色んな解説がされています。
もちろん、VBAで作成することも可能でしょうが、・・・
例えば、
http://www.serpress.co.jp/excel/vba004.html
>できるとすればやり方をご教授願います。
でもここで初心の貴方が、一から回答をもらうことは、無理です。
ご自分でやってみて、つまづいたところの回答をもらうようにしないと・・・
そのためには、まずVBAの基礎からの勉強が必要です。
http://www.asahi-net.or.jp/~ef2o-inue/menu/menu0 …
また、Excel vbaについての質問は、下記のサイトの方が良いと思います。
http://www.moug.net/index.html
データフォームというやり方もあるんですね。
なるほど。
>ご自分でやってみて、つまづいたところの回答をもらうようにしないと・・・
そうですよねぇ。。自分で勉強しないと始まらないですよね。。
ご紹介頂いたサイト等を活用して勉強していきます。
回答頂きありがとうございました。
No.3
- 回答日時:
こんばんは!
(1)ユーザーフォームで処理する
(2)「入力」Sheetにコマンドボタンを配置し、クリックでマクロを実行する
といった方法が最適だと思いますが、
ここでそのコトを書いても横道にそれてしまいますので
極力ご希望に近い形となると、データ入力時にマクロを実行する方法だと思います。
Noの部分は単に連番で良いわけですかね?
そういうことだとしての一例です。
↓の画像のような感じにしています。
(NOは勝手に連番表示させていますので、「入力」Sheetの「NO」の欄はなしにしています)
画面左下の「入力」SheetのSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてデータを入力してみてください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("A3:B3")) Is Nothing Or _
WorksheetFunction.CountBlank(Range("A3:B3")) Then Exit Sub
Dim i As Long
Dim ws As Worksheet
Set ws = Worksheets("集計")
i = ws.Cells(Rows.Count, 1).End(xlUp).Row
With ws.Cells(i + 1, 1)
.Value = ws.Cells(Rows.Count, 1).End(xlUp).Row
With .Offset(, 1)
.Value = Range("A1")
.NumberFormatLocal = "yyyy/m/d"
End With
.Offset(, 2) = Range("A3")
.Offset(, 3) = Range("B3")
End With
Range("A3:B3").ClearContents
End Sub 'この行まで
※ 最初からすべてを理解するのは難しいかもしれませんが、
こんな感じのコトが出来る!って感じで試してみてください。m(_ _)m
ご丁寧にありがとうございます。
さっそくこちらのコードで試させて頂いた所、
イメージにピッタリでした!
ただ「入力」シートへ名前と料金を入力して、確定(enter押下)させると
「集計」シートの方へ反映されますが、その時点で入力した内容が消えますよね?
これを残したまま、「集計」シートの方へ値だけ集計させる。という
事は無理でしょうか。
No.4ベストアンサー
- 回答日時:
No.3です。
お礼欄の
>ただ「入力」シートへ名前と料金を入力して、確定(enter押下)させると
>「集計」シートの方へ反映されますが、その時点で入力した内容が消えますよね?
>これを残したまま、「集計」シートの方へ値だけ集計させる。という
>事は無理でしょうか
について・・・
「入力」Sheetのデータは行方向にどんどん入力していく訳ですかね?
もしそうであれば前回のコードは無視して↓のコードに変更してみてください。
尚、「入力」SheetのB列データ変更時にマクロが実行されるようにしていますので、
「入力」SheetはA列入力 → B列入力 の順に行ってください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
On Error Resume Next
If Intersect(Target, Columns(2)) Is Nothing Or Target = "" Then Exit Sub
Dim i, k As Long
Dim ws As Worksheet
Set ws = Worksheets("集計")
k = Target.Row
i = ws.Cells(Rows.Count, 1).End(xlUp).Row
With ws.Cells(i + 1, 1)
.Value = ws.Cells(Rows.Count, 1).End(xlUp).Row
With .Offset(, 1)
.Value = Range("A1")
.NumberFormatLocal = "yyyy/m/d"
End With
.Offset(, 2) = Range("A" & k)
.Offset(, 3) = Range("B" & k)
End With
End Sub 'この行まで
こんな感じではどうでしょうか?m(_ _)m
おおおお!
まさに求めていた処理です!
ホントに助かりました。ありがとうございます!
他の方からの指摘があったとおり、
今後自分でもある程度作成できるように勉強したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) 生産日報と月間集計 3 2022/06/21 22:32
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
- Excel(エクセル) エクセルで割り振りをする方法 7 2022/08/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ピボットテーブルでは時間の表...
-
エクセルで特定の色の数字だけ...
-
【エクセル】オートフィルタで...
-
ピボットテーブルのページエリ...
-
エクセル ピボットテーブルで売...
-
エクセルで一定範囲内に含まれ...
-
エクセルの小計を自動的に色づ...
-
VLOOKUP関数とCOUNT関数等の組...
-
アンケートの集計
-
複数のピボットテーブルを一括...
-
Excelで毎日の売上を入力すると...
-
エクセル2007で小計機能を使い...
-
ピボットの集計方法「合計」初...
-
エクセルの主軸と第2軸の0を合...
-
エクセルで文字が白くなる
-
エクセルで需要と供給のグラフ...
-
エクセルで長い行を5行ごとに1...
-
エクセルで、時間 0:00を表示...
-
別のシートから値を取得するとき
-
Excelで小数点以下1桁の年数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の色の数字だけ...
-
【エクセル】オートフィルタで...
-
フィルタをしても最下行を常に...
-
ピボットテーブルでは時間の表...
-
VBAで重複する項目を1つにまと...
-
アンケートの集計
-
ピボットの集計方法「合計」初...
-
複数のピボットテーブルを一括...
-
ピボットを更新すると数式が入...
-
ピボットテーブルのページエリ...
-
EXCEL 重複データの集計の仕方
-
エクセル 関数を使った横方向の...
-
エクセルの小計を自動的に色づ...
-
Excelの集計結果だけをコピー貼...
-
エクセル、リソース不足エラー...
-
excelで集計の合計を降順に並べ...
-
EXCELで増減率を計算したいです
-
いい機能だけど、毎回めんどく...
-
ピボットテーブルで同じデータ...
-
Excel : 二通りの合計が合わな...
おすすめ情報