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

シートにデータを貼り付けるための高速化を検討しています。
現在、VBからエクセルの指定セルに直接データを書いていますが、遅くてしかたありません。
 (こんな感じです ⇒ Cell(○、□) = データ)
一応、表示更新は、止めています。(ScreenUpdatingプロパティを使っています。)

配列のデータを一度に、あるシート上に貼り付けたいのですが、ループ処理で回すしか方法がありませんか?
すいませんが、宜しくお願いします。

A 回答 (2件)

 


> 現在、VBからエクセルの指定セルに直接データを書いていますが、遅くてしかたありません。
>  (こんな感じです ⇒ Cell(○、□) = データ)

(1) データベースの処理なら、CopyFromRecordsetメソッドを検討しましょう。(注 1)

(2) データベースの処理なら、DAO/ADO + Jet経由で出力できないか、検討しましょう。

(3) レコードセットではない配列なら、Rangeを指定して一括出力できないか検討しましょう。(注 2)



(注 1) Excel 97以前では、DAOのレコードセットしか処理できません。
    (2000以降は、DAO/ADOのどちらも可)
    Excel 95 ではExcelプロセス外のレコードセットを処理できません。

(注 2) 座標のタテヨコ(X,Y)が逆転しないよう注意してください。
    (縦横変換が必要な場合、性能上のボトルネックになります)
 
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
データベースの処理では、ありませんので、Range側で行います。

お礼日時:2003/04/05 23:36

3個だけの配列のサンプルですが、どうでしょう


縦に貼り付け
Sub test()
Dim a(2, 0) As Variant
a(0, 0) = "aaa"
a(1, 0) = "bbb"
a(2, 0) = "ccc"

Range("A1:A3").Value = a

End Sub

一応横の貼り付けはこうなります。
Sub test2()
Dim a(0, 2) As Variant
a(0, 0) = "aaa"
a(0, 1) = "bbb"
a(0, 2) = "ccc"

Range("A1:C1").Value = a

End Sub

配列は2次元でないと、うまくいきません。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
テストしたところ、画期的に早くなりました。
1次元では、テストしたのですが、同じ値が貼り付けられるので、無理かと思っていましたが...
2次元にして行います。

お礼日時:2003/04/05 23:37

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