「夫を成功」へ導く妻の秘訣 座談会

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

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

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

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

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

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

A 回答 (1件)

太字の文字を「白色」にするのは簡単なのですが、問題は「太字だったところを太字ではなくした」場合の処理です。

当然見える文字にしなくてはなりませんね。

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

以下のマクロを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

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

質問が曖昧だったかも知れませんが、ご丁寧にありがとうございます。
ご提案の方法で問題ありませんでした!早速のご回答に大変感謝致しております。ありがとうございました!!

お礼日時:2007/05/01 22:25

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

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

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

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

このQ&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関数式の一部を太字にする

concatenateを使い、excelで作った文章に今日の日付を入れることに成功しました。しかし、その今日の日付を太字と下線を使い強調したいと思います。エクセルの関数はいろいろみてみたのですが、関数の式として太字にしたり下線を引いたりすることは難しいようです。以前spellnumberを作った時はVBAの完成した式をコピペして、新しい関数を作るようにできたのですが、そのように関数として太字や下線を入れるようにできることはできないでしょうか?もしよいサイトがありましたら、よろしくお願いいたします。

Aベストアンサー

関数の計算結果として表示されている内容の一部に,書式(下線・太字・斜体・フォントの色種類大きさ等)を施す方法自体がありません。従って,そういうことができる関数もありません。

書式を施したいのでしたら,レイアウトに多少無理が生じても「前後の文字列のセル」「関数で日付等を表示させるセル」を分けて並べ,書式を施したい数式セルに書式を施しておくような見せ方になります。




#マクロが使えるのなら,結合した文字列をマクロで生成してセルに投入させ,さらにその言葉の一部分に書式を施すような仕込みをすれば,もちろん結果は出せます。
 今回ご質問は「関数でできるか」でしたので詳細は触れませんが,もしどうしてもというのでしたら詳しい状況を添え新たなマクロのご質問として,別途ご相談を投稿なさってみてはいかがでしょう。

QVBAでセル内の指定した文字を太字にしたい

例) a を太字にしたい。
  A  
1 abcd
2 abad
3 cbda
4 bcad

エクセルVBAで、セル内の指定文字を一括で太字にしたいのですが、可能でしょうか?
例ですと a を太字にしたいのですが a の位置は決まっておりません。
位置が指定できれば可能ですが、指定できない場合はどのようにすればよろしいでしょうか?

どなたかご存知の方、ご教授願います。

Aベストアンサー

↓と全く同じ方法でいけると思います。

http://security.okwave.jp/qa4667858.html?ans_count_asc=20

QEXCEL セル内の一部文字色を太字にしたい。

EXCEL2003を使用しています。
アンケートの集計を行っています。
C・D・E列にコメントが入力されています。
その列それぞれのセル内の一部が、赤・青・緑と色分けされているので、その色の付いた文字を太字に変えたいのですが、どうしたらいいのでしょうか?
使用している色は、黒・赤・青・緑です。
VBAで変えられそうですが、全くわかりませんので、ご回答の程、どうぞよろしくお願いいたします。
また、色の数値の出し方も併せて教えてください。

Aベストアンサー

No4 の訂正です
> ? Activecell.Font.ColorIndex

? Activecell.Font.Color
に修正してください。

Qセルの一部のフォントの置き換え可能ですか?エクセル2000

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

よろしくお願いします。

Aベストアンサー

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

Qエクセル2002のVBAで太文字を検索したいのですが、

エクセル2002のVBAで太文字を検索したいのですが、

<状況>
B列にチェックしたい文字が入力されています
<やりたいこと>
B列に入力されている文字の中から、太文字のみを抜き出して、
太字の見つかった行のG列に太文字のみを抜き出して複写したい

<自作マクロの現状>
セル全体の太文字検索は下記のマクロ「太字検索チェック1」で完成しましたが、
セルに記載してある文字の中で「一部は普通文字、のこり一部は太文字」と混在
しているセルの中身から太文字部分のみを別のセルに抜き出したいのですが、
そのマクロを「太字検索チェック2」のように書きました。

しかし「太字検索チェック2」の「 If dat.Font.Bold = True Then」の部分で
「型が違う・・・」のエラーで先に進みません。

どなたか、セルの中身の太文字のみを抜き出すマクロを教えてください
よろしくお願いします


 
Sub 太字検索チェック1()

i = 3

Worksheets("テスト").Activate

For Each myRng In Range("B:B")

セル = "b" & i

If Range(セル).Font.Bold = True Then
Cells(i, 7) = Cells(i, 2) ’太字のCells(i, 2)を Cells(i, 7) にコピー
End If

i = i + 1

If i = 1703 Then ’1703番地で終了
Exit For
End If

Next

End Sub

Sub 太字検索チェック2()

i = 3
Worksheets("テスト").Activate

For Each myRng In Range("B:B")

内容 = Cells(i, 2)
文字数 = Len(内容)

