Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5051 / 13644 ツリー ←次へ | 前へ→

【52872】VBAでワークシート関数を使用したいのですが VBA初心者 07/12/7(金) 12:36 質問[未読]
【52873】Re:VBAでワークシート関数を使用したいので... じゅんじゅん 07/12/7(金) 12:56 発言[未読]
【52874】Re:VBAでワークシート関数を使用したいので... じゅんじゅん 07/12/7(金) 12:59 発言[未読]
【52876】Re:VBAでワークシート関数を使用したいので... VBA初心者 07/12/7(金) 13:43 お礼[未読]

【52872】VBAでワークシート関数を使用したいので...
質問  VBA初心者  - 07/12/7(金) 12:36 -

引用なし
パスワード
   質問させてください。
アンケートの集計用のシートを以下のように作成しています。

シート1(データベース)
  A     B C D
1 支店No.  Q1 Q2 Q3
2 1     2 1 1
3 3     1 1 2
4 4     2 2 1
5 2     1 1 1

シート2(集計用)
  A    B   C    D
1         ○支店 ×支店
2 Q1_1  満足   1    1
3 Q1_2 不満足  5    3
4 ・
5 ・
6 Q1件数計    15    35
7 Q2_1  満足  10     3
8 Q2_2 不満足  1     4
9 Q2件数計    11     7


集計シートでは、支店毎に各質問の回答件数の集計をしています。

もっと良い方法があるかとは思うのですが、
現在はSUMPRODUCT関数で複数条件(各支店ごとに各設問で何と回答したか)での
件数を集計欄に入力した後、Q1の件数の計算をしようとしています。

SUMPRODUCTまではきちんと動作しているのですが、
その後の計算でエラーが出てしまいます。
このエラーは何故起こるのかさっぱりわかりません・・・。
どなたかご回答いただけませんでしょうか?
↓が作成したコードです。
どうぞ宜しくお願い致します。

Private Sub CommandButton1_Click()

Dim b列 As String
Dim c列 As String

With Sheets("データベース")
  'b列(支店名列の入力範囲を取得)
  b列 = "データベース!" & .Range(.Cells(1, 2), .Range("b65536").End(xlUp)).Address
  'c列(Q1の入力範囲を取得)
  c列 = "データベース!" & .Range(.Cells(1, 2), .Range("b65536").End(xlUp)).Offset(0, 1).Address
End With

With Sheets("集計表").Range("c2:c9")
  '
  .Formula = "=sumproduct((" & b列 & "=c$1)*(" & c列 & "=$b2)*1)"
-------ここまでは正常に動作する-----------------------------------
-------ここより↓がオブジェクトはこのメソッド及びプロパティをサポートしていませんとのエラーが出る。---------
  .Range ("C6").select
  .Formula = "=SUM(C2:C5)"
End With
End Sub

【52873】Re:VBAでワークシート関数を使用したいの...
発言  じゅんじゅん  - 07/12/7(金) 12:56 -

引用なし
パスワード
   ▼VBA初心者 さん:
>質問させてください。

>With Sheets("集計表").Range("c2:c9")
>  '
>  .Formula = "=sumproduct((" & b列 & "=c$1)*(" & c列 & "=$b2)*1)"
>-------ここまでは正常に動作する-----------------------------------
>-------ここより↓がオブジェクトはこのメソッド及びプロパティをサポートしていませんとのエラーが出る。---------
>  .Range ("C6").select
>  .Formula = "=SUM(C2:C5)"
  Range("C6").Formula = "=SUM(C2:C5)"
とするべきかな?
.Range("C6")の”.”が With文の〜.Range("c2:c9")に
かかってくるからエラーになるのでは?
>End With
>End Sub

【52874】Re:VBAでワークシート関数を使用したいの...
発言  じゅんじゅん  - 07/12/7(金) 12:59 -

引用なし
パスワード
   ▼じゅんじゅん さん:
>▼VBA初心者 さん:
>>質問させてください。
>
>>With Sheets("集計表").Range("c2:c9")
>>  '
>>  .Formula = "=sumproduct((" & b列 & "=c$1)*(" & c列 & "=$b2)*1)"
>>-------ここまでは正常に動作する-----------------------------------
>>-------ここより↓がオブジェクトはこのメソッド及びプロパティをサポートしていませんとのエラーが出る。---------
>>  .Range ("C6").select
>>  .Formula = "=SUM(C2:C5)"
>  Range("C6").Formula = "=SUM(C2:C5)"
>とするべきかな?
>.Range("C6")の”.”が With文の〜.Range("c2:c9")に
>かかってくるからエラーになるのでは?
>>End With
>>End Sub

と言うより、

With Sheets("集計表")
   .Range("c2:c9").Formula = "=sumproduct((" & b列 & "=c$1)*(" & c列 & "=$b2)*1)"
   .Range ("C6").Formula = "=SUM(C2:C5)"
End With
の方がいいかも。

【52876】Re:VBAでワークシート関数を使用したいの...
お礼  VBA初心者  - 07/12/7(金) 13:43 -

引用なし
パスワード
   じゅんじゅん様

回答ありがとうございました!
期待通りの結果が出せました。
これで何とか進みそうです。

本当に有難うございます!

5051 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free