[[20060508113159]] 『VBAでピボット作成を書いているのですが・・・』(ぴらりん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでピボット作成を書いているのですが・・・』(ぴらりん)

こんにちは。行き詰まっているので教えてください。
VBAにてピボットを作成しようとしているのですが、デバックが出て先へ進めません。
なぜ、デバックが出ているのか、判断できなく書き込みしてます。

下記が作成したものです。マクロから編集しています。

Sub データ編集()
'
' Macro2 Macro
' マクロ記録日 : 2006/5/8 ユーザー名 :
'

    Dim MyRow As Long
    MyRow = Range("A65536").End(xlUp).Row

    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "R1C1:R" & MyRow & "C14").CreatePivotTable TableDestination:="", TableName:= _
        "ピボットテーブル1"

    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("小売店")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("Crd")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
        "ピボットテーブル1").PivotFields("受注数の合計"), "合計 / 受注数の合計", xlSum
    ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
        "ピボットテーブル1").PivotFields("配分数の合計"), "合計 / 配分数の合計", xlSum
    Range("B4").Select
    With ActiveSheet.PivotTables("ピボットテーブル1").DataPivotField
        .Orientation = xlColumnField
        .Position = 2
    End With

End Sub
教えていただけると助かります。
よろしくお願いします。


 ぱっと見、気になるのは下記で元となるデータのシートが指定されていない点。
SourceData:= "R1C1:R" & MyRow & "C14"
 
通常は SourceData:="Sheet1!R1C1:R10C2" などとシート名も含めた形で記録されます。
シート指定がない場合はアクティブシートのセル範囲と解釈されるようです。
不適当なシートが選択されていると、たとえばデータのない新規シートでは
「実行時エラー’1004
そのピボットテーブルのフィールド名は正しくありません。ピボットテーブルレポート
を作成するにはラベルのついた列でリストとして編成されたデータを使用する必要が
あります。ピボットテーブルのフィールド名を変更する場合は、フィールドの新しい
名前を入力する必要があります。」
のエラーメッセージが表示され、「デバッグ」ボタンをクリックすると、
「ActiveWorkbook.PivotCaches.Add」のステートメントで停止しているのが確認できます。
 
肝心なのは上記のように
「どんなエラーメッセージが表示されるか」
「デバッグボタンを押したときにどの行で停止しているか」なので、
確認して上記要件について追加書き込みしてください。

デバッグ(debug)
プログラムの誤り(Bug)を探し、取り除くこと。

 「デバッグする」とはいいますが、「デバッグが出る」とは表現しません。
「Bugを探し、取り除くこと」が[ぴらりん]さんの投稿の目的ですが、
「デバッグが出た!」と言う事実には目的を達するための情報が含まれていません。
(みやほりん)(-_∂)b 

みやほりんさん
返信ありがとうございました。
デバックするというんですね。勉強になります。

いろいろ見ていたら、解決できてしまいました。
単純なミスでした。なにせVBA初心者なので、失礼いたしました。
また何かありましたら、宜しくお願いします。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.