『マクロでの置換について』(モタード)
お世話になっております。
どうかご教示いただきたい事がございます。
マクロについてお伺いいたします。
=SUMIFS('4月'!$H$5:$H$1000,'4月'!$C$5:$C$1000,D9) 上記関数が、セルのE9からE500まで入力されているとします。(関数は例です)
セルのE2には、月を選択できるセルがありますが、マクロ処理で、
上記関数の4月を、セルE2の月に置換するマクロをご教示ください。
ネットで調べてみましたが、分かりませんでした。
よろしくお願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
Dim m As String m = Range("E2").Value Range("E9:E500").Formula = "=SUMIFS('" & m & "'!$H$5:$H$1000,'" & m & "'!$C$5:$C$1000,D9)" (month) 2025/06/27(金) 08:24:00
=SUMIFS(
INDIRECT("'"&$E$2&"'!$H$5:$H$1000"), INDIRECT("'"&$E$2&"'!$C$5:$C$1000"), D9 )
(暇な人) 2025/06/27(金) 08:53:27
既に適切な回答がありますが、置換にこだわるなら以下です。 対象範囲を選択して置換する動作をマクロ記録すれば、殆ど完成形に近いマクロが得られます。 ポイントは「検索対象」を「数式」に指定するくらいでしょうか。 数式を直接指定する必要が無い一方で、置換前と置換後の両方を指定することが特徴でしょう。 学習の一環でしょうからこちらもトライされたらいかがですか? (xyz) 2025/06/27(金) 12:44:30
当方の説明不足もあり、実際の関数は次のとおりとなります。 =IF(D9=0,0,IFERROR(INDEX('4月'!$C$3:$AK$222,MATCH(D9,'4月'!$C$3:$C$222,0),MATCH($D$5,'4月'!$C$3:$AK$3,0)),""))
(xyz)さんの回答で動作マクロを作成してみましたが、やはり数式の指定方法が不明です。
(暇な人)さんの回答で関数の場合、追加で関数のご教示をいただければ幸いです。
よろしくお願いいたします。 (モタード) 2025/06/27(金) 15:32:25
「検索対象」について、置換は「数式」しかないのでした。 失礼。トホホ。ポイントでもなんでもなかったという・・・・ (種類が複数あるのは検索のときだけでしたね。)
それで結果はどうだったのでしょう。置換はうまくいったのですか?
(xyz) 2025/06/27(金) 15:45:31
(XYZ)さん、ご返信ありがとうございます。
うまくいきません。
E2のセルに入力された月に置換したいのですが、方法が分かりません。
申し訳ございません。ご教示ください。 (モタード) 2025/06/27(金) 16:39:01
いったん4月を5月に変更する動作を実行して、マクロ記録してください。 そのあとで、E2セルの値に修正するコードを追加します。 まずは、4月を5月に変更する動作のマクロ記録をこちらにアップして下さい。
(xyz) 2025/06/27(金) 16:52:36
(XYZ)さん。ありがとうございます。
以下、動作マクロとなります。
Sub Macro1()
Range("E9:E18").Select Selection.Replace What:="4月", Replacement:="6月", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 End Sub
4月を6月に変更しました。
よろしくお願いいたします。 (モタード) 2025/06/27(金) 17:11:13
Sub Macro1() Dim s As String s = Range("E2").Text Range("E9:E18").Replace What:="4月", Replacement:=s, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 End Sub
なお、"4月"のところも固定ではなく、動いていくので、 置換前の情報を予めE1セルに入れ、同じようにして What引数を修正できると思います。 (xyz) 2025/06/27(金) 18:09:54
(XYZ)さん、ご回答ありがとうございます。
できれば、追加のコードについてもご教示ください。
無理を申し上げます。よろしくお願いいたします。 (モタード) 2025/06/27(金) 18:59:04
お断りします。 ここまで提示しているのですから、是非ご自分でトライしてください。 その上で詰まったら、どこが不明なのか具体的に質問して下さい。 Replaceメソッドのヘルプを読んで、What引数,Replace引数が何かを調べて、内容を理解されれば さほど難しいことではないと思います。 マクロ記録も提示されているじゃないですか。マクロもご存じなんでしょう。 是非頑張ってください。
(xyz) 2025/06/27(金) 19:26:26
(XYZ)さん、ありがとうございました。
いわれるように頑張ってみます。ありがとうごあいました。 (モタード) 2025/06/27(金) 20:03:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.