• ベストアンサー

excel VBAでテーブルを利用しようと考えてい

テーブル名は、「テーブル1」で、その金額欄が変更されたら、 自動的にセルRange("金額_表紙")に読むために、式を次のように入力したいのですが、 Range("金額_表紙").Formula = "=テーブル1[[#集計],[金額]]" 実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです。 となります。 この.Formulaプロパティは、このようなテーブルの式は入力できないのでしょうか。 正しいやり方をご教授ください。

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

  • ベストアンサー
回答No.2

こんにちは。お邪魔します。 "金額_表紙"は、[名前の定義]に登録された単一セル、 テーブル1[[#集計],[金額]]は、 テーブル1に追加された[集計]行の[金額]フィールドにある単一セル、 をそれぞれ参照しているのだとして、以下。 > .Formulaプロパティ ではエラーになりますが、 .FormulaLocal プロパティ を使えばよろしいかと。 ただ、 「... 金額欄が変更されたら ...」 そのたびに、 数式を変更する必要は本来はない筈ですから、 どのような運用を意図してのものかについては、 こちらの理解が至っている訳ではありません。 何か、不足があれば、補足してみてください。

その他の回答 (2)

回答No.3

回答No.2です。追記します。 .Formula プロパティを使う場合の記述は、以下のように、  Range("金額_表紙").Formula = "=テーブル1[[#Totals],[金額]]" です。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは Range("金額_表紙")、テーブル1[[#集計],[金額]]" は単一のセルですか?

関連するQ&A

  • Excel 2007 VBA で実行時エラーが出る

    Excel 2007 VBA で下記の様に入力し、実行すると、 実行時エラー 1004  アプリケーション定義またはオブジェクト定義のエラーです。 と表示され、ストップしてしまいます。 ' 登録番号を付ける Range("C7").Value = 1 Range("C8:C42").Formula = "=IF(LEN(E8)>2,C7+1,"")" 初心者で、どうしても原因がわかりません。 教えて下さい、お願いします。

  • excel vba 名前付きセルが存在しないとき

    あるワークシートのセルに、"_1", "_2","_3","_10"のように名前をつけています。 "_8"が見つからなかったら、ループで番号を上げていき、"_10"にたどりつくようにしたいんですが、"_8"というセルが見つからなかった時の判定方法がわかりません。 On error ではない処理を使いたいのですが、 If Range("_8") = Empty Then では実行時エラー1004 "アプリケーション定義またはオブジェクト定義のエラーです" と出ます。 Rangeオブジェクトがemptyになるわけではないんでしょうか? よい方法があれば、教えてください。

  • VBAでセルに入力規則(選択し)を設定する

    VBAでセルに入力規則(選択し)を設定する EXCELのシート上のボタンに下のようなコードを書いて実行すると 「アプリケーション定義又はオブジェクト定義のエラー」が矢印のところで出てしまいます。 独学でチャレンジしていますが、原因がわかりません。どなたか原因と対策を教えて下さい。     //ボタンの中のコード  //セル、$E$147:$E$158 にセットした「選択し」をセル E7 へセットする。  Dim CRng As Range  Set CRng = Range("E7")  With CRng.Validation   .Delete  .Add Type:=xlValidateList, Formula1:="=$E$147:$E$158"  ←ここでエラー End With

  • EXCEL VBA Worksheet_Chang

    お世話になります。 EXCEL VBAで 以下の処理をしています。 C6の内容に応じて、セルに式を設定するだけなのですが このシートの全然関係ないセルで[Delete]キーを押下した際に 実行時エラー 13 型が一致しません というエラーが発生します。 どういう理由でエラーとなるのでしょうか? また、どのような対処をすればいいでしょうか? 以下、実際のコードです Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range("C6") Then If Range("C6").Value = "する" Then Range("I11").Formula = "=C7" Range("I12").Formula = "=C7" Range("I13").Formula = "=C7" Range("I14").Formula = "=C7" Range("J11").Formula = "=C8" Range("J12").Formula = "=C8" Range("J13").Formula = "=C8" Range("J14").Formula = "=C8" Else Range("I11").Formula = "" Range("I12").Formula = "" Range("I13").Formula = "" Range("I14").Formula = "" Range("J11").Formula = "" Range("J12").Formula = "" Range("J13").Formula = "" Range("J14").Formula = "" End If Else End If End Sub

  • 【エクセル】 VBAでエラーが出てわかりません。。

    やりたいことは、関数をマクロでセルに記入してオートフィルで指定した行数まで伸ばしたいのです。 (すでに関数で作成したファイルがあるのですが、行数が多いため、とても重い。。^^;) まずマクロの記録で次のマクロを取得しました。 Sub Macro4() Range("C4").Select ActiveCell.Formula = "=SUM(A2:A10)" Range("C4").Select Selection.AutoFill Destination:=Range("C4:C12"), Type:=xlFillDefault Range("C4:C12").Select Range("D11").Select End Sub そして、 Sheet2に貼り付けて > ActiveCell.Formula = "=SUM(A2:A10)" の"=SUM(A2:A10)"部分をちょっと長い関数ですが、 "=IF(ISERROR(INDEX(Sheet1!$I$1:Sheet1!$I$400,SMALL($A$2:$A$400,ROW(A1)),1)),"",INDEX(Sheet1!$I$1:Sheet1!$I$400,SMALL($A$2:$A$400,ROW(A1)),1))" と書き換えてマクロを実行すると「アプリケーション定義またはオブジェクト定義エラーです。」 というエラーが出てしまうんですが、どこを直せばわからないです。。 おかしいところを教えてください、よろしくお願いします。 わかり図らい説明かと思いますが。。この件(1行目の文)について似たようなことを解説して いるサイトがありましたら、教えて欲しいです。

  • エクセルVBAで別範囲のセル書式設定を利用したいと思っています。

    エクセルVBAで別範囲のセル書式設定を利用したいと思っています。 最近、 Worksheets("Sheet2").Range("B1:B10").Formula = Worksheets("Sheet1").Range("B1:B10").Formula のような式を覚えたので、同じようにRangeを利用して別範囲の書式をコピーしたいと考えましたが、 .Formula に換えるプロパティがわかりません。 試しに .font.bold としても反応しませんでした。 Worksheets("Sheet1").Range("B1:B10").Copy Worksheets("Sheet2").Range("B1:b10").PasteSpecial Paste:=xlPasteFormats の2行より短くはならないのでしょうか? 宜しくお願いします

  • エクセルVBAでUserInterfaceOnly:=Trueが効かない?!

    以下のコード(要点だけに簡略化していますが)を実行すると、実行時エラー1004「アプリケーション定義またはオブジェクト定義のエラーです。」となります。 もちろんシートをProtectしなければエラーになりませんが、UserInterfaceOnly:=True にして、マクロからの変更は可能にしているはずなのに・・・・。 Valueプロパティは設定できるのにIDプロパティが設定できないのはどうしてでしょうか? また、一旦シートをUnprotectしてから再度Protectすること以外の対処法がありますか? Sub test01() With ActiveSheet .Protect Password:="merlion", UserInterfaceOnly:=True .Range("A1").Value = 999 .Range("A1").ID = .Range("A1").Value '←ここでエラーになります。 End With End Sub Excel2000、2003とも同じ結果でした。 よろしくお願いいたします。

  • VBA 結合セルの値を削除

    マクロ超初心者です。 C7~K7が結合されたセルの値を削除したいです。(値はC7に入力されています) Range("C7").MergeArea.ClearContents で実行してみたところ 実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 と出てきます。 セルの書式設定をみてみると、保護/ロックにチェックが入っておりました。もしかしたらこれが悪さをしているのでしょうか。 分かりにくくて申し訳ありませんが、知恵を貸していただけたら助かります。よろしくお願いいたします。

  • エクセル VBA)) CheckBox_Clickでちょっとわからないことがあるのですが。

    すいません、VBAかなり初心者ですごい簡単な質問かもしれません。 VB.netやVB6を触っていればわかるとおもうのですが、 シート内でCheckBox_Clickイベントの実行文のなかでセルを参照する記述を書いているのですが、 1) Dim a as String 2) a = WorkSheets("??").Range(E9) 2)の場所でエラー(アプリケーション定義またはオブジェクト定義エラーです。)とセル位置を参照できないのですが、シート内で記述しており他のSUB ??() のプロシージャーでは問題なく参照できるのですが、なぜなんでしょうか?  

  • Excel VBAにて助けてほしいです。

    マクロ記述でグラフを挿入を記録したものを、VBAで実行すると 実行時エラー アプリケーション定義またはオブジェクト定義のエラーです。 となります。 Range("C3:O5").Select ActiveSheet.Shapes.AddChart2(201, -4111).Select ActiveChart.SetSourceData Source:=Range("決算!$C$3:$O$5") -4111が認識されないのかわかりません。 集合縦棒2つ 折れ線グラフ1つ 表及び記録されたコードの画像を添付します。 なんとか宜しくお願い致します。

専門家に質問してみよう