A列に店名がならんでいます。
1鈴木商店
2山田商店
3田中呉服店
4山口飲食店
  ・
  ・
  ・
たとえば、
これの一文字の「店」のフォントだけを他のフォントに
一括で置き換えできませんか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

A列以外の適当なセルを選び、そのセルの書式(フォント)を変更したいフォントに設定してください。



上記のセルが選択された状態で、以下のマクロを実行してみてください。

作動する範囲はA1:A100になっています、実情に合わせて書き換えてください。

#このマクロでは、各セル中で変更できる文字は1つだけです。

Sub test()
 For Each c In Range("A1:A100") '←作動範囲
  p = InStr(c, "店")
  If p > 0 Then
   c.Characters(Start:=p, Length:=1).Font.Name = _
   ActiveCell.Font.Name
  End If
 Next
End Sub
    • good
    • 1
この回答へのお礼

どうも、ありがとうございました。
一文字だけでいいんです。
うまくいきました。

お礼日時:2003/07/12 20:00

#1です。


私の回答の主眼目はCharacters()の紹介にありましたが。
>フォントの種類を変えたいのです
エクセルVBAでフォントの種類を指定するのはFont.Name=です。
Cells(i, "A").Characters(p).Font.Name="○○"
を入れてください。
例えば・・・.Font.Name = "HG創英角ゴシックUB"のように。
だだフォントの種類を表す漢字カナ文字表現は、正確にはどういう文字綴りなのか、記述が難しいと個人的に思います。
そこであるセル内の文字全体を、ご希望のフォントに変更する操作をします。そのとき「マクロの記録」を使って、記録しておき、内容をツール-マクロ-マクロ-「編集」で見てFont.Name=を探し、=の右辺を見て、コピーし貼りつけして下さい。
    • good
    • 1
この回答へのお礼

sakenomoさんの方法で、うまくいきました。
imogasiさんの方法も、試してみます。
どうも、ありがとうございました。

お礼日時:2003/07/12 20:07

これは多分VBAでないと、出来ないでしょう。


VBAでは
Sub test01()
For i = 1 To 30
s = Cells(i, "A")
p = InStr(s, "店")
Cells(i, "A").Characters(p).Font.Size = 23
Cells(i, "A").Characters(p).Font.ColorIndex = 5
Next i
End Sub
上記はA列のセルの文字列を対象にしています。
C列ならA-->Cに変えること。
30行のセルを対象にしています。
第18行までならFor i = 1 To 30をFor i = 1 To 18
にします。
上記はフォントサイズと色を指定してます。
ColorIndex=●がどう言う色かは実際に入れて試してみるかColorIndexでWEB照会してください。
    • good
    • 1
この回答へのお礼

どうも、ありがとうございました。
しかしVBAが、いまいち理解できてないのです。
ただ、フォントサイズや色でなくて、
フォントの種類を変えたいのです。
使いたいフォント(フリーで、JISにない)が、
JISにないので、その文字だけを
他のフォントにかえたいのです。

お礼日時:2003/07/11 19:18

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルでセル内の一部分だけ書式ごと置換したい

エクセルの置換でオプションを使えば、書式も置換できますが、置換したい文字だけでなく、セル全体の書式が置換されてしまいます。
例えば「ロシアとアメリカ」とあるセルの、「アメリカ」を「中国」に置換して、「中国」の部分だけフォントをゴシックから明朝に変えたくても、セル全体が明朝になってしまいます。

今は、とりあえず「アメリカ」を「中国」に、オプションなしで一括変換して、ひとつずつ手動でフォントを変更していますが、大変な手間が掛かり、フォントの選択ミスなども起こります。

なにかいい方法はないでしょうか。
よろしくお願いします。

Aベストアンサー

こんにちは。Wendy02です。

>あとから「文字列一括置換」をやると、セルごとフォントが元に戻っちゃうのは、エクセルの仕様でしかたないですね。^^;

例えば、「アメリカ」を「中国」に換える場合を考えると、まず、「アメリカ」を「中国」に変更してから、「中国」セルの中の書式を換えるという仕組みになるわけです。それ自体の仕組みは、容易に想像できるかとは思います。つまり、このようにすれば可能です。