For p = 1 To 文字数
dat = Mid(内容, p, 1)
      X=8+P

If dat.Font.Bold = True Then  ’1文字づつ太字を検索
Cells(i, X) = dat        ’太字なら→Cells(i, X) にコピー
End If

Next

i = i + 1

If i = 1703 Then
Exit For
End If

Next

End Sub

エクセル2002のVBAで太文字を検索したいのですが、

<状況>
B列にチェックしたい文字が入力されています
<やりたいこと>
B列に入力されている文字の中から、太文字のみを抜き出して、
太字の見つかった行のG列に太文字のみを抜き出して複写したい

<自作マクロの現状>
セル全体の太文字検索は下記のマクロ「太字検索チェック1」で完成しましたが、
セルに記載してある文字の中で「一部は普通文字、のこり一部は太文字」と混在
しているセルの中身から太文字部分のみを別のセルに抜き出したいのですが、
...続きを読む

Aベストアンサー

For P = 1 To 文字数
X = 8 + P
If Cells(i, 2).Characters(P, 1).Font.Bold = True Then
Cells(i, X) = Cells(i, 2).Characters(P, 1).Text
End If
Next

に変更してください。

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

QExcel2007で、太字にした行のみをソートすることはできるのでしょ

Excel2007で、太字にした行のみをソートすることはできるのでしょうか。
たとえば、

行1 AAA
行2 BBB
行3 CCC
行4 DDD

と入力したシートがあり、行2と行4だけ行全体を太字に設定したとします。
このとき、これらの太字にした行2と4だけを表示させるような、つまり「太字にした行だけでソートする」、ということは可能でしょうか。どなたかご存知でしたらご教示ください。


よろしくお願いします。

Aベストアンサー

#2の回答者です。

Macro関数を使ってみて気がついたことですが、値貼り付けしたり、もともとの名前-定義自体を削除しないと、標準的なマクロなしのブックでは、そのままでは保存できませんでした。

マクロ自体を否定したり、それは除外するという考えの方もいらっしゃるだろうと思います。そこで、太字の代わりにセルの塗りつぶしをして、[色フィルタ]で行ってみたらいかがでしょうか。

最初に太字の部分のフィールドを選択(重要)してから、
[検索と選択]--[置換]--[オプション]
検索する文字列--書式--太字
置換後の文字列--書式--太字 + 塗りつぶし(任意で)

そこで、[並べ替えとフィルタ]-[フィルタ]
後は、ドロップダウンをクリックして、[色フィルタ]で、色を選択します。

マクロを使って、マクロなしブックで保存する方法もあるのですが、それでは、本格的なマクロになってしまいますので、それは、今回の目的とは違うだろうと思います。

Qエクセルで特定の文字(複数あり)をハイライトしたい

エクセルで、一定の範囲(D2:D900)にある特定の文字だけをハイライト(青)に変えたいのですが、
可能でしょうか?

特定の文字は5つほどあります。
・従業員
・人手
・人
・女
・スタッフ

よろしくお願いいたします!

Aベストアンサー

文字列だけとなるとマクロ(VBA)ですね。
一例です。
対象シートのシートタブ上で右クリック→コードの表示→サンプルコード貼り付け→シート上でAlt+F8キー押下、sample実行

Sub sample()
Dim re, mc, m, r As Range, endp As String
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.Pattern = "従業員|人手|人|女|スタッフ"
Set r = Range("D2:D900").Find("*")
If r Is Nothing Then End
endp = r.Address
Do
Set mc = re.Execute(r)
For Each m In mc
r.Characters _
(m.FirstIndex + 1, m.Length).Font.ColorIndex = 8
Next
Set r = Range("d2:d900").FindNext(r)
Loop Until r.Address = endp
Set re = Nothing
End Sub

文字列だけとなるとマクロ(VBA)ですね。
一例です。
対象シートのシートタブ上で右クリック→コードの表示→サンプルコード貼り付け→シート上でAlt+F8キー押下、sample実行

Sub sample()
Dim re, mc, m, r As Range, endp As String
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.Pattern = "従業員|人手|人|女|スタッフ"
Set r = Range("D2:D900").Find("*")
If r Is Nothing Then End
endp = r.Address
Do
Set mc = re.Execute(r)
For Each m In mc
r.Characters _
(m.FirstIndex + 1...続きを読む

QExcel セル内の特定の文字だけ自動で色を変えたい

3月13日(土)

と一つのセルにと入れた場合、土曜のときは「土」だけ青、日曜のときは「日」だけ赤というような設定はできますか?
条件書式だとセル内のすべての文字の色が変わってしまいますよね。
VBAを使わず、条件書式のような設定だけで行う方法はないでしょうか?

Excelのバージョンは2003と2007で考えています。

Aベストアンサー

残念ながら、セルに入力した一部のフォント色を自動的に変更するようなことはできません。


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

人気Q&Aランキング