プロが教えるわが家の防犯対策術!

社内アンケートの分析を任されて
エクセルで回答を求めたのですが、回答者が多すぎて、
コピペで対応できない状況です。
全て同じ行と列に書き込まれたデータなのですが、対応方法はありますか、教えて下さい。

A 回答 (3件)

OKWEBの質問#595745に私の回答が載っています。


これでエクセルワークシートのA列に、あるフォルダの中のブック名のリストが出来ます。これをやってファイル名がリストされるかやって見てください。
それから#2のプログラムと結合です。
#595745のプログラムの実行でファイル名が1つ掴めたプログラムのポイントのあとに、f = "c:\my documents\" & fn(i) 以下を組み合わせれば良いのですが、パス、フルパスの問題とか、必要なちょっとしたVBAの修正が出来るでしょうか。
テストが必要だが、この型の問題は回答者側でファイルを沢山作るのは大変なので、やりにくいんです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
早速試してみます

お礼日時:2004/01/17 23:13

3つのファイルのSheet1のA1をbook1のA列に集めました。

Arrayのところを、同一フォルダ内のファイルを取り出すように、プログラムを組みかえると質問のケースが出来そうです。
1つのフォルダ内のファイル名を捉えるVBAは以前に
回答したことがあります。
Sub test01()
i = 1
fn = Array("", "test01.csv", "test02.csv", "test03.csv")
For i = 1 To 3
f = "c:\my documents\" & fn(i)
Workbooks.Open (f)
ActiveWorkbook.Sheets(1).Activate
Workbooks("book1").Sheets("sheet1").Cells(i, 1) = Cells(1, 1)
Workbooks(fn(i)).Close
Next i
End Sub

この回答への補足

回答ありがとうございます
googleでArray関数について調べてみましたが
理解不可能でした
同一フォルダの名前を”アンケート回収”としている
場合どのようになるのでしょうか

ちなみに
私の環境はmacですので
5行目の
f = "c:?my documents?" & fn(i) を
f = "desktop" & fn(i)にすればよいのでしょうか

補足日時:2004/01/17 11:01
    • good
    • 0

マクロやそういったプログラムを作って自動化。


これが一番楽だとは思うのですが、
いかんせんどのような形式のアンケートなのか
わからないのでちょっと回答に躊躇しています

ただ、アルゴリズム的にはこうなるでしょう。

あらかじめフォルダ内に全てのExcelのファイルを
おいておく

新たなブック/ファイルを作成
質問ごとにシートを作成

プログラム内のフォームでフォルダを指定する

そのフォルダ内にエクセルのファイルがあるか確認
ファイルがなければプログラムを終了する
そうでなければ
エクセルファイルを読み込む(A)

新たなブック/ファイルに書き込む

(A)を繰り返す。

プログラム、気が向いたら作ります。

この回答への補足

回答ありがとうございます

アンケートのファイルの名前は
”0001.xls” ”0002.xls"・・・・・・”0322.xls”です

アンケートのファイルは、
Sheet1からSheet3までで構成されていますが使うのはSheet1のみです。
さらに、Sheet1のF2からI29を抽出し
まとめてコピペするSheet(以下、統合Sheet)のAからABの列に
上から順に4列ずつ書き込む。

作業を自動化したいのですが。
よろしくお願いします

補足日時:2004/01/17 10:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!