Excel VBA質問箱 IV

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

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


73884 / 76732 ←次へ | 前へ→

【7321】Re:nameプロパティについて
質問  hisao E-MAIL  - 03/9/2(火) 15:12 -

引用なし
パスワード
   ▼よろずや さん:
すみません。
ちょっとコードが大きくて書きにくいのでお返事が遅れていました。
Sheets("借集計").Select
  Cells.Select
  Selection.Clear

  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "仕訳日記帳!R2C1:R" & y & "c11").CreatePivotTable TableDestination:=Range("A1"), _
    TableName:="ピボットテーブル4"
  ActiveSheet.PivotTables("ピボットテーブル4").SmallGrid = False
  With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("借")
    .Orientation = xlRowField
    .Position = 1
  End With
  With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("月")
    .Orientation = xlColumnField
    .Position = 1
    
  End With
  With ActiveSheet.PivotTables("ピボットテーブル4").PivotFields("借方金額")
    .Orientation = xlDataField
    .Position = 1
    .Function = xlSum
  End With
    ActiveSheet.PivotTables("ピボットテーブル4").PivotSelect "", xlDataAndLabel
Selection.Name = "借"
Selection.Rows("2:2").Select
Selection.Name = "借行"
ActiveSheet.PivotTables("ピボットテーブル4").PivotSelect "", xlDataAndLabel
Selection.Columns("a:a").Select
Selection.Name = "借列"

を実行して ”損益表”及び”貸借表”シートにあらかじめ入れていた
=IF(ISERROR(INDEX(借,MATCH($B39,借列,0),MATCH(F$2,借行,0))),0,INDEX(借,MATCH($B39,借列,0),MATCH(F$2,借行,0)))
の値を出そうとしましたが 
ピボットテーブルの名前の範囲が変わっても”損益表”シートの関数で表示される
名前の範囲が変わりません。

そこで 
Sheets("損益表").Select
Sheets("損益表").Unprotect
ActiveWorkbook.Names.Add Name:="借", RefersToR1C1:="=借集計!借"
ActiveWorkbook.Names.Add Name:="借列", RefersToR1C1:="=借集計!借列"
ActiveWorkbook.Names.Add Name:="借行", RefersToR1C1:="=借集計!借行"
ActiveWorkbook.Names.Add Name:="貸", RefersToR1C1:="=貸集計!貸"
ActiveWorkbook.Names.Add Name:="貸列", RefersToR1C1:="=貸集計!貸列"
ActiveWorkbook.Names.Add Name:="貸行", RefersToR1C1:="=貸集計!貸行"
をモジュールの最後に入れて名前を付け直したらうまく行ったのですが
その後
Sheets("貸借表").Select
Sheets("貸借表").Unprotect
ActiveWorkbook.Names.Add Name:="借", RefersToR1C1:="=借集計!借"
ActiveWorkbook.Names.Add Name:="借列", RefersToR1C1:="=借集計!借列"
ActiveWorkbook.Names.Add Name:="借行", RefersToR1C1:="=借集計!借行"
ActiveWorkbook.Names.Add Name:="貸", RefersToR1C1:="=貸集計!貸"
ActiveWorkbook.Names.Add Name:="貸列", RefersToR1C1:="=貸集計!貸列"
ActiveWorkbook.Names.Add Name:="貸行", RefersToR1C1:="=貸集計!貸行"
と入れると 今度は名前の範囲が 何かとんでもないことになりました。
説明がわかり難いかもしれませんが
selection.name
とか activeworkbook.names の使い方 protectの張り方などお教え頂ければ
有りがたいです。


>▼hisao さん:
>>教えてください。
>>sheet1に vbaでピボットテーブルを作成、テーブルに名前"T"を付け
>>更にA columnに名前をcolumns("a:a").select
>>selection.name="A"としました。
>>別シート sheet2 にmatch関数 =match(T,A,0)を取ろうとしたのですが
>>ピボットテーブルを再作成して、上記vbaで名前の範囲が変わっても"A"の範囲が変わりません。sheet2から 名前"A"を呼び出しても前のままなので、範囲が広くなっている場合にmatch関数が取れません。
>>ちなみに sheet1で名前"A"を選択すると変わっているのですが
>>何かvba記述の方法が悪いのでしょうか。良い方法を教えてください。
>
>実際のコードを提示してください。

0 hits

【7274】nameプロパティについて hisao 03/8/29(金) 15:52 質問
【7282】Re:nameプロパティについて よろずや 03/8/30(土) 23:43 発言
【7321】Re:nameプロパティについて hisao 03/9/2(火) 15:12 質問
【7583】Re:nameプロパティについて しのしの 03/9/9(火) 1:25 回答
【7588】Re:nameプロパティについて hisao 03/9/9(火) 9:21 発言
【7592】Re:nameプロパティについて しのしの 03/9/9(火) 10:51 回答
【7607】Re:nameプロパティについて しのしの 03/9/9(火) 17:03 発言
【7612】Re:nameプロパティについて hisao 03/9/10(水) 11:17 お礼

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