Excel2003を使用しています。
ある数式をボタンに登録して、必要なときにだけボタンを押すことで登録した数式を呼び出して、セルに入力することはできるでしょうか?
現在はH列とI列に下記の数式を入力しているのですが、H列、I列に直接数値を上書きすることも少なくないので、必要なときにだけボタンを押して下記の数式を入力できたら、このシート自体もスッキリするのではないかと思い、質問させていただきました。
H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")]
I列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",I$8:I8),"")]
マクロを使用することで可能であれば、参考までにコードを記載していただけると助かります。
よろしくお願いします。
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
こんにちは。
数式をR1C1方式にすることによって、同じ内容の数式でもA1方式と比べるとずいぶん分かりやすくなりますね。この方法で他の数式でも同様のマクロを作ってみたところ、うまくいきました。
>コマンドボタンではなくて、ダブルクリック・イベントでも良いような気がします。(ActiveCell は、Target になります)
とアドバイスをいただきましたので、練習がてら試してみたところ、これもうまくいきました。
おかげさまで、シート自体も必要な箇所にだけ数式が入力されていて、スッキリしました。シート数が多いブックで、同様のブックが10個ほどありますので、容量も若干スッキリしたようです。
今回も最後までお付き合いくださり、ありがとうございました<(_ _)>
No.3
- 回答日時:
こんにちは。
>アクティブセルに応じて計算した結果を表示させることはできるのでしょうか?
>説明不足だったようで申し訳ありませんが、よろしくお願いします。
もともと、行や列の一部が相対参照式になっているのですから、今のご質問だけでは、アクティブセルにマクロで数式を貼り付けられるはずがないと思います。
この数式は、どこのセルに対して、このような数式になったのか分からないと、対応できません。
H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")]
この回答への補足
こんばんは。
>この数式は、どこのセルに対して、このような数式になったのか分からないと、対応できません。
H列→[=IF($E8="累 計",SUMIF($E$8:$E8,"月 計",H$8:H8),"")]
H列には、「E8以下のE列に『累 計』と入力されたら、E8以下のE列に『月 計』と入力されている行のH列の数値を合計する」という数式を入力しました。別の列に数式をコピペしてもエラーが出ないように行や列の一部を相対参照や絶対参照にしています。
(別件で質問させていただいた際、このようなアドバイスを受けましたので…)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) 列の最終行に新たに入力されたらその値を自動参照 1 2023/01/21 09:59
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報