[[20151021142428]] 『アンケート集約』(ランラン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『アンケート集約』(ランラン)

 アンケート集約のVBAについて教示お願いします。
 サイト内で検索して調べて、応用しようとしましたが、うまく行きませんでした(涙)

やりたいことは
1 同じ書式のアンケートファイル(ファイル名は各部署から送られてくるのでそれぞれ違います)があり、
それぞれのファイルの中のsheet1の名前を「アンケート」と変更しています。

2 アンケートファイルの書式は以下のとおりです。
行                       J列
15 Q1、○○ですか?        はい
16 Q2、○○はありますかか?  いいえ
17 Q3、  ・・・・            はい
   ・     ・

 という風に「はい」「いいえ」の二者択一の回答方式となっています。

3 アンケートファイルとは別に、集計ファイルを作成し、それに「はい」の数だけを合計したいと考えてます。

4 集計ファイルの様式は、Sheet1の名前を「グラフ」に変更し、以下のとおりです。
        
行                     D列 
44 Q1、○○ですか?       25  ←それぞれの質問に対する「はい」の数の合計
45 Q2、○○はありますかか?  40
46 Q3、  ・・・・           31

5 デスクトップに「アンケート」というフォルダを作成し、その中に各部署からのアンケートファイルと集計ファイルを保存。

6 集計ファイルにVBAを作成し、マクロボタンに記録。
  アンケートファイルは開かずに、集計ファイルに「はい」の数を集計したい。

こんな感じなのですが、よろしくお願いいたします。

 

< 使用 Excel:Excel2007、使用 OS:Windows7 >


こんにちは

Sub test()

    Dim f As String
    Dim p As String
    Dim r As Range
    Dim b As Workbook
    Dim s As Worksheet
    Dim t As Range
    Dim i As Long

    Set b = ThisWorkbook
    Set s = b.Worksheets("グラフ")

    p = b.Path & "\"
    f = Dir(p & "*.xls*", vbNormal)

    With s
        Do While f <> ""
            If f <> b.Name Then
                Set t = .Range("J15")
                For Each r In .Range("C44", .Range("C44").End(xlDown))
                    If Application.ExecuteExcel4Macro( _
                            "'" & p & "[" & f & "]アンケート'!" & t.Address(1, 1, xlR1C1)) = "はい" Then
                        i = 1
                    Else
                        i = 0
                    End If
                    r.Offset(, 1).Value = r.Offset(, 1).Value + i
                    Set t = t.Offset(1)
                Next
            End If
            f = Dir
        Loop
    End With
End Sub

これで、出来ますか?

(ウッシ) 2015/10/21(水) 16:19


 ウッシ様

 ありがとうございました。

 バッチリでした!!

 またよろしくお願いしますm_ _m
(ランラン) 2015/10/22(木) 10:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.