• ベストアンサー

エクセルアンケート集計 マクロ

以下のようなマクロを必要としておりますが、自力で書くことが出来ず、困っております。 どなたかご教示いただけますか。 (Excel2003を使用しています。) 目的:アンケートの集計 状況: AAAという名前のフォルダ(C:\AAA)に、BBB1,BBB2,・・・,BBB30、という名前の30個のファイル(C:\AAA\BBB*)が格納されています。 各BBBのファイルには、4択で1~4の数字を選んで回答するアンケートの回答が、 問1 1 問2 3 という体裁で記入されています。(全部で40問) 問○ というセルはA1から縦に、 問に対する回答の数字は、B1から縦に並んでいます。 やりたい事: BBBとは別のファイルで、30個の回答ファイルから、 問1で1と答えた人は○人、2と答えた人は×人・・・。 問2で1と答えた人は○人、2と答えた人は×人・・・。 という風に、問題毎、選択肢毎の回答数を一挙に集計したいと考えています。 特に分からないポイントとしては、 ・別のファイルを指定してデータを持ってくる方法 ・異なるファイル名を指定する操作をloopさせる方法 の2点です。 マクロは手動で実行するものとし、 データを参照するBBBのファイルは、マクロ起動時も終了時も閉じた状態にしたいと考えています。 ご教示の程、よろしくお願いいたします。

  • grthn
  • お礼率100% (8/8)

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

>別のファイルを指定してデータを持ってくる方法 「マクロの記録」で「開く」と「閉じる」を実行してみてください。 >異なるファイル名を指定する操作をloopさせる方法 For i = 1 To 30   ファイル名 = "C:\AAA\BBB" & i & ".xls"   (ファイルを開く)   (ファイルの集計)   (ファイルを閉じる) Next i

grthn
質問者

お礼

夜分にご回答くださり、ありがとうございました。 ポイントに対していち早くご教示頂き、大変参考になりました。 質問のマクロは頂いたヒントで無事完成させることができ、大変感謝しております。

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

マクロでの回答はすでにでていますので… 対象がたかだか30程度ならば、マクロで固定的な集計方法の結果を出すよりも1シートに全部の結果を集計しておいて、あとは自由に集計処理する方法にしておいたほうが、後で違う集計をしたくなってもすぐに対応できそうに思います。 幸い1回答は1列になっているみたいですので、例えばB列からの30列に各回答を参照させておけば、全部の回答内容の一覧ができます。 (ブック間のセル参照を設定しておけばよいだけ) とりあえず、このシートを回答集計とでもしておいて、他のシートでこのシートを参照しながら、自由に集計すれば(同じシートでもよいですが)、マクロなどを使わなくても関数とコピーフィルだけで集計できることでしょう。 もし、追加などで違う集計が必要になった場合でも、簡単に自力で対応できるのではと思います。

grthn
質問者

お礼

異なる観点からのご回答、ありがとうございます。 ご指摘の通り、マクロに拘泥しない事も重要ですね。 柔軟性という観点にも十分に留意したいと思います。 大変参考になりました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

このコーナーを借りて回答者に「コードを書いてくれ」というのは、規約違反ですよ。 もっと自分自身が勉強しないと。ものによっては、金を払って学校に言って勉強したり、手に負えないなら業者にやってもらうのが、世の慣わし(経済原則)です。もっと絞った1点ならよいが、全体を書けと言う丸投げはだめ。 だから下記は1方法だが、各ステップに分ける力を養わないと。 この課題は (1)決まった1つのフォルダの多数のファイルを1つづつ読んでいくコード Googleで照会すると、過去に似た質問が多いために沢山出てくる。  (A)FSOを使う方法 http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh18/cformwsh18_01.html(注)簡略化すると下記  (B)Dir関数を使う方法 GoogleでDir関数で照会。 http://www.accessclub.jp/samplefile/samplefile_209.htm など多数。  (C)FileSearch http://ziddy.japan.zdnet.com/qa4466015.html の2-3種有る。 (2)読んだファイルの1つのシートの決まった範囲(A)と思うが、 それを集約シート(B)に貼り付けるコード。 そのとき(A)の最終行が問題になることがある。(B)は最終行の次の行から下に貼り付けるので、必ずといったほど問題になる。 それは Sub test01() d = Range("A65536").End(xlUp).Row MsgBox d End Sub を色んなデータでやってみて、納得し応用のこと。 (3)あるシートにデータが集約されたら、VBA処理に拘らず、エクセル関数(Frequency関数)や、ソートや、集計の方法が使えないか考えること。 ーー 1つのシートにデータをまとめず、もちろんVBAだけで、集計したりする方法が有ると思うが、初心者らしい質問者は、VBAの利用は 最小限にとどめるべきだ。ブックを開かないでデータを採る希望が有るのかな、そんなのは勉強して先の先の話だ。ファイルを開いてー読んでー閉じるの繰り返しをやるべきだ。 ーー (注)  FSO利用でカレントフォルダCurDirのファイル名を列挙の例。 他のフォルダを指定に変更してファイル名が次々出てくることを納得のこと。 Sub test02() Dim Fld As Object Dim Fil As Object Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") Path1 = CurDir MsgBox Path1 Set Fld = FSO.GetFolder(CurDir & "\") For Each Fil In Fld.Files MsgBox Fil.Name Next End Sub