Sub ReplaceFormatInCells()
'セルの書式の一部を変更するマクロ
 Dim mWhat As String
 Dim mFadd As String
 Dim c As Range
 Dim mFind As String
  mFind = Application.InputBox("検索する単語を入れてください。", Type:=2)
  If mFind = "False" Or mFind = "" Then Exit Sub
  mWhat = Application.InputBox("置換する単語を入れてください。", Type:=2)
  If mWhat = "False" Or mWhat = "" Then Exit Sub
 
  ActiveSheet.UsedRange.Replace _
   What:=mFind, Replacement:=mWhat, _
   SearchOrder:=xlByRows, MatchCase:=True

'Sub ReplaceFromatInCells() ~ Set c = の7行分をこのように置き換えれば出来ます。

こんにちは。Wendy02です。

>あとから「文字列一括置換」をやると、セルごとフォントが元に戻っちゃうのは、エクセルの仕様でしかたないですね。^^;

例えば、「アメリカ」を「中国」に換える場合を考えると、まず、「アメリカ」を「中国」に変更してから、「中国」セルの中の書式を換えるという仕組みになるわけです。それ自体の仕組みは、容易に想像できるかとは思います。つまり、このようにすれば可能です。


Sub ReplaceFormatInCells()
'セルの書式の一部を変更するマクロ
 Dim mWhat As String...続きを読む

Qエクセル 置き換えをするとセル内のフォントサイズが

エクセルでフォントサイズがバラバラな文字列が入ってるセルで置き換えをすると
セル内のフォントサイズが統一されてしまいました

フォントサイズを統一させずに置き換えする事は可能でしょうか?

VBAとかマクロをつかわなければならない時はできれば使い方を詳しくおしえて頂きたいです。

Aベストアンサー

例えばいくつかのセルに出社時間とMSPゴシックでフォントサイズが11で入力されているものとフォントサイズが12で入力されているセルがあるとします。
出社時間とMSPゴシックでフォントサイズが11のセルのデータのみを退社時間に置き換えるとしたら「置換」を選択して検索する文字列に出社時間と入力した後で同じ画面の「オプション」をクリックします。
「検索する文字列と同じ行位置にある「書式」をクリックします。
「フォント」タブの「サイズ」の窓で11を選択しOKします。その後に置換後の文字列に退社時間と入力して「すべて置換」をクリックします。フォントサイズが11の出社時間のセルだけが退社時間に置き換わってフォントサイズが12の文字は置き換わりません。
フォントサイズが統一されてしまうといったことは起こりません。

Qセルの書式設定で一部のフォントサイズを変更したい

Excel 2010を使用しているのですが、「セルの書式設定」についてわからないことがあります。

「セルの書式設定」→「ユーザー定義」で「hh:mm "PDT"」という書式を作成したところ、「10:00 PDT」と表示されました。この「PDT」という文字の部分だけフォントを小さくしたいのですが、こういった設定は可能なのでしょうか?

なにか良いアイデアがありましたらご教授願います。

Aベストアンサー

こんにちは!
セルの表示形式の操作だけでは無理だと思います。

いくらセルの表示形式で「PDT」を表示させたとしても、実データは入力した時刻(時間)のシリアル値になりますので
一旦文字列にして「PDT」という文字を付け加えてやる必要があります。
ただ、セル内の文字全部のフォント変更であれば簡単ですが、部分的に変更となると
手作業で行うにしてもかなり手間がかかってしまいますね!

ただ、これでは何もお役に立てないのでVBAになってしまいますが、一例です。

A列に時刻(時間)を入力するとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてA列に入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim tmp
If Application.Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub
'↑ A:Aの部分は実際の表示したい列に!
Application.EnableEvents = False
With Target
If IsNumeric(.Value) Then
tmp = WorksheetFunction.Text(WorksheetFunction.Round(.Value, 5), "hh:mm")
.Value = tmp & "PDT"
.Characters(Start:=Len(tmp) + 1, Length:=3).Font.Size = 8 '←フォントサイズは「8」
End If
End With
Application.EnableEvents = True
End Sub 'この行まで

※ フォントサイズは「8」ポイントとしています。

※ 質問にあるように表示形式だけ変更するのであればA列に表示されているデータは数値ですので
計算に使用できますが、上記方法で表示されているデータは文字列になります。
すなわち計算できるデータではありませんので、
もし計算する必要がある場合は、「PDT」を隣のセル表示させたりする工夫が必要になると思います。m(_ _)m

こんにちは!
セルの表示形式の操作だけでは無理だと思います。

