|
しばらく拝見できないので 取り急ぎ、言いたいことだけ延べます。
ご検討をお願いします。
> ActiveSheet.PivotTables("ピボットテーブル4").PivotSelect "", xlDataAndLabel
Nameプロパティ設定しなくて、正しく取れるのでしょうか?
それに、xlDataAndLabelでなくて、xlLabelOnlyでは?と考えますが
>Selection.Name = "借"
私はこのような使い方をしないので、これが正しいかどうかは分かりません。
でも、通常今まであったものを削除し、更に新規に追加する場合は、
削除処理をつけ、追加処理をNamesに対して行なったほうがよいと思います。
また、
Selection active* というのはあまり使わないほうが良いと思います。
ひょんなことから、意図しないものがActiveになったり、Selectされるからです。
個人的にはこの2つがhisaoさんを悩ませている原因であると考えています。
>Selection.Rows("2:2").Select
>Selection.Name = "借行"
一度設定してやればマクロに記述する必要はないです。
hisaoさんのコードを参考にして
自分ならこういう風にするかな?というのをアップしてみます。
#動作確認できませんので、申し訳ありませんが、よろしくお願いします。
時間がなくて尻切れトンボですが...
----
Private Sub Test()
Dim pvt As Excel.PivotTable 'テーブル
Dim rngSource As Excel.Range 'テーブルソースとなるセル
Dim rngTgt As Excel.Range '名前定義するセル
'既に作成済みのテーブルに参照を設定します
Set pvt = ThisWorkbook.Worksheets("借集計").PivotTables("ピボットテーブル4")
'hisaoサンのコードはactiveworkbookになっていましたが、thisworkbookに
'変更しています。必要に応じてWorkbooks(index)とかに変更してください。
With ThisWorkbook.Worksheets("仕訳日記帳")
' ピポットテーブルのデータ範囲を設定します。
'hisaoサンのコード"仕訳日記帳!R2C1:R" & y & "c11")のyが、A列のデータ格納
'最終行ならこれでいけるはず。
Set rngSource = _
.Range(.Range("A1"), _
.Cells(.Cells(.Rows.Count, .Columns("A").Column).End(xlUp).Row, _
.Columns("K").Column))
pvt.SourceData _
= .Name & "!" & rngSource.Address(ReferenceStyle:=xlR1C1)
End With
'更新する
pvt.RefreshTable
'借のセル範囲ですが、DataBodyRangeプロパティなどを参考に考えてみてください
'ここから先は知りきれトンボです.ごめんなさい。
'でもhisaoサンのやりたいことPivotTableのなかにあるんじゃないかな?
Set rngTgt = pvt.DataBodyRange
Debug.Print pvt.ColumnRange.Select
'参照の解放
Set rngSource = Nothing
Set rngTgt = Nothing
Set pvt = Nothing
End Sub
|
|