人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

excel,複数のセルの中の”特定”の文字の
ポイントを変えるには?関数かマクロか
どちらが簡単ですか、またその方法は?

●質問者: mitsueda
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:Excel セル ポイント マクロ 関数
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● きゃづみぃ
●45ポイント

通常の関数では できないですね。

以下に自前で 関数を作成しましたので、これで できます。

文字のポイントって サイズですよね?

なお 使い方は

複数のセルを選択して

ChangeFontSize 文字,ポイントサイズ

で呼び出します。

ChangeFontSize "f", 9


ちなみに 文字は 一文字じゃないと 一致しません。


Sub ChangeFontSize(moji As String, sz As Integer)

With Selection
 Set c = .Find(moji, LookIn:=xlValues)
 If Not c Is Nothing Then
 firstAddress = c.Address
 Do
  '見つかった文字のサイズ変更
 For i = 1 To Len(c)
 If moji = Mid(c, i, 1) Then
 c.Characters(Start:=i, Length:=1).Font.Size = sz
 End If
 Next i
 
 Set c = .FindNext(c)
 Loop While Not c Is Nothing And c.Address <> firstAddress
 End If
End With

End Sub
◎質問者からの返答

有難うございました、が

私には難解でした


2 ● SALINGER
●45ポイント

数式だと書式は変更できないので、マクロでやるとしてこんな感じです。

最初の方の文字列とポイントを変更して実行してみてください。

Sub CangePoint()
  'ポイントを変える文字列を指定してください。
 Const key As String = "abc"
  'ポイントを指定してください
 Const fontSize As Integer = 14
 Dim r As Range
 Dim st As Integer
 Dim fAddress As String
 
 Set r = Cells.Find(key, lookat:=xlPart, MatchCase:=True)
 If r Is Nothing Then Exit Sub
 fAddress = r.Address
 Do
 st = InStr(1, r.Value, key)
 While st > 0
 r.Characters(st, Len(key)).Font.Size = fontSize
 st = InStr(st + 1, r.Value, key)
 Wend
 Set r = Cells.FindNext(r)
 Loop While Not r Is Nothing And r.Address <> fAddress
End Sub
◎質問者からの返答

有難うございました、が

私には難解でした


3 ● 小沢
●0ポイント

どう言う事ですか?


4 ● きなもち
●0ポイント

マクロだっけ?マクロのほうが簡単ですヨ

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