• ベストアンサー

《エクセル2000》特定の文字のみ表示させたくない

皆様こんにちは。 個々のセルに、文字列扱いで ・・1・・・ ・・・2・・ 3・・・・・ など、ランダムな順番で中点と数字が入っています。 この点の表示を消して、数字のみ表記させるにはどうしたらいいでしょうか。 (検索-置換えで消す、という方法ではなく、あくまで表示上消したいということです)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

No4,6,8です。 「キャラクタークラスのカウントプロパティを取得できません」の原因がわかりました。ちょっと修正してみました。これで試してみてください。範囲はEH4:EH481のみ限定です。 Sub TEST_IRO() For Each c In ActiveSheet.Range("EH4:EH481") If IsNumeric(c) = False Then With c xc = Len(c) For n = 1 To xc If .Characters(n, 1).Text = "・" Then .Characters(n, 1).Font.ColorIndex = 2 Next n End With End If Next c End Sub なお・が半角の場合は= "・" Then の中点も半角にしてください。

bari_saku
質問者

お礼

shishishishiさん、こんにちは。 こちらの方法で、何とかうまくいきました! 何度も何度も書き込みを頂きまして、感謝の言葉もありません。本当にありがとうございました!

その他の回答 (8)

回答No.8

No4&6です。 わたしがNo6で書いたVBAおよび、bari_sakuさんが、No5の補足で書いたVBAの両方をコピペして試しましたが、ちゃんと中点は白色に変わりました。機種依存文字も試しましたが問題ありませんでした。 確認ですが中点は全角ですよね?半角だとだめですよ。 半角の場合は= "・" Then の中点も半角にしてください。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

#5です。旨く行かないとのことですが、原因がわかりません。 (1)判別しているのはは、中点をIfで聞いているだけです。 エクセルの空きセルで、=CODE(MID(EH4,4,1))など中点をめがけてやって見てください。4を適当に変える。 8486になりますか。(中点を疑う) 私の場合1・・・の場合も・・・は見え無くなりましたが。 (2)機種依存文字があるとしても、比較には使っていないので、影響はないと思いますが。 文字の切りだしMid(Cells(j, "EH"), i, 1)が、まさかそのため(機種依存文字があるため)旨く行かないとは思いませんが For i = 1 To Len(Cells(5, "EH")) Msgbox mid(cells(5,"EH"),i,1) next i を実行しておかしい点が無いか、確認して見てください。 機種依存文字の実例が当方再現できなくてテストできてません。

bari_saku
質問者

お礼

こんにちは。 どうもうまくいかないので、試しにセルの内容を「値でコピー」し、別の場所でやってみたところ、うまくいきました。 元々のセルに、何か余計なものが入っていたのでしょうか…今の私のレベルでは、原因はよくわからないのですが。 お陰様で助かりました。度重なる回答、本当にありがとうございました。

回答No.6

No4です。 そうですか。なぜだろう?こちらではうまくいったのですが。(同じくエクセル2000です。) ではこれに変えてみるか、No5さんのでやってみてください。 Sub TEST_IRO() For Each c In ActiveSheet.UsedRange If c <> "" Then With c xc = Len(c) For n = 1 To xc If .Characters(n, 1).Text = "・" Then .Characters(n, 1).Font.ColorIndex = 2 Next n End With End If Next c End Sub

bari_saku
質問者

補足

すみません、きっと私の所でうまくいかなかった原因は、No.4さんの所にも書いた通り、普通の数字ではなく丸つき数字を使っているからなのだと思います。 やはり丸つきですと難しいですか?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

A列A1:A20のセルの中点を、白色にするVBA Sub test02() For j = 1 To 20 For i = 1 To Len(Cells(j, "A")) If Mid(Cells(j, "A"), i, 1) = "・" Then Cells(j, "A").Characters(i, 1).Font.ColorIndex = 2 End If Next i Next j End Sub #4ご解説の標準モジュールに貼りつけ、実行して見て下さい。例えばC列を対象にするなら、上記"A"のところを"C"に変えてください。 元の黒に戻すならColorIndex=1にすること。

bari_saku
質問者

補足

こんにちは。 変えたい列はEH4からEH481までなので、次のように変えてみました。 Sub test02() For j = 4 To 481 For i = 1 To Len(Cells(j, "EH")) If Mid(Cells(j, "EH"), i, 1) = "・" Then Cells(j, "EH").Characters(i, 1).Font.ColorIndex = 2 End If Next i Next j End Sub こちらのやり方だと途中で止まらないのですが、なぜか 1・・・・・・ と入っているものは変化がなく、それ以外のものは全部消えてしまいます。 それですいません、とても重要な事を書き忘れてしまいました。 今回使っている数字なのですが、ただの数字ではなく、丸つき数字なのです。 機種依存になってしまうので、投稿に際しては使わなかった事を書き添えるのを失念していたものです。 やはり文字列になってしまうと、難しいでしょうか…

回答No.4

No1&3です。 VBAは初めてですか。それじゃ今回試しにやってみましょう。 失敗するといけないから最初にちゃんとバックアップを取っておいてくださいね。 1.Altキー + F11キー または、[ツール] メニューの [マクロ] をポイントし、  Visual Basic Editorをクリックします。 2.Visual Basic Editor ウィンドウのメニューから、  [挿入]→[標準モジュール] をクリックします。 3.表示されたコードウィンドウ(白い部分)に先ほどのマクロコードをそのままコピペします。 (SubからEnd Subまで) 4.ワークシートに戻り、[ツール] メニューの [マクロ] →「マクロ」で今貼り付けたマクロ名(TEST_IRO)を選択して、実行。 これでめでたく色が変わったらおめでとう!

bari_saku
質問者

補足

こんにちは、試してみました。 が、「キャラクタークラスのカウントプロパティを取得できません」と出て途中で止まってしまいます…

回答No.3

No1です。 いちいち、文字を選択して色を白に変えるのも大変でしょうから(数が多いと)、VBAで自動的に出来るように作ってみました。 これでお試しください。 VBAの使用法が不明の場合は補足してください。 Sub TEST_IRO() For Each c In ActiveSheet.UsedRange If c <> "" Then c.Activate With c xc = .Characters.Count For n = 1 To xc If .Characters(n, 1).Text = "・" Then .Characters(n, 1).Font.ColorIndex = 2 Next n End With End If Next c End Sub No2のk0000さん、 セルの条件付書式って文字単位での色の設定できましたっけ?(やったことないけど)

bari_saku
質問者

補足

こんにちは。 すいません…VBAはやったことがないので、ここからどうしたらいいか全然分かりません…ごめんなさい。

  • k0000
  • ベストアンサー率37% (9/24)
回答No.2

1.文字が入っているすべてのセルを選択 2.書式→条件付書式で「・」と等しいときに文字色を白色にする という設定をしてはいかがでしょうか?

bari_saku
質問者

お礼

こんにちは。 条件付き書式は真っ先に試してみたのですが、今回の場合は中点と数字が混在しているので、ちょっと無理のようです。 でも、書き込みありがとうございました。

回答No.1

・・1・・・ の「・・」と「・・・」 を、フォントの色を白に設定したらどうでしょう?

関連するQ&A