• ベストアンサー
※ 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

  • 【Excel】関数でできますか?

    Excel2003を使用しています。   E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高  1行  あ                    100  2行  い      100  3行  う       500  4行  5行 月 計     600          100      500  6行  7行  8行  か                      300  9行  き       400 10行  く       500 12行 月 計      900        300      1100 13行 累 計      1500        400      :      : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]-[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 よろしくお願いします。

  • 【Excel】数式のコピー

    Excel2003を使用しています。 他人が作成した表の行数を増やして、数式もコピーしたいのですが、その数式は別シートを参照していて、行・列が連続していないので、単純にコピー → 貼り付けでは、正しい数式を貼り付けることができません。 現在は、とりあえず、コピー&貼り付けした後に、数式を修正しているのですが、規則性があるので、手作業で数式を修正する以外に何か良い方法はないでしょうか? Sheet1…参照するシート Sheet2…数式が入力されているシート Sheet2に入力されている数式は  C7 = Sheet1!B7  D7 = Sheet1!C7  E7 = Sheet1!D7  F7 = Sheet1!E7  G7 = Sheet1!F7  H7 = Sheet1!G7  I7 = Sheet1!B8  J7 = Sheet1!C8  K7 = Sheet1!D8     :     :  C16 = Sheet1!B25  D16 = Sheet1!C25  E16 = Sheet1!D25  F16 = Sheet1!E25  G16 = Sheet1!F25  H16 = Sheet1!G25  I16 = Sheet1!B26  J16 = Sheet1!C26  K16 = Sheet1!D26 以上が1ページ分で、C列~H列、I列~K列はそれぞれ参照する行が1行おきになっています。 Sheet1の1ページは26行ありますので、2ページ目のSheet2の数式は  C17 = Sheet1!B33  から始まり  D17 = Sheet1!C33     :     :  H17 = Sheet1!G33  I17 = Sheet1!B34  J17 = Sheet1!C34  K17 = Sheet1!D34     :     :  K26 = Sheet1!D52  までが、2ページ目となり、これが下方向へ続いています。 これらの数式を変更することなどで、コピー&貼り付けができないかと思い、質問させていただきました。 説明がわかりづらくて、申し訳ありませんが、よろしくお願いします。

  • 【Excel】関数でできますか?(訂正版)

    Excel2003を使用しています。   E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高  1行  あ                   100  2行  い      100  3行  う       500  4行  5行 月 計     600           100        500  6行  7行  8行  か                    300  9行  き       400 10行   く       500 11行 12行 月 計     900            300        1100 13行 累 計    1500            400       :       : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]+[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 よろしくお願いします。

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • 【Excel】直前のある特定の文字を拾って計算したい

    Excel2003を使用しています。   E列→摘要欄 H列→借方金額 I列→貸方金額 K列→差引残高  1行  あ                   100  2行  い      100  3行  う       500  4行  5行 月 計     600           100        500  6行  7行  8行  か                    300  9行  き       400 10行   く       500 11行 12行 月 計     900            300        1100 13行 累 計    1500            400       :       : というふうに金額が入力されているとき、K列の差引残高に E列に“月 計”と入力されたら、 [直前の月 計の差引残高セル]+[借方金額]-[貸方金額]という 数式を入れたいのですが、どんな関数を使えばできますか? 上記の例でいくと、 K12セルに[=K5+H12-I12]の計算結果が表示されるように したいのですが。。。 関数でもマクロでも構いません。マクロでしたら、初心者ですので 参考までに一例を示していただけると嬉しいです。 よろしくお願いします。

  • Excelの数式について教えてください。

    =IF(AND($A7="",$I7="",),"",IF($X7=$AA$13,IF(AND(NOT($A7=""),NOT($I7="")),$H7+$P7,IF($X7=$AA$13,IF(NOT($A7=""),$H7,IF($X7=$AA$13,IF(NOT($I7=""),$P7))))))) 何とか上記の数式を作ったのですが、 (X列、AA列は色々な店名が入力されています。)X列の店名が、AA列の店名に合致すると、正常に計算されますが、合致しないと"FALSE"が表示されます。 合致しない場合は、"FALSE"でなくセルを空白表示にしたいのでが、数式を教えてください。 Excel2003 セルの書式設定:X列、AA列は標準、他の列は数値です。この式はQ列に入力されています。 よろしくお願いいたします。

  • 【Excel】正しい計算結果が得られない

    Excel2003を使用しています。 B列は日付、C列は摘要欄、E列・F列は金額データが入力されています。 C列に『n月計』と入力された行のE列・F列に下記の数式(E269セル、F269セルの場合を記載)をマクロボタンをクリックすることにより、入力できるようになっています。 E列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(E$4:E268)) F列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(F$4:F268)) 4月計~12月計までは、問題なく上記の数式で集計できていたのですが、1月計を同様の操作で数式を入力したところ、正しい集計結果を得ることができません。 以前は、単純にSUM関数を使用して、その月のデータを都度、手作業で範囲選択していましたが、同様のシートが40枚ほどあるため、マクロボタンをクリックすることで、集計の数式が入力できればと思い、作成したのですが…。 どういった原因が考えられますでしょうか? よろしくお願いします。

  • エクセル関数で列を挿入し同時に数式の列もずらしたい

    数式で =IF(COUNTIF(E1:H1,1)=0,1,IF(MATCH(1,E1:H1,1)=1,1,"")) をJ1に設定してます。 その後 J列に列挿入すると K1に=IF(COUNTIF(E1:H1,1)=0,1,IF(MATCH(1,E1:H1,1)=1,1,"")) がコピーされますが (E1:H1)を列挿入することで(F1:I1)にすることは可能でしょうか 列を増やすことが多々あるため挿入する列数の応じた ずれ方をしていきたいです。 何分に勉強不足のためご教授よろしくお願いします。

  • Excel数式について

    Excel数式について Excel2003を使用しております。 sheet1からsheet4のA列からC列に1~100までの数字を入力しております。 sheet5のA1~A100にそれぞれの数字をカウントしたものを返したいのですが、 適した数式をご教示いただきたくよろしくお願い致します。

  • Excel数式について

    Excel数式について Excel2010を使用しております。 sheet1からsheet10のA列からC列に1~400までの数字(コード)をランダムに入力しております。 中には欠番もあるので、入力される数字(コード)は全部で「97」になります。 sheet11のA1~A97にそれぞれの数字(コード)をカウントしたものを返したいのですが、 適した数式をご教示いただきたくよろしくお願い致します。

仕様書について
このQ&Aのポイント
  • EB-1940Wに対応する金具ELPMB23の仕様書、寸法図が欲しいです。
  • EPSON社製品であるEB-1940Wに対応する金具ELPMB23の仕様書、寸法図を探しています。
  • EB-1940Wに使用できる金具ELPMB23の仕様書、寸法図を提供してください。
回答を見る

専門家に質問してみよう