• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Excel】数式をボタン登録できますか?)

【Excel】ボタン登録できる数式とは?

このQ&Aのポイント
  • Excel2003を使用している場合、特定の数式をボタンに登録して、必要な時にボタンを押すことで数式を簡単に呼び出してセルに入力することができます。
  • これにより、数値を直接上書きすることも少なくなり、シートもスッキリすることができます。
  • マクロを使用することで、参考のコードを記載することも可能です。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。Wendy02です。 数式で、意味が分かりました。ActiveCellということで、意味が理解できませんでした。 [=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")] >「E8以下のE列に『累 計』と入力されたら、 > E8以下のE列に『月 計』と入力されている行の > H列の数値を合計する」 これは、H8 か、I8 以降に対して、この式が成立するのですね。それも、これは、H8 か、I8 を基点としたもので、それが変化するわけです。A1 方式ですと、ものすごく分かりにくいです。確かに、『累 計』と入力されたら、累計を出すのですが、基本的には、データの末尾に出てくるものですね。これは、やったことがないと、意外に難しいです。 そうすると、ActiveCellとは言っても、限定されますから、これは、コマンドボタンではなくて、ダブルクリック・イベントでも良いような気がします。(ActiveCell は、Target になります) それで、たぶん、私の書いたマクロは理解しがたいかもしれませんが、まず、一度、試してみて、ワークシートの、数式の変化を確認してみてください。セルによって変化します。 以前、似たようなものは作ったことがあります。 If 構文の中身は、余計なおせっかいかもしれませんので、邪魔なものは取り去ってください。 With ActiveCell  If (.Column = 8 Or .Column = 9) And .Row >= 8 And IsEmpty(.Value) Then   .FormulaR1C1 = "=IF(RC5=""累 計"",SUMIF(R8C5:RC5,""月 計"",R8C:RC),"""")"  Else   MsgBox "入力位置は、H列か、I列の8行目以降の空のセルです", vbInformation  End If End With

rx-z5815
質問者

お礼

こんにちは。 数式をR1C1方式にすることによって、同じ内容の数式でもA1方式と比べるとずいぶん分かりやすくなりますね。この方法で他の数式でも同様のマクロを作ってみたところ、うまくいきました。 >コマンドボタンではなくて、ダブルクリック・イベントでも良いような気がします。(ActiveCell は、Target になります) とアドバイスをいただきましたので、練習がてら試してみたところ、これもうまくいきました。 おかげさまで、シート自体も必要な箇所にだけ数式が入力されていて、スッキリしました。シート数が多いブックで、同様のブックが10個ほどありますので、容量も若干スッキリしたようです。 今回も最後までお付き合いくださり、ありがとうございました<(_ _)>

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >アクティブセルに応じて計算した結果を表示させることはできるのでしょうか? >説明不足だったようで申し訳ありませんが、よろしくお願いします。 もともと、行や列の一部が相対参照式になっているのですから、今のご質問だけでは、アクティブセルにマクロで数式を貼り付けられるはずがないと思います。 この数式は、どこのセルに対して、このような数式になったのか分からないと、対応できません。 H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")]

rx-z5815
質問者

補足

こんばんは。 >この数式は、どこのセルに対して、このような数式になったのか分からないと、対応できません。 H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")] H列には、「E8以下のE列に『累 計』と入力されたら、E8以下のE列に『月 計』と入力されている行のH列の数値を合計する」という数式を入力しました。別の列に数式をコピペしてもエラーが出ないように行や列の一部を相対参照や絶対参照にしています。 (別件で質問させていただいた際、このようなアドバイスを受けましたので…)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

式を入れるだけなら下記にようになります。 ActiveCell.Formula = "=IF($E8=""累 計"",SUMIF($E$8:$E8,""月 計"",I$8:I8),"""")"

rx-z5815
質問者

補足

回答ありがとうございます。 アクティブセルに応じて計算した結果を表示させることはできるのでしょうか? 説明不足だったようで申し訳ありませんが、よろしくお願いします。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

H列の式を入力するマクロは次の通りです。 ActiveCell.Formula = "=IF($E8=""累 計"",SUMIF($E$8:$E8,""月 計"",H$8:H8),"""")"

rx-z5815
質問者

補足

回答ありがとうございます。 アクティブセルに応じて計算した結果を表示させることはできるのでしょうか? 説明不足だったようで申し訳ありませんが、よろしくお願いします。

関連するQ&A

専門家に質問してみよう