🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

331閲覧

ExcelVBAでセルに計算式を入れたい

Tera-Tomi

総合スコア9

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2020/11/27 08:04

前提・実現したいこと

ExcelVBAでセルに以下のような計算式を入れたいです。(仮に処理する行を4行目とする)
「=IF(S4=0,L4-N4,ROUNDDOWN(O4*ROUNDDOWN(K4,3),0)」
問題を下記に記載するので、おかしい点などわかる方ご教授いただけないでしょうか。

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

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

該当のソースコード

ExcelVBA

1With シートオブジェクト名 2 .Cells(4, 16).FormulaLocal = "=IF(" & .Cells(4, 19).Address(False, False) & "=0," & .Cells(4, 12).Address(False, False) & "-" & .Cells(4, 14).Address(False, False) & ",ROUNDDOWN(" & .Cells(4, 15).Address(False, False) & "*ROUNDDOWN(" & .Cells(4, 11).Address(False, False) & ",3),0)" 3End With

試したこと

代入するセルを以下プロパティで試してみましたがいずれも同じエラーでした。

  • Formula
  • Value
  • 何もプロパティを付けない

文字列として直接「=IF(S4=0,L4-N4,ROUNDDOWN(O4*ROUNDDOWN(K4,3),0)」を入れてみましたが、同じエラーが出ました。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

Usirow

2020/11/27 08:11

右括弧が一つ足りておらず、IFが閉じていないのが原因かと思います。
Tera-Tomi

2020/11/27 08:15

見落としていました。。。 修正したところ、エラー起きずに動きました!ありがとうございます!
guest

回答2

0

自己解決

右括弧が一つ足りておらず、修正したところ、エラー無く動きました。
=IF(S4=0,L4-N4,ROUNDDOWN(O4*ROUNDDOWN(K4,3),0))

投稿2020/11/27 08:16

Tera-Tomi

総合スコア9

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

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

0

その代入しようとしている式を文字列で確認してみて下さい。
そもそも値として展開しているものは意味があるものになっていますか?

投稿2020/11/27 08:16

編集2020/11/27 08:18
sazi

総合スコア25327

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問