- 締切済み
参照元のブック名の変更を自動的に式に反映させたい
1つのフォルダの中に生徒数分のブックがあり、その他に集計用のブックがあります。 生徒用ブックが20、集計用が1つあると思ってください。 集計用ブックには参照元の生徒用ブックの点数等が自動的に反映するようにしたいと思います。 表は、B1から列横に生徒の名前、 A2から下にテスト項目、 B列2行目から下に各々の生徒の成績が反映されていると思ってください。 1行目の生徒名も、成績の点数も、生徒のブックをいじると 自動的に集計用ブックに反映されるようにしたいのです。 自分で使用するなら、後が面倒でも簡単な方法を採るのですが、 私は元を作るだけで、それぞれ講師の先生に渡して使って貰うので、 なるべく自動的に反映されるようにしたいと思っています。 今、仮にブック名をstudent1と付けていても、実際には生徒名を付けるでしょうし、 シート名も代わる可能性があります。 使用するシートの表形式は、基本的に生徒用も集計用も全く同じにします。 ただ、集計用に関しては、生徒の成績の欄が横にずらずら~と長くなるイメージです。 リンクでやると、ブック名が変わるたび 毎回リンクの変更更新をしなければいけないので、 作業が面倒になります。 すると、マクロでないと出来ないと聞きました。 使用エクセルは2003です。 こんな面倒な質問に答えて頂ければ幸いです。 やりたいことが伝え切れているか不安ですが、不明点を記載して頂ければ補足します。 どうか、宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- web2525
- ベストアンサー率42% (1219/2850)
>エクセルど素人なので、どうしたらよいか、具体的にコードや方法を教えて頂けると助かります。 一般的なマクロの操作や動作確認と言う事であれば別ですが、すでに運用されているシステムの場合 実際のシート構成、保存フォルダー、運営方針・ルールなどの詳しい情報がないと具体的なコードの提示と言うのは無理です たとえコードの提示が出来たとしても、実際に保守運営を行う方が理解されていないと細かな修正も出来ません、何かしらの不具合が出来てこの場に再度質問を行ったとしても、前回コードを提示した回答者が必ず回答を行うわけではないため、余計ややこしくなる可能性があります
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルではシートやブックを別にすると、途端にまとめなどがむつかしくなる。エクセルの経験が少ないからそういうことをすると思う。質問のようなことは、質問者がVBAでも出来ないと出来ないおもう(仕事にエクセルを使い出すとVBAが出来ることが必須だろう)質問者は簡単なVBAでも作った経験あるのかな。 ーー 次善の策として、生徒数分の各シートに、まとめて、シートの3D集計や、統合などの機能を使うようにすべきでしょう。 そのためにはVBAのお世話になる必要があるかもしれないが、まだコードは比較的簡単と思う。 ーー 疑問 >1つのフォルダの中に生徒数分のブックがあり >表は、B1から列横に生徒の名前、 は矛盾するようで良くわからない。 表は、下記のように取れるが ーーー田中 鈴木 木村 ・・・ 国語 20 30 25 算数 30 理科 ・・・ ならブックは生徒別が必要ないのでは? 質問には文章でくだくだ書くばあかりでなく、簡単なシートの列や行のデータ実例を挙げて質問すること。 ーー 一案(質問の自動という点ではない) かりに自動でブック名が変わったとして、どういう機能で集計なりを出そうというのか?目算はあるのか? ピボットテーブルという機能がある。 これは別の複数ブックを指定できる。 点数1.xls ーー 田中 木村 鈴木 国語 20 35 40 算数 30 30 50 社会 40 40 20 ーー 点数2.xls 田中 木村 鈴木 国語 20 30 40 英語 40 50 20 算数 20 20 20 ーー ピボットで合計すると 合計 / 値2 列 行 田中 木村 鈴木 総計 英語 40 50 20 110 国語 40 65 80 185 算数 50 50 70 170 社会 40 40 20 100 (空白) 総計 170 205 190 565 操作の途中で 統合するワークシートの範囲を指定してください、で [点数1.xls]Sheet1!$A$1:$D$5 [点数2.xls]Sheet1!$A$1:$D$5 のように別ブックを指定できる。 20ブックもあると指定が大変だが、仕方がない。どこかにこの20行の範囲を作っておき、作業の前に変わってないかチェックするしかなかろう。 ピボットは合計だけでなく、いろんな計数をだすことが出来る。 体裁についても色々できる。 こういうのでも活用してやるほか無いでしょう。 点数1.xls]Sheet1!$A$1:$D$5 などを変えたときは、ピボットの操作者が変えないと自動では変わらないでしょう。 ー たやすく自動というがプログラムのプロの仕事であって生易しいものではない。 関数におけるデータ変更で結果が自動で変わることぐらいが自動の場面と思っていて丁度良い。
- web2525
- ベストアンサー率42% (1219/2850)
根本的なことですが ブック名を変更した場合、マクロであっても変更したブック名にコードの中身を書き換える必要が出てきます ※Sheet名が変更になる分にはSheet(1)とそのブック内の何番目のシートと指定する事でシート名が変更になっても対応は可能(シートの並び順を変えたり、追加・削除をしない限り) ブックの名前付けのルール自体を取り決める必要があります 例: 1.集計用のブックを作成 2.集計用ブックの生徒名から生徒別のブックの作成 3.生徒別のブック名の変更、保存先フォルダーの変更禁止 4.生徒用ブックのシートは削除や追加、並び順変更の禁止 ※3と4は運営ルール、2はマクロで自動作成 こんな形で
補足
なるほど、やはり自動的に、と言うわけにはいかないと言うことですね。 エクセルど素人なので、どうしたらよいか、具体的にコードや方法を教えて頂けると助かります。 現状のベストの方法で、構いません。
補足
ありがとうございます。 私の実力では無理だと思いながらも、上司の無茶な命令にとにかく出来るところまでやってみようと、言う状態です。 ピボットテーブルを使うのも手ですね。 ブックを別にしているのは、個々の成績の分析、グラフ化した物を受講者別に管理しているからで、生徒数分のブックと集計ブックを用意するのは、今回のミッションでは必須なのです。ピボットテーブル試してみます。 細かく教えて頂き、ありがとうございます。 またお礼を書きたくなった時に、書くところが無くなると困るので、補足に記載しました。ご容赦ください。