@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Excelへの転送処理

1
投稿者投稿内容
そよかぜ
常連さん
会議室デビュー日: 2003/04/01
投稿数: 25
投稿日時: 2003-06-03 18:31
VB.NETでデータをエクセルに書き出すとき、配列で一度に転送する方法があります。

例の抜粋)
For r = 0 To 99
DataArray(r, 0) = "ORD" & Format(r + 1, "0000")
DataArray(r, 1) = "1000"
DataArray(r, 2) = "2000"
Next

oSheet.range("A2").Resize(100, 3).Value = DataArray

値(Value)はこういう風に配列で転送出来るんですけど、セル毎のフォントの色とかサイズも配列で一度に転送出来ないものかと思っています。フォント色の配列を作って同じようにやってみましたが、うまくいきませんでした(色に変化無し)。

oSheet.range("A2").Resize(100, 3).Font.Color = ColorArray

方法がわかれば、教えていただきたいのですが。
よろしくお願いします。
ラフィン
ぬし
会議室デビュー日: 2002/05/23
投稿数: 809
お住まい・勤務地: 外野
投稿日時: 2003-06-04 12:26
mu さん、こんにちは。
できるとレスポンスよさそうなのでちょっとやってみました。

300のセルのすべてにColorArray(0,0)の値が設定されてしまいますね(^^;;

Range:oSheet.range("A2").Resize(100, 3)に対して
全体のFont.Color を設定するようです。

どちらかというとValueが配列からセットできるのが例外なのかも?

例えばEXCELマクロでCopyFromRecordsetメソッドは値と属性がセットされるので、
何か方法はあるのかもしれませんが...
そよかぜ
常連さん
会議室デビュー日: 2003/04/01
投稿数: 25
投稿日時: 2003-06-04 15:26
ラフィンさんありがとうございました。

Excelの書式で[赤]とかやると色が変わるので、それで対応しようと思います。
とりあえず今回は赤色になればいいので^^

こんな風に...

Dim DataArray(1000, 2) As String
Dim FmtArray(1000, 2) As String

For r = 0 To 999
DataArray(r, 0) = "ORD" & Format(r + 1, "0000")
DataArray(r, 1) = "1000"
DataArray(r, 2) = "2000"
FmtArray(r, 0) = "[赤]"
FmtArray(r, 1) = "[青]"
FmtArray(r, 2) = "[緑]"
Next

Set xlRange = xlSheet.range("A2").Resize(1000, 3)

xlRange.NumberFormatLocal = FmtArray
xlRange.Value = DataArray
1

スキルアップ/キャリアアップ(JOB@IT)