Excel VBA質問箱 IV

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

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


10312 / 13644 ツリー ←次へ | 前へ→

【22529】全行、全列でピボットしたい わだあつと 05/2/23(水) 14:17 質問[未読]
【22530】Re:全行、全列でピボットしたい MMX 05/2/23(水) 14:27 発言[未読]
【22533】Re:全行、全列でピボットしたい わだあつと 05/2/23(水) 15:07 質問[未読]
【22535】Re:全行、全列でピボットしたい G-Luck 05/2/23(水) 15:14 発言[未読]
【22536】Re:全行、全列でピボットしたい わだあつと 05/2/23(水) 15:16 質問[未読]
【22539】Re:全行、全列でピボットしたい G-Luck 05/2/23(水) 15:33 発言[未読]
【22538】Re:全行、全列でピボットしたい MMX 05/2/23(水) 15:31 発言[未読]
【22542】Re:全行、全列でピボットしたい わだあつと 05/2/23(水) 16:08 質問[未読]
【22543】Re:全行、全列でピボットしたい G-Luck 05/2/23(水) 16:15 発言[未読]
【22545】Re:全行、全列でピボットしたい sa 05/2/23(水) 16:20 発言[未読]
【22546】Re:全行、全列でピボットしたい わだあつと 05/2/23(水) 16:29 お礼[未読]
【22547】どうでもいいけど、ハンドルネームについて G-Luck 05/2/23(水) 16:36 発言[未読]
【22550】Re:どうでもいいけど、ハンドルネームにつ... わだあつと 05/2/23(水) 17:09 お礼[未読]

【22529】全行、全列でピボットしたい
質問  わだあつと  - 05/2/23(水) 14:17 -

引用なし
パスワード
   こんにちは。
  Dim m As Long
  Dim n As Long

  m = ActiveSheet.Range("A65535").End(xlUp).Row
  n = ActiveSheet.Range("A1").End(xlToRight).Column
   
  Range("A1").Select
  Range(Selection, Selection.End(xlDown)).Select
  Range(Selection, Selection.End(xlToRight)).Select
  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "Sheet1!R1C1:R[m]C[n]").CreatePivotTable TableDestination:="", TableName:= _
    "ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
ところが、最後でエラ−になります。R[m]C[n]とは書けませんか?

【22530】Re:全行、全列でピボットしたい
発言  MMX  - 05/2/23(水) 14:27 -

引用なし
パスワード
   "Sheet1!R1C1:R[m]C[n]"となっているので、
変数m,nは採用されず、一つの文字列として代入されています。
たぶんw

やるなら、以下の記述かと・・

SourceData:= "Sheet1!R1C1:R[" & m & "]C[" & n & "]")

【22533】Re:全行、全列でピボットしたい
質問  わだあつと  - 05/2/23(水) 15:07 -

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

>SourceData:= "Sheet1!R1C1:R[" & m & "]C[" & n & "]")
アドバイスに従ったのですが、「そのピボットテーブルのフィールド名は正しくありません。ピボットテーブルレポートを作成するにはラベルのついた列で正しく編成されたデータを使用する必要があります。」と出て、解決できないでおります。どうすればようかお気づきの点がありましたら是非アドバイスください。

【22535】Re:全行、全列でピボットしたい
発言  G-Luck  - 05/2/23(水) 15:14 -

引用なし
パスワード
   ▼わだあつと さん:

Excel上からVBAを使わず、そのセル範囲でピボットテーブルを追加できますか?

【22536】Re:全行、全列でピボットしたい
質問  わだあつと  - 05/2/23(水) 15:16 -

引用なし
パスワード
   ▼G-Luck さん:
>Excel上からVBAを使わず、そのセル範囲でピボットテーブルを追加できますか?
はい。「データ」「ピボットテーブル」と入っていくことは可能ですが・・。
次にどうすればよろしいでしょうか?

【22538】Re:全行、全列でピボットしたい
発言  MMX  - 05/2/23(水) 15:31 -

引用なし
パスワード
   >アドバイスに従ったのですが、「そのピボットテーブルのフィールド名は正しく
>ありません。ピボットテーブルレポートを作成するにはラベルのついた列で
>正しく編成されたデータを使用する必要があります。」

もし、最初のソースが、そのピボット作成の全てのソースだとすると・・・

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 "Sheet1!R1C1:R[m]C[n]").CreatePivotTable TableDestination:="",
 TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10

