[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字の一部をサイズ変更し太字に』(KO KO)
お世話になります
文章の一部の文字を手動で選択し、選択した文字のフォントサイズを12、太字に変更したいです。
例 私は自由になったと思った。
上の文字の"自由"の部分を手動で選択し、マクロを実行すれば、フォントサイズ12及び太字に"自由"のところだけ変わってほしいです。
ご教示願います
< 使用 Excel:Excel2016mac、使用 OS:Windows8 >
https://h1r0-style.net/excelvba/howto-convert-fonts-at-once/amp/
(通りすがり) 2021/06/12(土) 19:53
(もこな2) 2021/06/12(土) 20:50
セル編集中はマクロを実行することはできません 理解していませんでした 。
勉強になりました。
フォントサイズ等をかえる対象の文字が毎回違うので
少しでも手間をはぶきたく、マクロでできないものかと思った次第です。
コツコツ頑張ることにします
ありがとうございました。
(KO KO) 2021/06/12(土) 22:08
B列に色々な文言が入力されています。(500行くらい)
その色々な文言のなかで目立たせたい文字だけを太字等にマクロで編集したいです
E列に目立たせたい文言を入力しておけば、マクロ可能かとおもって挑戦してみましたが、うまくいきません。
例
B2 私は自由になったと思った E2 自由
B3 昨日 喫茶店にいった。 E3 喫茶店
B列の自由と喫茶店の文字のみを編集したいのです。
ご教示願います。下記のマクロを挑戦してみたのですが、限界でした。
Sub 文字編集()
Dim mycell As Range
Dim i As Long
Dim 発見位置
Dim 検索文字長
i = Range("B" & Rows.Count).End(xlUp).Row
For Each mycell In Range("b1:b" & i)
With mycell 発見位置 = WorksheetFunction.Find(Range(mycell), "e" & i) 検索文字長 = Len(Range("e" & i))
.Characters(発見位置, 検索文字長).Font.Bold = True .Characters(発見位置, 検索文字長).Font.Size = 12 .Characters(発見位置, 検索文字長).Font.ColorIndex = 3 '赤 End With
Next
End Sub
(KOKO) 2021/06/13(日) 16:24
(koko) 2021/06/13(日) 17:44
発見位置 = InStr(mycell.Value, Range("e" & mycell.Row).Value)
(出先マン) 2021/06/13(日) 17:59
(出先マン) 2021/06/13(日) 18:10
こんばんは! お邪魔します。。。ちょっと回答し過ぎな気もしますが、、ついつい(^^; 既に紹介のあった↓で作った kkk というコードを使ってみました。 [[20210606121808]] 『検索文字を含む文章の検索文字のみ色を変更』(経理初心者)
対象の文字があったら kkk に引数を渡します。 検索位置を更新して 対象の文字があったら kkk に引数を渡します。 なくなったら終了します。 以上を繰り返すコードです。。。
Option Explicit Sub 文字編集() Dim mycell As Range Dim FStr As Range For Each mycell In Range("b1:b" & Range("B" & Rows.Count).End(xlUp).Row) If mycell.Value <> "" Then For Each FStr In Range("e1:e" & Range("e" & Rows.Count).End(xlUp).Row) If FStr.Value <> "" Then If InStr(1, mycell, FStr) > 0 Then kkk mycell, FStr.Value, InStr(1, mycell, FStr) End If End If Next End If Next End Sub Sub kkk(ByVal r As Range, ByVal MyStr As Variant, ByVal S As Long) With r.Characters(InStr(S, r.Value, MyStr), Len(MyStr)) .Font.Bold = True .Font.Size = 12 .Font.ColorIndex = 3 '赤 End With S = InStr(S + Len(MyStr), r.Value, MyStr) If S > 0 Then kkk r, MyStr, S End Sub (SoulMan) 2021/06/13(日) 19:01
■1
Range("b1:b" & i)
↑は、B2セルから始まるなら↓でしょうね。
Range("B2:B" & i)
■2
Range(mycell)
↑は明らかにおかしいですね。
mycell.Value とすべきでしょう
■3
ワークシートのFind関数について真面目に調べてみましょう
(引数の順番変じゃないですか?)
■4
i = Range("B" & Rows.Count).End(xlUp).Row 発見位置 = WorksheetFunction.Find(Range(mycell), "e" & i) 検索文字長 = Len(Range("e" & i))
↑だとiがずっと同じ(例示の通りなら3のまま)なので適切ではないでしょう
■5
ということを踏まえ、[[20210606121808]]で提示しているInStrを使うとこんな感じでしょうか?
(Excel2016macをWindows8で使用するという一風変わった構成なので、お使いの環境でうまくいくか保証しませんが。)
Sub さんぷる() Dim i As Long, n As Long For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row n = InStr(Cells(i, "B").Value, Cells(i, "E").Value)
If n > 0 Then With Cells(i, "B").Characters(n, Len(Cells(i, "E").Value)).Font .Bold = True .Size = 12 .Color = vbRed End With End If Next End Sub
(もこな2) 2021/06/13(日) 19:56
1)ユーザーフォームをモードレスで表示 2)ユーザーフォームのActivateイベントで、 テキストボックスにアクティブセルの文字列を表示 3)テキストボックス内の変更したい部分をマウスで選択 4)コマンドボタンをクリックで、アクティブセルのフォントを変更 5)別のセルを選んで、3)4)を繰り返す。
(マナ) 2021/06/13(日) 23:04
Private Sub CommandButton1_Click() Dim 発見位置 As Long Dim 検索文字長 As Long
発見位置 = TextBox1.SelStart + 1 検索文字長 = TextBox1.SelLength If 検索文字長 = 0 Then Exit Sub
With ActiveCell.Characters(発見位置, 検索文字長).Font .Bold = True .Size = 12 .ColorIndex = 3 '赤 End With
End Sub
(マナ) 2021/06/13(日) 23:26
(koko) 2021/06/14(月) 09:47
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.