[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピポットテーブルの元データー範囲』(ホミホミ)
マクロの記録でピポットテーブルを作りましたが、SourceDataの範囲が変動する場合どのように書き換えたらよいのでしょうか?教えて下さい。
下記の"Sheet1!R1C1:R31C3"の部分です。Range等に書き換えてみても文字が赤くなって動きません。
Sub Macro1()
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R31C3", TableDestination:="R1C5", TableName:="ピボットテーブル1" ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="品番" ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("数量").Orientation = _ xlDataField End Sub
とり急ぎ。 [[20050324134217]]『一覧から年齢別に数えるとき』(マル) 一般機能での可変は上記を参考に。 VBAコードはどなたか素敵な紳士が考えてくれるでしょう。 (代奈)
上記で、範囲は対応できました。しかしながら、出来ればVBAで出来ないものでしょうか?
どなたかお願いします。
VBAでは"Sheet1!R1C1:R31C3"をRange("a1").CurrentRegionに変更したら出来ました。
お騒がせしました。
ん、? っちゅうことはSheets("Sheet1").Range("a1").currentregion になるんと ちゃいまっか? 素敵な紳士(弥太郎)← アッホ〜!
Workbooks("別のブック名.xls").Sheets("sheet1").Range("a1").CurrentRegion でいけるんとちゃいまっか。 (弥太郎)
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
Workbooks("net52401.xls").Sheets("net52401").Range("a1").CurrentRegion, TableDestination:= _ "'[net52401 マクロテスト.xls]Sheet1'!R2C1", TableName:="ピボットテーブル1"
これってブック名とシート名が一緒でッか?? (弥太郎)
それか、その別のブックを開いてないとか・・・ 今から出かけますもんで、ごめんなはれや。別の素敵な紳士が回答してくれると 思います。 頼んまっせ〜! っちゅうてすたこら逃げる(弥太郎)
はい!同じで・・まずいでしょうか・・・
マクロ全てを書きますのでお願いします。 取りあえず7019行までの範囲にしてマクロを動かしてます。 いまのところ問題ではないので、急ぎませんのでお願いします。
Sub Macro1()
'
' Macro4 Macro
' マクロ記録日 : 2005/8/5'
'列の削除
Columns("A:B").Select Selection.Delete Shift:=xlToLeft 'デスクトップのファイルを開く Workbooks.Open FileName:= _ "C:\Documents and Settings\nflo111\デスクトップ\net52401.xls" Windows("net52401.xls").Activate Range("A6", ActiveCell.SpecialCells(xlLastCell)).Select 'ActiveCell.SpecialCells(xlLastCell)).Select Range("A4").Value = "1" Range("A4").AutoFill Destination:=Range("A4:R4"), Type:=xlFillSeries Range("A4:R4").Select Range("A6").Select ActiveCell.FormulaR1C1 = "=IF(R[-1]C="""",R[-2]C,R[-1]C)" Selection.AutoFill Destination:=Range("A6:R6"), Type:=xlFillDefault
'7019行までしか対応してない
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ "net52401!R6C1:R7019C18", TableDestination:= _ "'[net52401 マクロテスト.xls]Sheet1'!R2C1", TableName:="ピボットテーブル1" ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="品目番号" ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("納品可能数").Orientation = _ xlDataField ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect _ "'#001 ケーブルASSY '", xlDataOnly ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("データの個数 : 納品可能数").Function _ = xlSum Range("A1").Select
ActiveCell.Value = "品目番号" Range("b1").Select ActiveCell.Value = "納品可能数量" Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="<0", Operator:=xlAnd Columns("A:B").Select ' Cells.Select Selection.Font.Name = "MS Pゴシック" 'Application.EnableEvents = True 'False Application.DisplayAlerts = False '確認ダイアログを表示させない Range("a1").Select Workbooks(2).Close
End Sub
難しいことは分かりませんが、 範囲に名前をつけて記録をとるとこうなります。
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="リスト"). _ CreatePivotTable TableDestination:="", TableName:="ピボットテーブル1" 応用できませんか。 (代奈)
毎回新しいブックということですね。 では元データの最終行を例えば Range("A65536").End(xlUp).Row などとすればよいような? (代奈)
下記で実行するとだめですが・・・
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ Range("a6", Range("A65536").End(xlUp).Row), TableDestination:= _ "'[net52401 マクロテスト.xls]Sheet1'!R2C1", TableName:="ピボットテーブル1" 間違っているでしょうか?
ちょっと間違えてました
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ Range("a6", Range("R65536").End(xlUp)), TableDestination:= _ "'[net52401 マクロテスト.xls]Sheet1'!R2C1", TableName:="ピボットテーブル1" でなんとか出来ましたが、これって正しい使い方でしょうか?
なにはともあれ、皆さんのご協力有難うございました。
ありゃぁ、素敵な紳士は現れんかったみたいですけど、ピボテの女王がなんとか嵐を 鎮めてくれたみたいでんなぁ(笑。 いやぁ、昨夜は寄り合いが有ってしこたま呑んどったし、今日は仕事で出かけ とりましたさかい、放ったらかしにしてごめんなはれや・・・。 尤も時間があってもピボットテーブルなんざ、知るよしもおまへんさかい、満足なお 答えでける訳おまへんねんけどナ(笑 ま、なんですワ、ピポテの女王がマクロをマスターするか、弥太郎とかいうヤツが ピボットテーブルを手ぇのうちにいれるかすりゃ、なんちゅうことおまへんねんけど 今日明日っちゅう訳にはいきまへんさかいなぁ。 一番の近道はなんちゅうても なんとかする力 をそなえとるマルさんの努力でっせ。 え〜っと、素敵な紳士返上の(弥太郎)
参考になりました ^^
ありがとうございました。
ココロ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.