[[20110823173721]] 『マクロでの数式で{}は対応しない?』(森) ページの最後に飛ぶ

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

 

 『マクロでの数式で{}は対応しない?』(森)

 以下のような{}で括る配列数式はマクロでは対応しないのでしょうか?
 どこがいけないのでしょうか?

 Sub Macro1()

 Cells(2, 1) = "{=IF(COUNTIF($D$2:$D$12945,$P$2)>ROW(A1),
 INDEX($L$2:$M$12945,SMALL((IF($D$2:$D$12945=$P$2,ROW($D$2:$D$12945),"""")),
 ROW (A1)),COLUMN(A1)),"""")}"

 End Sub

 Sub test()
    Cells(1, 1).FormulaArray = "=sum(if(b1:b5=1,1))"
 End Sub

 ichinose

 ichinose様、わかりました。ありがとうございました。
 追加質問ですが値だけのコピーをしたいのですがエラーが出ます。
 どこがいけないのでしょうか?

 Sub test()
     Cells(1, 1).FormulaArray = "=sum(if(b1:b5=1,1))"
    Cells(1, 1).Value = Cells(1, 1).Value ←値だけの貼り付けでエラーがでます。
    End Sub

 すみません。勘違いです。うまくいきました。
 有難うございました。
(森)


 解決済みですが。。。

 手作業でやれる事は、一旦記録にとって見ると良いと思います。

 ●マクロの記録を開始
 1.A1セルを選択
 2.=SUM(IF(B1:B5=1,1)) Enter
 3.A1セルを選択
 4.{=SUM(IF(B1:B5=1,1))} Enter
 5.A1セルを選択
 6.=SUM(IF(B1:B5=1,1)) Ctrl + Shift + Enter
 ■マクロの記録を終了

 すると、以下の記録が出来ます。

 '------
Sub Macro1()
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "=SUM(IF(RC[1]:R[4]C[1]=1,1))"
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "{=SUM(IF(B1:B5=1,1))}"
    Range("A1").Select
    Selection.FormulaArray = "=SUM(IF(RC[1]:R[4]C[1]=1,1))"
End Sub
 '------

 一番下の「FormulaArray」に成っているのが Ctrl + Shift + Enter
 で確定した時の記録です。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


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