[[20250901094849]] 『置換マクロに追加記述してください。』(KN) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『置換マクロに追加記述してください。』(KN)

自動記録で取得したマクロで
B列の2行目からテキストコピペして置換した時に
ある行に"脚注"という文字が含まれていたら
その行ごと下は空白行にしてください

Sub Macro4()
'
' Macro4 Macro
'

'

    Columns("B:B").Select
    Selection.Replace What:="、*", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 回答者への情報提供です。

https://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=196705&rev=0
(情報屋) 2025/09/01(月) 10:05:27


だ〜か〜ら〜
質問掲示板に命令するなと言っているでしょうが!

命令するなら有料で請け負ってくれる人に頼んでください。
金銭が発生するので、責任持ってやってくれるはずです。

私なら、以下のように質問しますよ。

【質問のしかた例】
マクロ(VBA?)はマクロ記録しかできません。
B列の「、*」を""に変換するのはマクロ記録でできたのですが、
B列から「脚注」という文字のあるをセルを見つけて、
(「脚注」という文字の13行目にあったとしたら)
13行以下の行をすべて空白にしたいのですが、
どのような方法があるのでしょうか。
教えてください。よろしくお願いします。

(匿名) 2025/09/01(月) 10:31:21


その通りです
よろしくお願いします
(KN) 2025/09/01(月) 10:38:27

Sub Sample()
    Dim rng As Range

    Set rng = Range("B:B").Find(what:="脚注")
    Rows(rng.Row & ":" & Rows.Count).ClearContents

End Sub

「VBA 指定の文字を見つける」
でググると、Findメソッドというものが出てきます。
後でもよいので、確認するようにしてください。

また
「VBA セルの値を消す」
でググると、ClearContentsメソッドというものが出てきます。
後でもよいので、確認するようにしてください。

それと、私があげた「質問のしかた例」のように質問できるよう
訓練するのも、VBAができるようになる一歩になると思いますよ。
ちなみに云十年前、私も丸投げで注意されて、
その後、一つずつわからないとを質問して、
実行して、理解してを繰り返しているうちに、
できるようになりました。

今でも、最初に私に叱ってくれた方に感謝しています。

(匿名) 2025/09/01(月) 10:49:11


仰せの通りです
ご提示のマクロで出来ましたが
Sub Macro4()とSub Sample()を合体させて一つのマクロにすると助かります
その追加する記述がちょっと厳しいです

1行目にマクロボタンとして登録しています
更新のたびに何回も使うマクロなんでよろしくお願いします

(KN) 2025/09/01(月) 11:08:51


やってみたことは
単純に組み合わせて結合することですがダメでした
なにか別のコードを付け加えないといけないと思うのですが
それが分かりません
Sub Sample()
    '(1)_____
Dim rng As Range
    Columns("B:B").Select
    Selection.Replace What:="、*", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2

(2)______

 Set rng = Range("B:B").Find(what:="脚注")
    Rows(rng.Row & ":" & Rows.Count).ClearContents
End Sub
(KN) 2025/09/01(月) 11:37:48

なにかエラーメッセージが返ってきてないですか?
エラーメッセージはExcel君からの返事です。
この返事を無視してはいけません。

例えば紙を切る仕事をA君に頼んだとします。
A君が「鋏を持っていないのでできません」という返事が返ってきたら、
鋏を渡しますよね。

それと同じです。

(匿名) 2025/09/01(月) 11:41:11


エラーメッセージは全然出ないです

'(1)までは実行されましたが
続けて
'(2)が実行されずになってしまっています

(KN) 2025/09/01(月) 13:43:43


(2)______
の行の先頭にはシングルクォート「'」は付いていますよね?

ブレークポイントのつけ方はわかりますか?
分からなければ、ステップイン実行、ブレークポイントなどで
調べてみてください。

Set rng = Range("B:B").Find(what:="脚注")
の所にブレークポイントを置いて
ステップイン実行してみてください。

(匿名) 2025/09/01(月) 14:30:48


(2)______
の行の先頭にはシングルクォート「'」は付いていますよね? 最初付けるの忘れてました

Q.ブレークポイントのつけ方はわかりますか?
A.わかりません

調べてみてもなんだかさっぱり判らずで
もうこれ以上無理なんで諦めます

ありがとうございました。
(KN) 2025/09/01(月) 16:29:50


 | ご提示のマクロで出来ましたが
 | Sub Macro4()とSub Sample()を合体させて一つのマクロにすると助かります      
 字義どおりうけとめるなら、
 Sub  main()
     Call Macro4
     Call Sample
 End Sub 
 として mainを実行したらどうですか?

 ふたつの話が関連しているならまずいですけど。
 "、*" がある箇所で、かつ"脚注"があるなら、という話なのかな。
(xyz) 2025/09/01(月) 17:54:06

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.