いくらセルの表示形式で「PDT」を表示させたとしても、実データは入力した時刻(時間)のシリアル値になりますので
一旦文字列にして「PDT」という文字を付け加えてやる必要があります。
ただ、セル内の文字全部のフォント変更であれば簡単ですが、部分的に変更となると
手作業で行うにしてもかなり手間がかかってしまいますね!

ただ、これでは何もお役に立てないのでVBAになってしまいますが、一例です。

A列に時刻(時間)を入力するとします...続きを読む

QエクセルVBAでセル内の特定文字列を太字に

エクセル2003です。
A2からA100の範囲のすべてのセルに文字列(文章)が入っています。
セルにより、約30~1200文字程度とばらばらです。
この範囲の各セルの文字列の中に、「愛、恋、幸福、love」という文字列があれば、その語句だけを太字にしたいのです。
(なければ、なにもしません。)
英字(love)は半角全角大文字小文字を問いません。
一応、ここまでは書いたのですが、検索するところでお手上げになってしまいました。
なにとぞ、お助けください。

Sub Test()
Dim myW
Dim i As Long
myW = Split("愛,恋,幸福,love", ",")
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
For n = LBound(myW) To UBound(myW)
MsgBox Cells(i, "A").Value & "に" & myW(n) & "があれば太字に" 'この肝心な部分がわかりません。
Next n
Next i
End Sub

エクセル2003です。
A2からA100の範囲のすべてのセルに文字列(文章)が入っています。
セルにより、約30~1200文字程度とばらばらです。
この範囲の各セルの文字列の中に、「愛、恋、幸福、love」という文字列があれば、その語句だけを太字にしたいのです。
(なければ、なにもしません。)
英字(love)は半角全角大文字小文字を問いません。
一応、ここまでは書いたのですが、検索するところでお手上げになってしまいました。
なにとぞ、お助けください。

Sub Test()
Dim myW
Dim i As Long
myW =...続きを読む

Aベストアンサー

一例です。

pos = InStr(1, Cells(i, "A"), myW(n), vbTextCompare)
Do While pos > 0
Cells(i, "A").Characters(pos, Len(myW(n))).Font.Bold = True
pos = InStr(pos + 1, Cells(i, "A"), myW(n), vbTextCompare)
Loop

QExcelで、Sheet内の文字フォントを一度に変換

タイトルどおりなのですが、
セル内に書かれている文字を、
MS Pゴシック => Tahoma フォントへ一度に
変更したいと考えております。

日本語はMS Pゴシックで、英数字はTahomaに
しようと思っています。

オートシェイブ内に書かれた文字フォントも
同時に変更したいのですが、それは可能ですか?
教えてください。

Aベストアンサー

セルとオブジェクトのフォント一括変換は2回に分けて行うしかないと思います。
(1)セルはシート先頭の空白の角セルで一括選択
(2)オブジェクトは編集→ジャンプ→セル選択でオブジェクトを一括選択

QExcel文字列中の太字(Bold)部分のみ文字色を一括して変換する方法

Excelで英単語リストを作成しています。
セルの中に文字列で例文を書いて、重要単語部分は太字(Bold)にしているのですが、
太字部分を白色に変更して練習帳を作成したいと考えています。

(変換前) Millions of people suffer from insomnia these day.
(変換前) Millions of people suffer from       these day.

  ※この場合、セル中で"insomunia"のみが太字になっています。

例文数が多い(1000以上)ので、一括で変換できる方法を探しています。

詳しい方がいらっしゃいましたら、是非御教授下さい。
よろしくお願い致します。

Aベストアンサー

太字の文字を「白色」にするのは簡単なのですが、問題は「太字だったところを太字ではなくした」場合の処理です。当然見える文字にしなくてはなりませんね。

太字の文字は「白色」にする。太字でなくて「白色」の文字は「黒(自動)」にする。はじめから「赤」や「青」の文字はそのままにするという考え方でよいですか?

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro5()
Dim rng As Range
Dim ptr As Long
 Application.ScreenUpdating = False
 For Each rng In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 3)
  For ptr = 1 To Len(rng.Value)
   If rng.Characters(ptr, 1).Font.Bold = True Then
    rng.Characters(ptr, 1).Font.ColorIndex = 2
   Else
    If rng.Characters(ptr, 1).Font.ColorIndex = 2 Then
     rng.Font.ColorIndex = xlAutomatic
    End If
   End If
  Next ptr
 Next rng
 Application.ScreenUpdating = True
