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.2
- 回答日時:
式を入れるだけなら下記にようになります。
ActiveCell.Formula = "=IF($E8=""累 計"",SUMIF($E$8:$E8,""月 計"",I$8:I8),"""")"
この回答への補足
回答ありがとうございます。
アクティブセルに応じて計算した結果を表示させることはできるのでしょうか?
説明不足だったようで申し訳ありませんが、よろしくお願いします。
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列の数値を合計する」という数式を入力しました。別の列に数式をコピペしてもエラーが出ないように行や列の一部を相対参照や絶対参照にしています。
(別件で質問させていただいた際、このようなアドバイスを受けましたので…)
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個ほどありますので、容量も若干スッキリしたようです。
今回も最後までお付き合いくださり、ありがとうございました<(_ _)>
お探しの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ランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報