• ベストアンサー

エクセルのマクロ

こんにちは。 エクセルで各月の集計をピボットテーブルへ表示するマクロを作成しています。 実際にはマクロに関して”無”なのでエクセルのマニュアル本通りに作成中なのですが、マニュアル通りに入力しているにもかかわらず、エラーになってしまいます。 何がいけないのか全くわからずに困っています。 作成中のマクロを記載いたしますので、原因がわかるようでしたらどなたか教えてください…(/_;) Dim TUKI,CHANGE Range("A1").Select TUKI = ActiveCell.Value *1 Change = "'" & TUKI & "'!R8C2:R300C5" Range("A1").Select Selection.Copy Sheets("集計").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.PivotTable("ピボットテーブル1").PivotSelect "データ", xlButton ActiveSheet.PivotTableWizard *2 SourceType:=xlDatabase,SourceData:=_ Change , TableDestination:="R5C1", TableName:="ピボットテーブル1" ActiveSheet.PivotTables("ピボットテーブル1").RefreshTable End Sub 上記の *1 Change = "'" & TUKI & "'!R8C2:R300C5" 入力するとエラー「ステートメントの最後」 *2 SourceType:=xlDatabase,SourceData:=_ の部分で:=にエラー「修正候補式」 マニュアル通り(のはず・・・)なのですが… 何処がいけないのでしょうか? 式だけの問題ではないようでしたらご回答頂きにくいのかもしれませんが、 宜しくお願いしますm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

質問のコード内容がいまいちはっきりしません。 当然、*1や*2はコード中にはないわけですよね。改行位置もはっきりしないので、下にエラーが出ないだろう書き方をしてみました。 確認-1  CHANGE = "'" & TUKI & "'!R8C2:R300C5"  については、『&』と『TUKI』と『&』の間にスペースがある必要があります。 確認-2  ActiveSheet.PivotTableWizard ・・・・・・, TableName:="ピボットテーブル1"  については、1行にします。余分な改行がされているように思われます。  長い行を改行して見やすくする時は、『 _』(半角スペースとアンダーバー)を挿入してEnterします。 確認-3  質問の最後には『End Sub』がありますが、最初に『Sub ・・・』がないので『Sub TEST()』を付けています。 確認-4  >・・・改行するとCHANGEがChangeに変更されて・・・  これはよく分かりませんね。  確認-3までを試せばこの状態はなくなるかもしれません。  改善されなければ、編集→検索でCHANGEを検索してみます。余分なところで定義していませんか。  それでもだめなら、3個ある『CHANGE』を『CHANGE2』に変えてみます。 確認-5  コードの最初に『Option Explicit』がなければ、Option Explicit をモジュールの先頭に書きます。  変数の宣言を強制するようにします。  これで、スペルミスが見つかるかもしれません。 確認-6  だめなら、質問のコード部分を全部消して、下をコピーして貼り付けてみて下さい。 確認-?  macですか? Option Explicit Sub TEST()   Dim TUKI, CHANGE   Range("A1").Select   TUKI = ActiveCell.Value   CHANGE = "'" & TUKI & "'!R8C2:R300C5"   Range("A1").Select   Selection.Copy   Sheets("集計").Select   Range("A1").Select   ActiveSheet.Paste   Application.CutCopyMode = False   ActiveSheet.PivotTable("ピボットテーブル1").PivotSelect "データ", xlButton   ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:=CHANGE, TableDestination:="R5C1", TableName:="ピボットテーブル1"   ActiveSheet.PivotTables("ピボットテーブル1").RefreshTable End Sub

donguriko
質問者

お礼

回答ありがとうございました、不正確な質問ですみませんでした。 OSはWindousです。 確認-1   確かに、マニュアルと良く見直せばスペースが入っていたようです。 小さな文字でスペースの確認ができませんでした。 確認-2   ActiveSheet.PivotTableWizard ・・・・・・, TableName:="ピボットテーブル1" は一行のものでしたか・・・? サンプルを丸写しでして『 _』が改行の意味をしめすことさえ知らなかったので・・・ 『 _』の後に1行空けたのがいけなかったのですね。 ただ、サンプルだとActiveSheet.PivotTableWizard とSourceType・・・,TableName:="ピボットテーブル1" はどう見ても別々に書いてあるようですが、どちらでも良いのでしょうか?   確認-3  すみません、書き忘れました。 実際には「Sub Jump_syuukei()」と記載されていました。 その他のアドバイスを確認のうえ、記載していただいたものを コピーして使わせていただきました。 実行したところ、 実行時エラー’438’ オブジェクトはこのプロパティまたはメソッドをサポートしていません とのエラーメッセージがでました。 わからなさすぎるまま、マクロを使おうとしていることに無理が あるのかもしれませんが・・・ これがプログラムのエラーなのか、はたまた作成中の集計表に問題があるのか・・・ 悲しいことにわからないんです^_^; マクロ以外に問題がないか、これからじっくり調べるつもりです。 ありがとうございました。 また、宜しくおねがいします。

その他の回答 (1)

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

*1 は、Change を CHANGE にしてみて下さい。それと*2の次の行のChangeもCHANGEにしてください。 *2 は、最後の=_を= _にしてみて下さい。(= と_ の間にスペースを入れる) まったく自信はありませんが参考にして下さい。

donguriko
質問者

補足

回答ありがとうございました。 頂いたアドバイスを試してみましたが残念ながら*1・*2共に改善されませんでした。 *1のエラーでは"'!R8C2:R300C5"の部分に修正ラインが入ります。 また、2行目のChangeはCHANGEに修正しても、改行するとChangeに自動的に変更されてしまいます。 また、他に試してみるものがありましたら教えてください。

関連するQ&A