大変お世話になっております。
VBAの超初心者です。皆さまどうかご教示ください。
Excelで資料を作っていて、下記、洋ちゃんさん(Know-How-No-Life)のマクロを応用して、セルの書式を変えずに文字を置換したいと思っています。
https://www.banana-juice.com/tech/articles/repla …
資料の体裁は以下の画像のような形です。この中でURLは青色、日付の類(20200808だけでなく、申請日(yyyy/mm/dd)も赤く表示)が赤色で表示されているとします。
https://kaizen-penguin.com/wp-content/uploads/20 …
置き換える文字列は申請日(yyyy/mm/dd)を申請日(2024/08/08)にしたいと考えています。
洋ちゃんさん(Know-How-No-Life)のhttps://www.banana-juice.com/tech/articles/repla …にあるマクロを利用する場合、どこをどのように変更すればいいでしょうか。
また実行する場合は、「Call 書式を保持したままReplace("申請日(yyyy/mm/dd)", "申請日(2024/08/08)")」とすればいいのでしょうか。
ご教示の程どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは
ご提示のサイトでは、文字列を置換後に文字の書式を個々に再設定する方法を用いているようですが、文字列を装飾する書式の種類が相当数あるのでかなり面倒な処理手順のように思われます。
Range.Charactersを利用して対象部分の .Textを入れ替えれば、書式を保持したまま文字列を入れ替えることが可能ですので、こちらの方法の方が簡単ではないかと思います。
(どこかに書式を控えておくという必要もなくなります)
https://learn.microsoft.com/ja-jp/office/vba/api …
とは言え、置換対象文字列内で複数の書式が用いられている場合は1文字ずつ入れ替えなければならなくなりますし、その場合には置換前と置換後の文字の長さが異なる場合に、どのように書式を対応させるかという問題も生じます。
(ご提示のサイトのように、書式がズレることは起きませんけれど・・)
一方で、ご質問のケースでは、対象部分は一律の書式のようですので、まとめて入れ替えてしまえば、文字数が同じでも異なっていても同じ書式が適用されます。
(置換前の最初の文字の書式が、置換後の全ての文字に適用されます)
仮に、置換部分の書式が一律と仮定しても良いのなら・・
該当Range(=セル)に対して、
1)置換対象文字列の位置を調べる
2)Range.Characters(スタート位置, 文字数).Text = "置換後文字列"
とするだけで、書式を変えずに文字列だけを置換することが可能です。
以上、ご参考までに。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
VBAコードのインデント表示
Visual Basic(VBA)
-
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
-
4
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
-
5
Excel VBA 選択範囲の罫線色の変更プロージャの動作速度の改善について
Visual Basic(VBA)
-
6
VBA コードどこがおかしいですか?
Visual Basic(VBA)
-
7
サブフォルダに格納されているファイルを、ファイル名ごとに条件分岐させたい
Visual Basic(VBA)
-
8
現在のブックを閉じないで、マクロ抜きの(現在のブックの)コピーを作成したい
Visual Basic(VBA)
-
9
VBAなくなるの?
Visual Basic(VBA)
-
10
ExcelVBA修正のお願い
Visual Basic(VBA)
-
11
Vba ファイル書き込み時に書き込みエラーを回避する方法を教えてください
Visual Basic(VBA)
-
12
pdfファイルの複数添付 引数の型
Visual Basic(VBA)
-
13
IF文、条件分岐の整理方法
Visual Basic(VBA)
-
14
【ExcelVBA】dictionaryの重複判断の基準(セル結合だと違う値として認識される)
Visual Basic(VBA)
-
15
VBAの間違い教えて下さい
Visual Basic(VBA)
-
16
エクセル タブの下のメニューを選択 実行するコード
Visual Basic(VBA)
-
17
[Excel VBA]特定の条件で文字を削除&残す処理をするファイルを作成したいです
Visual Basic(VBA)
-
18
VBA 2次元配列の出力
Visual Basic(VBA)
-
19
VBA 入力箇所指定方法
Visual Basic(VBA)
-
20
エクセルVBAにて =A1=B1とすれば A1とB1のセル内容が一緒だった場合 TRUE 違っていれ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Visualbasicの現状について教え...
-
【VBA】 結合セルに複数画像と...
-
VB.net(VB)で、フォームにExcel...
-
VBA 別ブックから条件に合うも...
-
VBA 別ブックからコピペしたい...
-
VBA 2次元配列の出力
-
VBAでセルの書式を変えずに文字...
-
Excelのマクロについて教えてく...
-
ExcelのVBAコードについて教え...
-
vbs ブック共有を解除
-
【ExcelVBA】5万行以上のデー...
-
[Excel VBA]特定の条件で文字を...
-
Excelのマクロについて教えてく...
-
エクセルのVBAコードについて教...
-
【VBA】スペースが入っていない...
-
【VBA】値を変更しながら連続で...
-
【ExcelVBA】インデックスが有...
-
Excel VBAで値を変えながら、pd...
-
WindowsのOutlook を VBA から...
-
エクセルvbaの対象セルに色をつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】5万行以上のデー...
-
【ExcelVBA】dictionaryの重複...
-
VBAでセルの書式を変えずに文字...
-
[Excel VBA]特定の条件で文字を...
-
【VBA】 結合セルに複数画像と...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAのブックを開く方法...
-
WindowsのOutlook を VBA から...
-
エクセルでCDOを使ったメール送...
-
エクセルvbaの対象セルに色をつ...
-
【ExcelVBA】インデックスが有...
-
Excelのマクロについて教えてく...
-
エクセルVBAで特定のセルの値を...
-
エクセルのVBAコードについて教...
-
【VBA】値を変更しながら連続で...
-
Outlookの「受信日時」「件名」...
-
VBA 2次元配列の出力
-
Excel 範囲指定スクショについ...
-
VBA 別ブックから条件に合うも...
-
Web画面の文字をVB6で取得したい
おすすめ情報