dポイントプレゼントキャンペーン実施中!

使用環境は VB2005express ,excel2000 です。
VB6.0からVB2005へコンバートをしているのですが、excelのピボットテーブルの操作のところで
上手くいきません。具体的には、行列のタイトルを書き込むところまでは上手くいったのですが
中身のデータ貼り付けのところがわかりません。
宜しくお願い致します。
 
【以下VB6.0】 一部抜粋

With xlSheet.PivotTables("テーブル")

.PivotFields("場所").Orientation = xlRowField 
.PivotFields("日").Orientation = xlColumnField
’↑ここまではOKですが、以下が上手くいきません。
.AddDataField xlSheet.PivotTables("テーブル").PivotFields("数"), "データの個数 / 数",xlCount
.PivotFields("データの個数 / 数").Function = xlSum
.AddDataField xlSheet.PivotTables("PV_MECH").PivotFields("重量"), "デ
ータの個数 / 重量", xlCount

End With


【以下VB2005】 

With BOOK.Worksheets(SHEETNAME).PivotTables("PV_MECH")
.PivotFields("場所").orientation = Excel.XlPivotFieldOrientation.xlRowField
.PivotFields("名").orientation = Excel.XlPivotFieldOrientation.xlRowField
 ’↑ここまではOKですが、以下が上手くいきません。
'.PivotFields("数") = Excel.XlPivotFieldCalculation.xlPercentOfTotal '×
.PivotFields("数").orientation = .PivotFields("数") '?

A 回答 (1件)

VB から Excel の操作って、VB 側では具体的な処理はしていなくって、Excel.exe に丸投げ


です。何が言いたいかって言うと、VB6.0 と VB2005 で基本的にコマンドは変わらないと
いうことです。
特に
> excel2000
てことは Excel 9.0 Object Library を参照するのだったと思うけど、全く同じライブラリを
使う事になるのでコマンドは全く同じでもいいくらいの話です。
VB が(VB6.0 も VB2005 も)色々と省略できてしまうので分からなくなる人が多いですが、
VB6 の方で省略されている名前空間を VB2005 では Imports で入れてしまうのも手です。

逆に VB6.0 → VB2005 で一番問題になるのが、プロセスが終了しない問題です。
http://hanatyan.sakura.ne.jp/dotnet/Excel08.htm
実害があるので、プログラムが完成してから問題が顕在化して困る人も多いです。
提示のコードではプロセスが残って不思議ではないので、知らないのであれば勉強して
おくべきでしょう。

> 中身のデータ貼り付けのところがわかりません。
コードは分かっているわけだから、何が分からないのかもう少し明確に書くべきでは?
Excel のライブラリで定義されている定数の場所が分からないだけでは?
VB6 の方でコードを右クリックして[定義(D)]に飛ぶとか、もう最初からオブジェクト
ブラウザで検索して調べればいいのでは?
http://hanatyan.sakura.ne.jp/dotnet/Excel03.htm# …

この回答への補足

早速のご回答ありがとうございます。
またプロセスが終了しない件も補足アドバイスありがとうございます

理解不足と説明不足で申し訳ありません。

AddDataをオブジェクトブラウザで 検索したところ 下記ワードが見つかりました。

Excel.XlBuiltInDialog.xlDialogChartAddData

上記文をwith文から外し 文頭にもってきたところ、「式はメソッドではありません」 と出てきます。

次にPivotTableの後ろにもってきたところ、(文法上の?)エラーは無くなりましたが
実行したところ、「公開メンバ 'Excel' は型 'PivotTable' に見つかりませんでした。」
と出てきます。

安易ですが、'EXCEL'を外すと下記のメッセージでした。
公開メンバ 'XlBuiltInDialog' は型 'PivotTable' に見つかりませんでした。

ちなみに、下記のように記述すると一応データの入ったピボットテーブルは表示されます。
.PivotFields("数").Orientation = Excel.XlPivotFieldOrientation.xlDataField '○


Q AddDataField の VB.netでの 使い方がわかりません。

 何度も申しわかりませんが宜しくお願い致します。

補足日時:2012/03/01 14:45
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

結局力不足で EXCELにマクロを組み込みVBから、そのEXCELマクロを
実行することにしました。

ありがとうございました。

お礼日時:2012/03/07 22:24

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