grthn
質問者

お礼

詳細にご指導頂き、誠にありがとうございます。 また、丸投げをしたいという意図があると誤解させる文面になってしまい、大変申し訳ございませんでした。 提示して下さった様々な方法は、今後の能力伸長の指針とさせていただきます。 ありがとうございました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

>データを参照するBBBのファイルは、マクロ起動時も終了時も閉じた状態にしたいと考えています。 ブックを開かないで読む http://www.officetanaka.net/excel/vba/tips/tips28.htm ご参考になるかもです。

grthn
質問者

お礼

ご回答ありがとうございます。 添付してくださったURLを参考に、より研鑽を積みたいと思います。

関連するQ&A

  • エクセルでアンケート集計したいので、関数・マクロを教えてください!

    宜しくお願い申し上げます。エクセルでアンケート用紙を作りました。セルh3~h35までに各問いの答えが「数字(1~5)」で入っています。約300人分で、各々ankt1~ankt300と名前を付けてエクセルファイルで保存してあります。それからh3に1は何人?h3に2は何人?・・・h35に4は何人?h35に5は何人?と集計したいのです。エクセルの関数・マクロで出来る方法がありましたら、どうぞご教示下さい!≦(._.)≧

  • エクセルでアンケートのクロス集計

    いつもお世話になっています。 アンケートの集計方法についての質問です。 問6の部分(F~T)が複数回答になっています。 このアンケートの集計で問2が「2以下」で問6に「1」のある数を集計したいのですが COUNTIFS関数で=COUNTIFS(C:C,"<=2",F:T,1)としてもエラーになってしまいます。 何か上手くいく方法は無いでしょうか?

  • エクセルでのアンケート集計方法

    こんにちは。 エクセルでのホテル満足度アンケート集計の仕方について困っています。教えてください。 具体的には・・・ どこのホテルか。 また、対応について、食事について、総合的に、、と1:大変満足 2:満足 3:普通、4:不満 5:大変不満に○をつけてもらい、それをエクセルでまとめました。                対応  食事  総合 AAAホテル  2  1   2 BBBホテル  2  2   2 CCCホテル  3  2   3 AAAホテル  2  2   2 BBBホテル  3  3   3 ・・・というように、100くらいデータがあります。 それぞれAAAホテルの対応、食事、総合は1,2,3,4,5がいくつかというのをまとめたいのですが、関数を使うのかピボットテーブルを使ったらいいのかよくわかりません。 教えてください。よろしくお願いします。

  • エクセルアンケート集計&分析 マクロ

    エクセルで書かれたアンケート結果を自動集計して 分析を簡単に行えるマクロを組みたいと考えています。 ファイルサーバー内の特定のフォルダ(\\Server1\enquete\)内にアンケートBook(*****.xls)が30個入っています。 アンケートbookには10枚のSheet(シート名はアンケート対象施設名)があります。 各アンケートSheetには、セルB2~B100に質問大分類、セルC2~C100に質問小分類、セルD2~D100に質問、セルE2~E100に評価点、セルF2~F100に評価者IDが記入されています。 ・対象施設 評価点順位 ・質問別平均点 ・評価点分布図 ・偏差値 ・平均点 などを分析したいと思います。 どのようなマクロの組み方が効率的と考えられますでしょうか? お詳しい方宜しくご教授ください。

  • エクセルのマクロ

    同一フォルダの中に、あるアンケートに対する回答の"Book01"~"BookXXX"のエクセルファイルと、その回答を一覧に並べるための"集計用ファイル"がります。このアンケートの回答ファイルは日々数が追加されて行くので、毎日"集計用ファイル"に回答を得た分を転記し日付の名前でもつけて保存して行きたいのです。エクセルマクロを使用して、この"Book1"~"BookXXX"のA1からZ1に入力されている数値を"集計用ファイル"のA~Zまでに1行目から下へ下へと転記したいと考えています。 ■質問 上記のケースで、フォルダ内の名前の異なるファイルすべてを対象に転記の作業を行う場合、どのようにマクロを作成すれば良いのかご指導頂くか、簡潔に説明しているサイト等ありましたら教えて頂けませんでしょうか。 ■補足 技量不足でフォルダ内にある名前の異なるファイル全てをを対象に転記を行うマクロを組むことができません。(フォルダ内のファイル名が特定できていれば独力でマクロを記録することはできます。) 過去の質問や、書籍も調べたのですが方法がわからなかったので投稿させて頂きました。よろしくお願いいたします。

  • powershellでcsvの集計

    powershellでのcsvデータの集計をしたいのですが、 よくわからず困っています。 csvのデータは、 aaa1,10,10,20 bbb1,100,100,200 aaa1,5,5,6 ccc1,50,50,60 … となっており、キーとなる項目が同じものは、数値を集計して 再度csvにするというものです。(aaa1が同じなので集計) aaa1,15,15,26   bbb1,100,100,200 ccc1,50,50,60 … という感じです。 よろしくお願いします。

  • エクセルでのアンケート集計

    こんにちは。 エクセルでアンケートの集計をしているのですが、分からないことが出てきたので 教えてください。 設問が20問ほどあるアンケートで、A~T列に設問1から20。 縦にアンケート結果を入力していきました。     A      B      C     設問1 設問2 設問3      1     1     2       3     2     2       2           1     複数回答は不可。ただし、当てはまるものがないときは 空白になるので、空白のセルもあります。 A列には回答者の学年が入っています(1~3) 全体の集計はcountifでできたのですが、学年別の数も調べることになりました。 Aが1でBに2と記入した人数をカウントするにはどうしたら良いでしょうか? 集計が記入されたシートを変更することができず、A列を学年別に並び替えて countifの範囲を学年別にすることはできません。 どうかお力を貸してください。

  • Excelでアンケート集計の関数について教えてください。

    初めて質問します。よろしくお願いします。 アンケートの集計で、複数の条件でカウントする方法を探しています。 COUNT,COUNTIF,DCOUNT,FREQUENCY,SUMPRODUCTなどで試してみましたが、範囲などの指定が悪いのか、エラーばかりが出ます。 集計内容は回答と年齢のみです。   A | B   回答|年齢 1 ○ | 25 2   | 18 3 ○ | 28 4 ○ | 30 5   | 21     :     : とあり、カウントしたい条件は回答の○の個数なのですが、なおかつ10代、20代、30代で数字を出さなければならない場合は、一番有効な関数はどれになりますでしょうか。 よろしくお願いします。

  • Excelでの集計の仕方について

    集計の仕方について質問です。 アンケートのような形態の、「1.良い、2.どちらとも言えない、3.悪い」というような質問で、1が何人、2が何人というような集計の仕方がしたいのです。 集計というとどうしても「1」と答えた人が10人、「2」と答えた人が3人、「3」と答えた人が5人として集計すると縦計算をし、1=10、2=6、3=15というような形に出てきてしまいます。 どうように、複数回答可というようなアンケートでも同様な集計がしたいのです。 どうやったらよいのかわからないので、教えて下さい。

  • エクセルの集計機能のマクロ

    会社の従業員にアンケートをエクセルで送付し、所定の表に回答を入力してもらい、そのエクセルを全従業員(50人)から回収するということを実施しました。 回答フォームは以下の通りでして、同様のフォームに記入された回答が50個のエクセルファイルとして存在します。 配布されたエクセルのフォームは 従業員No. 質問1  質問2   1      ○    A といった横3列、縦1行の表となっています。 各人のフォームが同じですので、これを50人分自動集計できるマクロを作成したいと思っています。集計したいイメージは以下の通りです。 従業員No. 質問1  質問2   1      ○    A   2      ×    D   3      ○    C  (間、省略)   50      ×    B       上記のように自動集計するマクロを作成したいのですが、どのようにプログラミングすればよいか分かりません。 いろいろなサイトを見ましたが、奈何せん初心者ですので理解できませんでした。 どなたか分かる方がいらっしゃいましたら、具体的なプログラムをご教授いただけませんか。

専門家に質問してみよう