アプリ版:「スタンプのみでお礼する」機能のリリースについて

ExcelVBAの配列変数で一括でセルに数式を挿入する方法

ExcelVBAでTEST1シートを参照して、TEST2シートに数式を貼り付けたいと思っています。

例えばTEST2シートのA1セルには、TEST1シートのA1を参照する数式
=IF('TEST1'!A1="","",'TEST1'!A1))を挿入、

TEST2シートのA2セルには、TEST1シートのA2を参照する数式
=IF('TEST1'!A2="","",'TEST1'!A2))を挿入、

それをA1セルからZ10セルまで同様に数式を挿入したいと思っています。

以下のように配列変数を用いて、一括で挿入すると数式ではなく、文字が入ってしまいます。

Sheets("TEST2").Cells(1, 1).Resize(10, 26).Formula = SUSHIKI
※SUSHIKI←数式を入れた配列

どのような記述を行えば、数式を貼り付けることができるができるでしょうか。
できればOffsetを使用した形で作成したいです。

どうかご教授お願い致します。

A 回答 (4件)

例:


Range("A2") = "=B1+C1"

のようにすればできますが・・・

参考:
■5.3 セルへ文字列、数値、数式を書込む1
http://www.happy2-island.com/excelsmile/smile03/ …

参考URL:http://www.happy2-island.com/excelsmile/smile03/ …
    • good
    • 0

#2です。


語読力が弱くて申し訳ないのですが、
>配列変数をエクセルにみたて
というのは
SUSHIKI(1,1)をA1と見立てて
SUSHIKI(26,10)をZ10と見立てるという意味でしょうか?

因みに
>Sheets("TEST2").Cells(1, 1).Resize(10, 26).Formula = SUSHIKI
をテストして見ましたが文字ではなく数式が入りました。
変数SUSHIKIに格納されているデータは間違いなく数式が入っていますでしょうか?
SUSHIKI = Range("TEST2!A1").Formula '数式格納
SUSHIKI = Range("TEST2!A1").Value '文字格納
再度確認願います。
    • good
    • 0

こんにちは。


確認したい点がございます。
配列変数SUSHIKIに格納されているデータもしくは格納するコードが分かれば提示願います。
また、Offsetを使用したいというのは何らかの意味があってとの事でしょうか?
ただ数式を指定範囲に貼り付けたいのであれば
Sub TEST()
Sheets("TEST2").Select
Range("A1").Copy
Range("A1:Z10").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
End Sub
で動作します。
補足をお待ちしております。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
コピー以外の方法で処理を行いたかったものでして。
数式も例のもの以外に、フラグによってループ処理の上で変更したりと
色々応用してみたかったんです。

配列変数をエクセルにみたて、
様々な数式を配列変数に挿入した場合には、
エクセルに一括して吐き出すことが可能なのかなと思いまして。

お礼日時:2009/12/22 13:45

別に配列もoffsetも必要ないと思うけど


>Sheets("TEST2").Cells(1, 1).Resize(10, 26).Formula = SUSHIKI

Sheets("TEST2").Cells(1, 1).Resize(10, 26).Formula = "=IF(TEST1!A1="""","""",TEST1!A1)"
で試してみて

参考まで
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
この形を応用することでやりたかったことができそうです。

お礼日時:2009/12/22 13:39

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

このQ&Aを見た人はこんなQ&Aも見ています