- 締切済み
エクセルVBAを使用し、会社数やフォームに変更があった際にメンテナンスをする方法(初心者)
傘下会社に毎期エクセルでデータを配布し、決算の分析表を入力してもらって回収しています。 〈配布ファイル〉 A会社 実績 計画 計画差 計画差内訳… 売上高 ** 営業利益 ** 営業利益率 ↓ (続く) VBAを使ってこのエクセルファイル達をまとめて一つの表に集計したいと思っています。 各社のデータ(売上高、営業利益率等)を右に横1列に表示していき、 縦に会社を並べる表を、いくつかのシートに分けて最終作っています。 〈最終シート〉 (一枚目)総括表 売上高 営業利益 営業利益率 固定資産 … A社 ** * ** ** B社 C社 ↓ 合計 (二枚目)計画差内訳 人件費計画差 販管費計画差 A社 ** ** B社 C社 ↓ 合計 この際のメンテナンス方法について質問させて下さい。 (1)会社数が増加、減少したときに、VBAで簡単に全てのシートの行を メンテナンスする方法はありますでしょうか。 なお、各会社にコードを付していますので、メンテ後はその コードに従って縦に並べたいです。 (2)各会社に配布するエクセルフォームは同一なのですが、 総括表はその中の必要な数値のみを横に並べるのみの表で、 各社に配布するエクセルフォームとは異なります。 (利益率とかがあるので単純合計は出来ない) 今現在このような形でデータを集計しています。 1、回収したエクセルを貼付用フォームに貼付け 2、予め入力していた式で、必要なデータが横1列にくる様に式で飛ばす 3、2で横1列にしたデータを集計用ファイルに値貼付け 3はVBAでなんとかなるかと思うのですが、 2の部分のメンテナンスが毎期フォーム変更があると大変で非常に困っています。 すべて手作業で式を入力しており式を入れた後のチェック作業も非常に苦痛です。 次の人にこのファイルを引き継ぐのも、申し訳ないです。 が、式を手入力して横1列に飛ばす以外の方法が恥ずかしながら思いつきません。。 VBA等で簡単になりませんでしょうか。 補足が必要であれば何度でもいたします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答

- rivoisu
- ベストアンサー率36% (97/264)
- cistronezk
- ベストアンサー率38% (120/309)
- cistronezk
- ベストアンサー率38% (120/309)
- cistronezk
- ベストアンサー率38% (120/309)
- hallo-2007
- ベストアンサー率41% (888/2115)

補足
分かりにくい質問で失礼しました。 第1ステップ シート1~シート10に、以下の様な表があります。 売上高 営業利益 営業利益率 固定資産 … A社 ** * ** ** B社 C社 ↓ 例えばB社を売却したときに、全10シートでBを削除する、という処理を する必要があります。D社を新規に追加したときも同様です。 会社名をリストで作っておいて、そのリストを修正したら全ての シートで最新の会社データになるような処理をVBAで作れればと思っています。 第2ステップ 今現在、以下の3つのシートで集計しています。 ア 回収シート イ 回収シートのデータのうち、欲しいデータを横1列に飛ばす 貼付け用シート ウ 全体の総括用シート アのシートは以下の様なものです。 A会社 実績 計画 計画差 計画差内訳… 売上高 ** 営業利益 ** 営業利益率 ↓ 次にイのシートは、以下の様な表にアのデータを式で飛ばしています。 売上高 営業利益 営業利益率 売上高計画 … A会社 ** ** ** ** その後横1列に飛ばしたイのシートのデータをウのシートに値貼付けします. 〈ウのシート〉※以下の様なものが10枚程ある。 (一枚目)総括表 売上高 営業利益 営業利益率 固定資産 … A社 ** * ** ** B社 C社 ↓ 合計 問題点: ・このようにして全部の会社のデータを集計しているので、 会社数が多い場合は貼付けの手間が非常に煩雑です。 この貼付け作業を、自動的にやるマクロを作ろうと思っています。 ・また、イのところで横1列に毎期データを飛ばす式を入れる必要があります。(これはエクセルの式で一つずつ入れています。) 50項目くらいあるので、変更があった場合のメンテが非常に煩雑です。 この方法以外で、ウのフォームに集計出来るやり方か、 もっと簡単に横1列にデータを集計出来るやり方がお分かりになれば、ご教授頂ければありがたいです。 折角回答頂いたのに、まだ分かりにくかったら、本当にすみません。