こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excel データを各シートへ自動振り分け(各シート、元データと連動)

こんばんは。
マクロもVBAもチンプンカンプンの私が、色々調べ挑戦したのですが・・・ 頭がパンク状態。
自分がやりたい事も上手く伝えられてるか、不安ですが宜しくお願いします。m(__)m

<ファイルの状況> Excel2003使用
Sheet1  コードNo.+勘定科目が入力されているSheet
Sheet2  全ての勘定科目のデータが入力されているSheet
     ※新しい情報は、随時このSheetに入力
◎勘定科目ごとのSheet数は、月(年)によって異なります

<やりたい事> ※画像参照(見にくかったら、ごめんなさい)
1.「更新場所」のデータを勘定科目ごとに自動振り分けしたい。
   ※Sheetごとに合計も出てると理想
2.「更新場所」に新しいデータを入力すると、振り分けられた各Sheetのデータも自動更新される。(元データと各Sheetが連動されてる。)

<参考にしたサイト>
【A】 http://www4.ocn.ne.jp/~yy3/Sub61.html

【A】のサイトのプログラムを「ExcelのVisual Basic Editor」を開き貼り付け、「データを各シートに振り分ける」までは出来たのですが・・・
振り分けられた各シートを見ると、合計が出てないんです。
それは単純に【A】のサイトのプログラムの中には、「各シートの合計値を求める」という
指示のプログラムが入っていないからだと考えました。(素人の考えです。)

<やりたい事>の1の各Sheetで合計値を求める事と、<やりたい事>の2が出来ていないので、【A】のサイトのプログラムに・・・
以下のプログラムを追加すると、私の目的にあったプログラムが出来る?と思ったのですが、出来ますでしょうか?
1.「振り分けられた各Sheetの合計値を求める」という指示
2.「更新場所に新しいデータを入力すると、振り分けられたSheet内のデータが自動更新」されるという指示

また、【A】のサイトを元に各Sheetに振り分けると、一番最後に「合計」というSheetが登場するのですが・・・
「合計」のSheetを見ても#REFと表示されているだけで、なんの為にあるSheetなのか、よく分かりません。

「合計」のSheetを見るまでは考えていませんでしたが、「合計」のSheetに各Sheetの
勘定科目・支出・収入の合計金額が表示されると、とても理想的です。

マクロもVBAも全然分からないのに、要望だけ沢山あってすみませんが、宜しくお願いします。

P.S 【A】サイトより私の目的にあったプログラムがあったら、【A】サイトのプログラムにこだわる理由はありません。
色々調べてこれがいいのかな?と思っただけですので・・・
宜しくお願い致します。

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2010-02-26 20:43:44

QNo.5708600

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

私も#1、#2回答に賛成ですが
VBAを勉強したいとの事なので
しかし、質問が良く分かりませんので
#1補足のリンク先の#1の回答を参考に
コードを作成してみました

'シートモジュールへ
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim mws As Worksheet
If Cells(1, Columns.Count).End(xlToLeft).Column < Target.Column _
Or Cells(Target.Row, 1).Value = "" _
Or Target.Row = 1 Then Exit Sub
For Each ws In Worksheets
If ws.Name = Cells(Target.Row, 1).Value Then
Cells(Target.Row, 1).Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column).Copy _
ws.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Set ws = Nothing
Exit Sub
End If
Next ws
Set mws = ActiveSheet
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = Cells(Target.Row, 1).Value
Set ws = Worksheets(Worksheets.Count)
mws.Select
Cells(1, 1).Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column).Copy _
ws.Cells(1, 1)
Cells(Target.Row, 1).Resize(1, Cells(1, Columns.Count).End(xlToLeft).Column).Copy _
ws.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Set mws = Nothing
Set ws = Nothing
End Sub

>マクロもチンプンカンプンなのにAccess?!
逆ですよ、Accessの必要な機能・操作覚えるのは1ヶ月~2ヶ月勉強すれば出来そうですが
マクロは1年~2年かかりますよ、現在チンプンカンプンな方には難しいかと
まずは、基本を覚えないと先に進まない
>マクロの意味を理解する事に時間を使いたいと思います。
このためにも基本を覚えないと無理ではと思います

提示したコードはサンプルですので悪しからず
以上参考まで

投稿日時 - 2010-02-27 12:40:23

ANo.2

マクロなんて勉強するよりAccessの方がはるかに簡単ですよ。

投稿日時 - 2010-02-27 11:40:51

ANo.1

目的が何なのか良くわかりませんが、ExcelよりAccessでも使った方が良いですよ。

投稿日時 - 2010-02-26 22:27:57

補足

orangezzzzさん
目的がわからない・・・?失礼致しました。
マクロもチンプンカンプンなのにAccess?!
今はAccessを勉強するよりも、目的にあったマクロを教えて頂き、
マクロの意味を理解する事に時間を使いたいと思います。
Accessという方法を教えて頂き、ありがとうございました。m(__)m

ちなみに・・・
この質問者の方と同じ事をしたいんです。
 ↓
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1034683710

でも、やっと見つけた!って思い、回答者の方が貼り付けてくれたURLをクリックしても・・・マクロを見ることが出来ない。。。
自分では上手く説明できない?と不安を抱えながらも、どうしても解決したくて、
ここで質問させて頂いたんです。
ご迷惑おかけして、すみませんでした。

投稿日時 - 2010-02-26 23:57:46

あなたにオススメの質問