Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
計算式と文字列の組み合わせについて
投稿日時: 20/06/14 22:25:44
投稿者: OkabeS

SUM(A,B)-C という計算を、変数を加えて作りたいのですが、うまくいきません。
具体的には以下コードになりますが、どこが間違っていますでしょうか?
 
Selection.Formula = "=SUM(" & Cells(ActiveCell.Row, A).Address(False, False) & "," & Cells(ActiveCell.Row, B).Address(False, False) & ")"
-Cells(ActiveCell.Row, C).Address(False, False)
 
■エラーメッセージ
実行時エラー 13
型が一致しません。
 
※以下を外すとうまくいくため、以下が違うと思いますが、、何がいけないのかわかりません。。
-Cells(ActiveCell.Row, C).Address(False, False)
 
どなたかわかる方ご教授頂けたら幸いです。

回答
投稿日時: 20/06/14 22:45:17
投稿者: 半平太

 「-」マイナスも数式文字に含める必要があります。「&」マークも不足しています。
 
> & ")" - Cells(ActiveCell.Row, C).Address(False, False)
  ↓
   & ")-" & Cells(ActiveCell.Row, C).Address(False, False)

回答
投稿日時: 20/06/14 22:47:28
投稿者: WinArrow
投稿者のウェブサイトに移動

>-Cells(ActiveCell.Row, C).Address(False, False)

"-" & Cells(ActiveCell.Row, C).Address(False, False)
 
回りくどく考えていませんか?
もっとすっきりしたコード
With Selection
    .Formula = "=SUM(A" & .Row & ",B" & .Row & ")-C" & .Row
End With
 

Selection>column > 3 というチェックをした方がよいと思います。
どのような状況のコードなのかわかりませんが
SelectionやActiveCellを使わなくてもよい方法を検討してみてください。

回答
投稿日時: 20/06/14 22:54:25
投稿者: WinArrow
投稿者のウェブサイトに移動

マイナス記号を文字列にする
レスに加えて
3ヶ所も用修正
>Cells(ActiveCell.Row, A)

Cells(ActiveCell.Row, "A")
 
>Cells(ActiveCell.Row, B)

Cells(ActiveCell.Row, "B")
 
>Cells(ActiveCell.Row, C)

Cells(ActiveCell.Row, "C")

投稿日時: 20/06/14 22:54:39
投稿者: OkabeS

半平太様
WinArrow様
 
早速のご回答ありがとうございます。
解決いたしました。
-も数式文字に含める必要があるのですね。
また簡略化の方法もアドバイス頂きありがとうございました。
 
岡部