teratail header banner
teratail header banner
質問するログイン新規登録
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

532閲覧

VBAでエクセルのテーブルの”累計”列に累計を計算する式を埋め込みたい。

Qiitan

総合スコア2

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2023/11/15 00:22

編集2023/11/15 01:22

0

0

実現したいこと

VBAでエクセルのテーブルの”累計”列に累計を計算する式を埋め込みたい。

前提

式を埋め込む前のテーブル
テーブル名:TableA

項目金額累計
110
220
310
415

累計列に式を追加して作成したいテーブル
テーブル名:TableA

項目金額累計
11010
22030
31040
41555

VBA

1Sub 累計を計算する式を追加() 2 Dim Shiki As String, SumClmn As String, tablename As String 3 SumClmn = "[累計]" 4 tablename = "TableA" 5 Shiki = "= Sum(Offset(TableA[[#見出し],[金額]],1,0):[@金額])" 6 ThisWorkbook.ActiveSheet.Range(tablename & SumClmn).Value = Shiki 7End Sub

発生している問題・エラーメッセージ

実行時エラー '1004' アプリケーション定義またはオブジェクト定義エラーです。

該当のソースコード

上記のコードでエラーが発生する箇所は下記の行です。

VBA

1 ThisWorkbook.ActiveSheet.Range(tablename & SumClmn).Value = Shiki

試したこと

該当のソースコードに入力する変数(Shiki)の内容を、”test”にしたところエラーは発生せずに累計列に文字列”test”を入力できました。
そのため、変数Shikiの文字列の内容( "= Sum(Offset(TableA[[#見出し],[金額]],1,0):[@金額])")がエラーの原因であることまで特定できました。
また、変数Shikiの内容をVBAを用いずにマニュアルで入力したところエラーは生じず、正しく累計の計算を行うことができました。

補足情報(FW/ツールのバージョンなど)

エクセルのバージョンはMicrosoft 365です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyokyokyo

2023/11/15 05:11

>また、変数Shikiの内容をVBAを用いずにマニュアルで入力したところエラーは生じず、正しく累計の計算を行うことができました。 適切な原因究明を行えていると思います、あと一歩、「マクロの記録」を使用して同じ操作を行い、結果の VBAを参照すれば、回答にあるFormulaR1C1 プロパティなどを使えばいいことが自力で分かったでしょう。 ご参考まで。
Qiitan

2023/11/15 14:03

マクロ記録に思いが至りませんでした。エラーが生じた際の対応として今後活用していきたいと思います。コメントをくださりありがとうございました。
guest

回答1

0

ベストアンサー

vba

1 Shiki = "= Sum(Offset(TableA[[#見出し],[金額]],1,0):[@金額])" 2 ThisWorkbook.ActiveSheet.Range(tablename & SumClmn).Value = Shiki

vba

1 Shiki = "=SUM(OFFSET(TableA[[#Headers],[金額]],1,0):[@金額])" 2 ThisWorkbook.ActiveSheet.Range(tablename & SumClmn).Formula = Shiki

vba

1 Shiki = "=SUM(OFFSET(TableA[[#見出し],[金額]],1,0):[@金額])" 2 ThisWorkbook.ActiveSheet.Range(tablename & SumClmn).FormulaLocal = Shiki

投稿2023/11/15 01:19

sk.exe

総合スコア1097

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Qiitan

2023/11/15 01:31

ご教授いただきありがとうございました。 無事、エラーを解消することができ大変助かりました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問