「フィールド名は正しくない」「ラベルの列で」とある通り、
縦の見出し、横の見出し、集計対象などの以下のような
指定が抜けているように思われます。たぶんw(^^;

ActiveSheet.PivotTables("ピボットテーブル1").AddFields _
 RowFields:="縦見出し(縦軸にしたい項目)", _
 ColumnFields:="横見出し(横軸にしたい項目)"

ActiveSheet.PivotTables("ピボットテーブル1") _
.PivotFields("集計したい項目").Orientation = xlDataField

【22539】Re:全行、全列でピボットしたい
発言  G-Luck  - 05/2/23(水) 15:33 -

引用なし
パスワード
   ▼わだあつと さん:
では、それをマクロ記録して、実行するとどうなりますか?
作成された、ピボットテーブルのデータ範囲の表示はどうなっていますか?

先のVBAでの選択範囲と違っていませんか?
SourceDataへ代入前に、Selectで選択してみて、比較する

う〜む。より詳しい方いましたら、よろしくお願いします。

【22542】Re:全行、全列でピボットしたい
質問  わだあつと  - 05/2/23(水) 16:08 -

引用なし
パスワード
   ▼MMX さん:
>指定が抜けているように思われます。

詳しくいいますと、マクロの記録で下のようなテキストを得ました。
   
  Range("A1").Select
  Range(Selection, Selection.End(xlDown)).Select
  Range(Selection, Selection.End(xlToRight)).Select
  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "Sheet1!R1C1:R15000C14").CreatePivotTable TableDestination:="", TableName:= _
    "ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
  ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
  ActiveSheet.Cells(3, 1).Select
  ActiveWorkbook.ShowPivotTableFieldList = True
  With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("課")
    .Orientation = xlRowField
    .Position = 1
  End With
  With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("商品")
    .Orientation = xlColumnField
    .Position = 1
  End With

このなかのR15000C14を、R[" & m & "]C[" & n & "]にしたいのです。
しかしうまくいきません。マクロの記録で得たテキストは変えられないのですか?

【22543】Re:全行、全列でピボットしたい
発言  G-Luck  - 05/2/23(水) 16:15 -

引用なし
パスワード
   ▼わだあつと さん:
>▼MMX さん:
>>指定が抜けているように思われます。
>
>詳しくいいますと、マクロの記録で下のようなテキストを得ました。
>   
>  Range("A1").Select
>  Range(Selection, Selection.End(xlDown)).Select
>  Range(Selection, Selection.End(xlToRight)).Select
>  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
>    "Sheet1!R1C1:R15000C14").CreatePivotTable TableDestination:="", TableName:= _
>    "ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
>  ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
>  ActiveSheet.Cells(3, 1).Select
>  ActiveWorkbook.ShowPivotTableFieldList = True
>  With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("課")
>    .Orientation = xlRowField
>    .Position = 1
>  End With
>  With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("商品")
>    .Orientation = xlColumnField
>    .Position = 1
>  End With
>
>このなかのR15000C14を、R[" & m & "]C[" & n & "]にしたいのです。
>しかしうまくいきません。マクロの記録で得たテキストは変えられないのですか?

[ ] を無くしてみては?

【22545】Re:全行、全列でピボットしたい
発言  sa  - 05/2/23(水) 16:20 -

引用なし
パスワード
     Dim m As Long
  Dim n As Long

  m = ActiveSheet.Range("A65535").End(xlUp).Row
  n = ActiveSheet.Range("A1").End(xlToRight).Column
  
>  Range("A1").Select
>  Range(Selection, Selection.End(xlDown)).Select
>  Range(Selection, Selection.End(xlToRight)).Select
  ↑ mとn求めてるので
    Range(Cells(1, 1), Cells(m, n)).Selectでもいけるけど
    ここでの範囲のセレクトは、無くても良いですね

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

あとは、MMX さんのおっしゃる通りにすればできると思います

▼MMX さん:
>縦の見出し、横の見出し、集計対象などの以下のような
>指定が抜けているように思われます。たぶんw(^^;
>
>ActiveSheet.PivotTables("ピボットテーブル1").AddFields _
> RowFields:="縦見出し(縦軸にしたい項目)", _
> ColumnFields:="横見出し(横軸にしたい項目)"
>
>ActiveSheet.PivotTables("ピボットテーブル1") _
> .PivotFields("集計したい項目").Orientation = xlDataField

【22546】Re:全行、全列でピボットしたい
お礼  わだあつと  - 05/2/23(水) 16:29 -

引用なし
パスワード
   ▼sa さん:
GoodLuckさんのおっしゃるとおり[]を無くしたらできました。
saさんのアドバイスも参考にさせていただきたいと思います。
皆様、どうもありがとうございました。

【22547】どうでもいいけど、ハンドルネームについ...
発言  G-Luck  - 05/2/23(水) 16:36 -

引用なし
パスワード
   ▼わだあつと さん:

いちよう、私は、G-Luckであって、GoodLuckではないので、
他に、GoodLuckさんがいるのであれば、その方とは別人です。

GoodLuckを意識して付けたのですが・・・
好きな色 Green
等々、ハンドルネームを考えた時、Gにからむことがいっぱいあったもので。

【22550】Re:どうでもいいけど、ハンドルネームに...
お礼  わだあつと  - 05/2/23(水) 17:09 -

引用なし
パスワード
   ▼G-Luck さん:

>他に、GoodLuckさんがいるのであれば、その方とは別人です。
ネーム間違い申し訳ございませんでした。
また、色々ご教示くださいましてありがとうございました。

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