プロが教えるわが家の防犯対策術!

セル内の特定文字(対象の文字はマウスで選定)に対しフォント変更のマクロを設定したいのですが方法はありましでしょうか?、マクロの内容は1)P明朝をPゴシック且つ強調文字に変更、2)その逆の2種類のマクロをつくりたいのですが・・・・セル全体のマクロは出来るのですが、対象文字を選定するとマクロの作成が出来なくなります。使用ソフトはwindowsXPと2000です。エクセルのマクロはツールバーから新規マクロ作成で自動的に作る程度しか出来ません。よろしくお願いします。

A 回答 (4件)

例ですが、1文字目から15文字目として以下のように設定します。



With ActiveCell.Characters(Start:=1, Length:=15).Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With

この回答への補足

さっそくありがとうございます。上記方法では1から15文字は変換可能でした。しかし、セル内の文字数は限定されておらずまた変換したい文字位置、数もその都度かわります。対象の文字をカーソルで選定した後、マクロを実行したいのですが方法がありますでしょうかよろしくお願いします。

補足日時:2003/08/09 10:28
    • good
    • 0

(1)シートにボタンを1つ貼りつけます。


(2)ボタンをダブルクリックして出てくる、VBE画面には
Private Sub CommandButton1_Click()
End Sub
が出てきます。
(3)下記の第2行目以下最後の行を除きコピーし、中間に貼りつけて、下記になるようにしてください。
Private Sub CommandButton1_Click()
Selection.ClearFormats
s = InputBox("第何文字目から、何文字")
p = Split(s, ",")
With Selection.Characters(p(0), p(1)).Font
.ColorIndex = 3
.Name = "HGSゴシックE"
.FontStyle = "エクストラボールド"
End With
End Sub
(4)操作
セルを選ぶ。
コマンドボタンをクリック。
セルの文字列の第何文字目から何文字フォントを変える
かを、3,3エンタのように入力
3文字目から3文字フォントが変ります。
文字色は質問に無いですが赤にしました。
書体もマクロの記録を取って、コピーして正確に貼りつけてください。スペースが半角であったりとミスが出やすいですから。
(5)InputBox文要求は無いに越したことは無いですが、数式バー上でしか文字列の一部を捉え(指定する)られず、捉えたStart,LengthはエクセルVBAでは変数に捉えられないと思います。
それで不本意ながら中途半端ですが、これが出来る回答が
出れば、私も勉強します。
APIなど使えば可能かなと思いますが、範囲を越えます。
    • good
    • 0

セル内の文字列をマウスで選択している状態ではマクロは動きません。


そもそも、都度文字列をマウスで選択するのであれば、ツールバーのボタンや書式設定で変更すればよいと思います。手間はほとんど変わらないですよ。

この回答への補足

ありがとうございます。おっしゃる通り現在はマウスで対象文字を選択し、ツールバーのフォントから設定していますが、プルダウンのなかのフォント種類が多く、探して決定する作業を短縮できればいいなと思ったので質問しました。ほかに方法が見つけられない場合は、プルダウンメニューの中の使用しないフォントを消して使用したいとおもいます。

補足日時:2003/08/09 14:23
    • good
    • 0

#2です。


標準に戻したくて下記1行を入れた積もりが、その後テストを続けると、Selection.ClearFormats は不適当(別機能)であることが判りました。
With Selection.Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 11
    .ColorIndex = xlAutomatic
End With
などのように、自分にとっての標準に戻す記述を入れるよりほかないようです。済みません訂正します。
セルの一部の文字の書体等が変えられないのはエクセル2000までであるのを見たような気がします。今は2002のパソコンが使えず、確認できないですが、気がかりです。
    • good
    • 0
この回答へのお礼

ありがとうございました。教えて頂いた内容がわたしには難しすぎて、まだ実行出来ないでいます。今後勉強してみます。#3の方の回答でフォントを元に戻す方法は、文字単位ではなくセル単位で行うことが出来ることがわかりましたのでそちらの方はマクロを作成しました。

お礼日時:2003/08/14 22:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!