[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『取り消し線をまとめて消したい!』(vba初心者)
はじめまして!
大学資料のデータを整理しているのですが
あちこちに取り消し線の引かれた文字があります。
セル全体に取り消し線が引かれていたり
文頭、文末、文の途中にのみ引かれているものもあります。
セルを選択して削除するマクロは検索で見つけたのですが
資料データが膨大なので行を選択して
取り消し線のついた文字だけ(セルごとではありません)
削除し続けるマクロを作成したいです。
参考URL:https://stabucky.com/wp/archives/3209
やっていただきたい動作
1,行を選択する
2,マクロが選択した行から
取り消し線の入った文字を持つセルを検出
3,取り消し線のある文字のみ削除
宜しくお願いします!
< 使用 Excel:Office365、使用 OS:Windows8 >
> If myCell.Characters(Start:=i, Length:=1).Font.Strikethrough = False Then > textAfter = textAfter & Mid(textBefore, i, 1) > End If ↓ myCell.Characters(Start:=i, Length:=1).Font.Strikethrough = False
> myCell.Value = textAfter
↑は削除かコメントアウト
(OK) 2020/05/13(水) 18:31
ああ勘違い。
↑は取り消し線を消すだけのコードでした。
(OK) 2020/05/13(水) 18:32
>1,行を選択する
↑の意味が分かりませんが、参考HPのコードは お望みのとおりになっていると思います。 (OK) 2020/05/13(水) 18:36
全セル選択して、取り消し線を解除すれば良いのに・・・。 (BJ) 2020/05/13(水) 18:36
諦めて応答するまで待つべきなのでしょうか
(vba初心者) 2020/05/13(水) 18:42
Sub test() Dim s As String Dim r As Range
Set r = Selection.EntireRow
s = r.Value(xlRangeValueXMLSpreadsheet) With CreateObject("VBScript.RegExp") .Pattern = "<S>[\s\S]*?</S>" .Global = True s = .Replace(s, "") End With
r.Value(xlRangeValueXMLSpreadsheet) = s
End Sub
(マナ) 2020/05/13(水) 21:33
私は、マナさんの手法をお薦めします。
XMLフォーマットの文字列をValueプロパティで取得して、
そのなかの取り消し線の情報を、正規表現を使って削除し、
その結果を元のセルに戻す、というものです。
(私もこのプロパティの使い方は半平太さんの発言から教わりました。)
(γ) 2020/05/14(木) 09:28
コメントして頂いた他の方々も
本当にありがとうございます!
時間が余った際にyさんの手法も試させて頂きます。
(vba初心者) 2020/05/14(木) 16:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.