お世話になります
エクセルが3つあるとします下記
大阪方面.xls
コード|太郎|次郎|三郎|四郎|
0111| 1| | | 1 |
0112| | 1| | |
0113| | 1| | |
0114| | | | |
京都方面.xls
コード|田中|次郎|五郎|四郎|
0111| 2| | | 2 |
0112| | 1| | |
0113| | 3| | 1|
0114| 1| | | |
奈良方面.xls
コード|田中|次郎|五郎|四郎|
0111| 2| | | 2 |
0112| | 1| | |
0113| | 3| | 1|
0114| 1| | | |
上記3件のエクセルをを合計させたいのですが
■問題点
*名前がランダムに入っている
*名前の件数も決まっていない(セルのF20~BH20までのどれかに名前が入る)行数は1619です。
上記の内容からすべてに関数を入れるのは非常に重たくなりそう
*エクセルファイルは3つとは限らない。
*エクセルファイル名が決まっていない
■やりたいこと
VBAのフォームにテキストボックス(ファイル場所表示用)を設置しダイアログボックス呼び出し用ボタンを設置(10個ぐらい)
必要なxlsを指定し実行ボタンで下記のような計算をさせたいのが理想です。
合計.xls
コード|太郎|次郎|三郎|四郎|田中|五郎|
0111| 1| | | 5| 4 | |
0112| | 4| | | | |
0113| | 7| | 2| | |
0114| | | | | 2 | |
Win XP
オフィース2003
わかる方ご教授願います。
No.3ベストアンサー
- 回答日時:
ANo.2です。
F20:BH1639の範囲をスキャンして、
...............A...............B...............C
..1.............CODE.........名前................数値
..2.............0111.........太郎................1
..3.............0111.........四郎................1
..4............0112.........次郎................1
..5............0113.........次郎................1
…
という形に変換して、あるブックの特定シートに、ズラズラと下側に書き足していきます。対象ブックが変わっても、引き続き書き足していき、最終的に集計はピボットテーブルにお任せしようという案です。
変換部分は、二次元配列処理の基本ですから、説明するまでもないですよね?
この回答への補足
説明不足で申し訳ありません
集計するFormatが決まっており
基本的に集計前のFormatと集計後のFormatは同じです
よってピボットテーブルは不可と言われました;;
No.5
- 回答日時:
ANo.4です。
合計を表示するブックに既にコードと名前が入っているとした場合。
集計したい各ブックからコードと名前をキーにしてDictionaryオブジェクトを用いてまとめ、
合計.xlsのコードと名前の交差ポイントをワークシート関数のMATCH関数で求めて代入していく。
って言う感じになるのかな。(未検証ですけど)
コードと名前が事前に入っていない場合は、更にややこしいかも。
どちらにしても、それ以前がよくわかってませんのでスル~かな。
No.4
- 回答日時:
ANo.1です。
>10個のテキストボックスも必要です
>ダイアログのURL記載欄です
>ダイアログは計算するエクセルを指定します
ダイアログのURL記載欄?
とは読み込むブックのフォルダ名と言う事でしょうか。
フォルダは複数ある?それとも1つのフォルダに全てのブックがあるのですか?
どちらにせよANo.2さんの方法が良いように思います。
(でないと結構面倒かも)
No.2
- 回答日時:
ファイルが入っているフォルダー位は特定できるのではありませんか?
考えられるワークフローとしては、
1.ダイアログを表示してフォルダーを指定
2.フォルダー内のエクセルファイルのリストを取得
3.ファイルリストをUserFormのListBoxに表示して、複数選択
4.開いたブック(複数)のデータを、データベースのレコード形式に変形して、あるシートに集約。
5.ピボットテーブルで、目的の形のデータを取得。
といった所ではないでしょうか。
ワークフローがお気に召したら、分からないところをご質問下さい。
この回答への補足
あ、複数選択の手がありましたね^^
複数選択させる方法は、一部分まではわかるのですが、テキストボックスに記載された(複数)をワークシートに集約して(落とし込)それを集計させる方法がわかりません。
あと集約させるときに、重複している名前を合計させるのかな?
なにとぞご教授願います
できればVBAで例などありましたら助かります。
No.1
- 回答日時:
>ダイアログボックス呼び出し用ボタンを設置(10個ぐらい)
と言うのがよく分からないです。
(なぜ10個も必要なのか。テキストボックスは1個?)
ダイアログとは何を呼び出そうとしているのですか?
組み込みダイアログボックス一覧
http://homepage3.nifty.com/boole/reference2.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
別ブックから入力規則でリスト...
-
エクセルで50行ごとに区切った...
-
Excelで複数ブックの同一セルに...
-
【ExcelVBA】同一フォルダ内の...
-
EXCELの複数シートをそれぞれ別...
-
HYPERLINK関数でファイル名が取...
-
Excelで指定範囲のデータ...
-
(株)を株式会社に変換する自作関数
-
エクセルシートの一部を送りたい
-
エクセルで複数のシートを別フ...
-
エクセルのマクロを使ってシー...
-
アクセスvbaでエクセルブックを...
-
エクセルの「並び替え」後のデ...
-
エクセルで開いていないbookの...
-
【EXCEL VBA】あるシートの表示...
-
困ってます!EXCELで2つ...
-
VBA fileをダイアログで開いて...
-
Excelのファイルからシート毎に...
-
EXCELの自動リンク箇所の確認と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
Excelの警告について
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルにおける,「ブック」...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
エクセルで「ディスクがいっぱ...
-
Excelで複数ブックの同一セルに...
-
【マクロ】【VBA】別ブックへの...
-
Excel(2010)のフィルターが保...
-
Excelでブックの共有を掛けると...
-
エクセルで50行ごとに区切った...
-
エクセルでウィンドウの枠固定...
-
同じフォルダへのハイパーリン...
-
ブックのピボットを別ブックに...
-
VBAでブック保護非保護を判定す...
-
【マクロ】for nest について ...
-
エクセルファイルを開かずにpdf...
-
フォルダ内の複数ファイルから...
おすすめ情報