Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


525 / 13645 ツリー ←次へ | 前へ→

【79891】PivotCache.Create で type mismatch エラー hoyahoyamachine 18/5/19(土) 17:07 質問[未読]
【79892】Re:PivotCache.Create で type mismatch エ... γ 18/5/19(土) 17:35 発言[未読]
【79893】Re:PivotCache.Create で type mismatch エ... hoyahoyamachine 18/5/19(土) 17:49 発言[未読]
【79894】Re:PivotCache.Create で type mismatch エ... γ 18/5/19(土) 18:19 発言[未読]
【79897】Re:PivotCache.Create で type mismatch エ... hoyahoyamachine 18/5/19(土) 20:21 発言[未読]
【79895】Re:PivotCache.Create で type mismatch エ... マナ 18/5/19(土) 18:59 発言[未読]
【79896】Re:PivotCache.Create で type mismatch エ... hoyahoyamachine 18/5/19(土) 19:53 発言[未読]
【79898】Re:PivotCache.Create で type mismatch エ... マナ 18/5/19(土) 21:54 発言[未読]
【79899】Re:PivotCache.Create で type mismatch エ... マナ 18/5/20(日) 10:08 発言[未読]
【79900】Re:PivotCache.Create で type mismatch エ... hoyahoyamachine 18/5/21(月) 12:10 お礼[未読]

【79891】PivotCache.Create で type mismatch エ...
質問  hoyahoyamachine  - 18/5/19(土) 17:07 -

引用なし
パスワード
   いろいろ調べているのですが、手掛かりがつかめません。初めての質問ですがよろしくお願いいたします。

下記コードのPivotCache.Createで Runtime error '13' type mismatch が返ります。
Excel2013英語版(Win7 32bit)、1台のPCで発生し、同2016(Win10 64bit)日本語版の2台のPCでは発生しません。
アドイン上にコードはあり、ブックRSB.xlsm上のシートDBのレコード数が変化するデータベースからシートPRへピボットテーブルを出力する手順です。

Sub SampleCode()
Dim pvtCache As PivotCache
Dim pvtTbl As PivotTable
Dim DBTop As Range
Dim tblTop As Range

Set DBTop = Workbooks("RSB.xlsm").Sheets("DB").Range("A1")
Set tblTop = Workbooks("RSB.xlsm").Sheets("PR").Range("A1")

Workbooks("RSB.xlsm").Sheets("PR").Cells.Delete

Set pvtCache = Workbooks("RSB.xlsm").PivotCaches.Create( _
          SourceType:=xlDatabase, _
          SourceData:=DBTop.CurrentRegion, _
          Version:=xlPivotTableVersion12)

Set pvtTbl = pvtCache.CreatePivotTable( _
          TableDestination:=tblTop, _
          TableName:="PReport", _
          DefaultVersion:=xlPivotTableVersion12)
....
End Sub

原因の絞り込みに関するヒントなどのご教示をいただけると助かります。

【79892】Re:PivotCache.Create で type mismatch...
発言  γ  - 18/5/19(土) 17:35 -

引用なし
パスワード
   Version:=xlPivotTableVersion12
のあたりでしょうか。
xlPivotTableVersion14
を試してみてはいかがでしょう。

【79893】Re:PivotCache.Create で type mismatch...
発言  hoyahoyamachine  - 18/5/19(土) 17:49 -

引用なし
パスワード
   ▼γ さん:
>Version:=xlPivotTableVersion12
>のあたりでしょうか。
>xlPivotTableVersion14
>を試してみてはいかがでしょう。

さっそくの回答ありがとうございます。
試してみましたが同じ結果でした。

いま海外でそろそろ対象PCから離れることになります。
引き続きご教示いただいた場合には返信が遅れますことをお含みおきください。

帰国してExcel2013が会社内にあれば試してみようと思います。

【79894】Re:PivotCache.Create で type mismatch...
発言  γ  - 18/5/19(土) 18:19 -

引用なし
パスワード
   ヘルプを確認して
他の定数がないか確認してください。
私のはExcel10なので試せません。