End Sub

マクロの実行結果は元に戻せませんから、必ずファイルのコピーを取ってから実行してみてください

太字の文字を「白色」にするのは簡単なのですが、問題は「太字だったところを太字ではなくした」場合の処理です。当然見える文字にしなくてはなりませんね。

太字の文字は「白色」にする。太字でなくて「白色」の文字は「黒(自動)」にする。はじめから「赤」や「青」の文字はそのままにするという考え方でよいですか?

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はALT+F8でマクロ...続きを読む

Qエクセル関数について(フォントサイズ変更)

フォントサイズを10に設定していたとします。
セルに「ああ」文字を2文字入力した場合、フォントサイズは設定のままで、「あああ」と3文字入力した場合、フォントサイズを8にしたい時は、どのようにすればいいのでしょうか。

よろしくお願いします。

Aベストアンサー

こんにちは
御質問を言い換えると「セル幅は変えないでフォントサイズをセルにはいるようにしたい」ということですか?
もうしそうなら、設定したいセルを選んでメニュー「書式」-「セル」を選び、タブ「配置」の「文字の制御」の選択肢を「縮小して全体を表示する」にチェックすると文字が増えたとき、フォントの大きさがセル幅に合うようなサイズに変わっていきます。
外していたらごめんなさい。

QExcelで数式内の文字色を一部だけ変更したい

数式内の文字列の色を一部だけ変更したいのですが、どなたかご存知の方ご教授ください。

セルごと文字色を変更することは可能なのですが一部だけの変更ができません。

下記、例をあげます。
数式:="No"&A10&"を参照"
表示:No10を参照

上記のNo10の文字色を赤等に変更するにはどうしたらよろしいでしょうか。

Aベストアンサー

数式:="No"&A10&"を参照"
は一種の文字を結合する関数です。
私はいつも言っているのだが、関数(数式)は「値」だけを計算や加工したりするものです。元のセルの書式属性は引き継げません。
したがって「No}をセルに入れて、「赤色」に設定しても、あるセルの「10」の文字を赤くして、参照しても、文字の赤色属性は移りません。
ただあるセルの文字列の一部をの色を変えるのは、VBAで簡単にできます。
Sub test01()
For i = 1 To 5
s = 1
e = 2 + Len(Cells(i, "D"))
Cells(i, "G").Characters(s, e).Font.ColorIndex = 3
Next i
End Sub
D列にNoの数があるものとします。
G列に関数を入れているとします。
うまくいかなければ、G列をコピーし、値貼り付けして実行してみてください。

Qエクセルで特定文字列に色をつけたいです。

表中の特定の文字列(例「日本」)に色をつけて表示するようにしたいのですが、ひとつひとつ手で変えていくしかないのでしょうか。
よろしくお願いします。

Aベストアンサー

vba処理です

Sub test()
Dim rng As Range, r As Range, i As Long, colInd As Integer
With ActiveSheet
Set rng = .Range("a1:z100") '範囲の設定
txt = "日本" '文字の設定
colInd = 3 '色の設定
For Each r In rng
If InStr(r, txt) > 0 Then _
r.Characters(InStr(r, txt), Len(txt)) _
.Font.ColorIndex = colInd
Next
End With
End Sub

QExcel 特定の文字色だけを変更したい

Excel2000を使っています。

ある表を作成中、フォントを青文字と赤文字でリストを作っていました。
が、複数人数で作業をしていた為、フォントの「青文字」が「青」と「薄い青」で作成されてしまいました。

ところどころに「赤」のフォントもあります。
同じセル内での文字色は1色です。

リストの量が多いため、ひとつひとつセルをクリックして「薄い青」を「青」にしていくのが難儀です・・・
「薄い青」を「青」にどうにか簡単に変更できないものでしょうか?

と、この説明で伝わるでしょうか・・・。
知恵を貸して頂けたら、と思います。よろしくお願いします。

Aベストアンサー

>同じセル内での文字色は1色です。
ならまだ簡単です。以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro2()
Dim r As Range
For Each r In Cells.SpecialCells(xlCellTypeConstants, 3)
  If r.Font.ColorIndex = 41 Then
    r.Font.ColorIndex = 5
  End If
Next r
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報