解決済み

vb2005でexcelピボットテーブルを使いたい

  • すぐに回答を!
  • 質問No.7335070
  • 閲覧数1440
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (11/11)

使用環境は 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("数") '?

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 43% (196/452)

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#teisuu
補足コメント
kantada2012

お礼率 100% (11/11)

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

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

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:08
お礼コメント
kantada2012

お礼率 100% (11/11)

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

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

ありがとうございました。
投稿日時 - 2012-03-07 22:24:43
感謝経済
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