Sub アンケートファイルの取り込み処理()
Dim Button, T, I, L As Integer
Dim OpenExcelFileName, ExcelFileName, ExcelFilePath, FileName As String
Dim Kaitou(12) As String
Application.DisplayAlerts = False '確認メッセージを無効化します。
T = 5
Button = MsgBox("アンケートファイル取込処理を行いますか?", vbYesNo + vbQuestion, "確認")
If Button = vbYes Then
OpenExcelFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") 'ダイアログを表示取り込むフォルダーにあるファイルを選択します。
If OpenExcelFileName <> "False" Then
ExcelFileName = Dir(OpenExcelFileName) '指定したファイルパスからファイル名を代入します。
ExcelFilePath = Replace(OpenExcelFileName, ExcelFileName, "") '指定したファイルパスを指定します。(ファイルパスからファイル名を取り除く)
MsgBox ExcelFilePath & "この選択フォルダからデータを読込み込みます。"
Else
MsgBox "キャンセルされました"
Exit Sub 'キャンセルでプログラムを終了します。
End If
FileName = Dir(ExcelFilePath & "*.xls?") '指定したフォルダーから一件目のEXCELファイルを指定します。
Do While FileName <> "" '読み込むファイルがなくなるまで繰り返す。
Workbooks.Open FileName:=ExcelFilePath & FileName, ReadOnly:=True, UpdateLinks:=0
'
'※01-----------------------------------(読み込んだアンケートファイルの処理ここから)
Sheets("アンケート").Select 'アンケートのシートを選択
L = 0 '配列の0番からの指定
For I = 4 To 14
Kaitou(L) = Cells(I, "C") 'C列のC4~C14のデータをkaitou配列に入れます。
L = L + 1 '配列の番号を加算する(次の配列に移す)
Next I
ActiveWindow.Close '読み込んだアンケートファイルと閉じます。
'※01-----------------------------------(読み込んだアンケートファイルの処理ここまで)
'※02----------------------------------(アンケート集計のファイル処理ここから)
Sheets("結果一覧").Select '結果一覧のシートを選択
L = 0 '配列の0番からの指定
For I = 1 To 12 'A列からK列まで繰り返す。
Cells(T, I) = Kaitou(L) '配列dデータから結果一覧に転記する。
L = L + 1 '配列の番号を加算する(次の配列に移す)
Next I
Cells(T, "L") = "=SUM(G" & T & ":K" & T & ")" '列の結果合計にSUM関数を代入して合計を計算します。
FileName = Dir() '次のファイルを指定する。
T = T + 1 '結果一覧に転記する行を+1加算する。
'※02----------------------------------(アンケート集計のファイル処理ここまで)
Loop
Range("B1") = T - 5 '読込件数をB1に転記する。
MsgBox "ファイル数" & T - 5 & "件 取り込みました。" '読込件数をMsgBoxで表示
Else
MsgBox "処理を中断します"
End If
Application.DisplayAlerts = True '確認メッセージを有効化します。
End Sub