【79895】Re:PivotCache.Create で type mismatch...
発言  マナ  - 18/5/19(土) 18:59 -

引用なし
パスワード
   ▼hoyahoyamachine さん:

たぶん、

ht tp://www.excel.studio-kazu.jp/kw/20180116191515.html

【79896】Re:PivotCache.Create で type mismatch...
発言  hoyahoyamachine  - 18/5/19(土) 19:53 -

引用なし
パスワード
   ▼マナ さん:
>▼hoyahoyamachine さん:
>
>たぶん、
>
>ht tp://www.excel.studio-kazu.jp/kw/20180116191515.html

参考になりました。
SourceDataの引数に(Range).Addressを追加しました。

当然のことながら手元のExcel2016ではエラー発生はなかったので、問題のあったPC(Excel2013)で確認するよう依頼します。

引き続き後程報告いたします。

【79897】Re:PivotCache.Create で type mismatch...
発言  hoyahoyamachine  - 18/5/19(土) 20:21 -

引用なし
パスワード
   ▼γ さん:
>ヘルプを確認して
>他の定数がないか確認してください。
>私のはExcel10なので試せません。

ご教示ありがとうございます。
いまほど SourceDataの引数に .Addressを書き加え担当からの返信を待っているところです。
進展あれば一連のスレッドにご報告いたします。

【79898】Re:PivotCache.Create で type mismatch...
発言  マナ  - 18/5/19(土) 21:54 -

引用なし
パスワード
   ▼hoyahoyamachine さん:

>SourceDataの引数に(Range).Addressを追加しました。

external:=true が必要では?

【79899】Re:PivotCache.Create で type mismatch...
発言  マナ  - 18/5/20(日) 10:08 -

引用なし
パスワード
   ▼hoyahoyamachine さん:

ht tps://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/pivotcaches-create-method-excel?f=255&MSPPError=-2147217396

ここでは、

> 文字列を使用してブック、ワークシート、およびセル範囲を指定するか、
> 名前付き範囲を設定して名前を文字列として渡すことをお勧めします。
> Range オブジェクトを渡すと、"型の不一致" エラーが予期せず発生します。

としか記載されていませんが
検索すると、↓を指定している事例ばかりでしたので、
ReferenceStyle:=xlR1C1

もし、うまくいかない場合は、試してみてください。

【79900】Re:PivotCache.Create で type mismatch...
お礼  hoyahoyamachine  - 18/5/21(月) 12:10 -

引用なし
パスワード
   ▼マナ さん:
>▼hoyahoyamachine さん:
>
>ht tps://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/pivotcaches-create-method-excel?f=255&MSPPError=-2147217396
>
>ここでは、
>
>> 文字列を使用してブック、ワークシート、およびセル範囲を指定するか、
>> 名前付き範囲を設定して名前を文字列として渡すことをお勧めします。
>> Range オブジェクトを渡すと、"型の不一致" エラーが予期せず発生します。
>
>としか記載されていませんが
>検索すると、↓を指定している事例ばかりでしたので、
>ReferenceStyle:=xlR1C1
>
>もし、うまくいかない場合は、試してみてください。

たいへんご丁寧なアドバイスありがとうございました。

ピボットテーブル作成のマクロ記録を眺めると、SourceTypeとTableDestinationは外部参照かつR1C1形式の文字列で記録されおり、
貴方アドバイスの二条件を追加した以下のコードでうまくいきました。

Set pvtCache = Workbooks("RSB.xlsm").PivotCaches.Create( _
          SourceType:=xlDatabase, _
          SourceData:=DBTop.CurrentRegion.Address(External:=True, ReferenceStyle:=xlR1C1), _
          Version:=xlPivotTableVersion12)

Set pvtTbl = pvtCache.CreatePivotTable( _
          TableDestination:=tblTop.Address(External:=True, ReferenceStyle:=xlR1C1), _
          TableName:="PReport", _
          DefaultVersion:=xlPivotTableVersion12)

他のコード上にあるメッソドでも範囲指定のパラメータにRangeオブジェクトを書いていて、本来エラーだけどもエラーが発生していない場合があるかもしれないと、ナニゲに思った次第です。

525 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free