|
▼しのしの さん:
ご多忙なのに 大変有難う御座いました。
(Selection active* というのはあまり使わないほうが良いと思います。
ひょんなことから、意図しないものがActiveになったり、Selectされるからです。
個人的にはこの2つがhisaoさんを悩ませている原因であると考えています。)
何故 参照できないか、出来たり出来なかったり 理由が良くわかりませんので
おっしゃる事だと思います。どうも ピボットテーブルを使ったモジュールは
不安定な気がします。
早速ご提示頂いた構文を組み込んで動作確認してみます。
本当に有難う御座いました。
>しばらく拝見できないので 取り急ぎ、言いたいことだけ延べます。
>ご検討をお願いします。
>
>> 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
|
|