• 締切済み

Symbolフォントのマクロ検索方法

WindowsXP Pro Word2003 Symbolフォントを使用して±などの記号を使用していたのですが TimesNewRomanに変更したいので、文書全体を選択後フォントをTimesNewRomanに 変更したところ、フォント名はTimesNewRomanに変更されましたが フォント自体はSymbolのままのチグハグ状態になってしまいました。 1つ1つ見ていけば直せるのですが量が多く大変なのでマクロを組んで 検索できないものかと思い調べてみましたが見つかりませんでした。 Wordのフォント検索ではSymbolは見つかりませんでした。(フォント名がTimesになっているので) If ActiveDocument.Range(文字の位置).Font.Name = "Symbol" then でもひっかかりませんでした。 Selection.InsertSymbol CharacterNumber:=177, Font:="Symbol", Unicode:=False これでSymbolフォントの文字挿入ができるので、逆に1文字ずつのCharacterNumberを 取得できればSymbolフォントかどうかを判断できるかなぁと思ったのですが、不可能でしょうか。 この様な状態でマクロでのSymbolフォントを検索できる方法はありませんでしょうか?

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

Symbolフォントでは、 Unicode:0x0020(基本ラテン) からと、 Unicode:0xF020(私用領域)からとに、 同じ絵文字が登録されているようです。 ここら辺の事情が何か悪さをしているのかもしれません。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

Sub test2()   Dim i As Long   Dim n As Long      Selection.HomeKey Unit:=wdLine   Selection.EndKey Unit:=wdLine, Extend:=wdExtend   n = Len(Selection.Text)   Selection.HomeKey Unit:=wdLine      For i = 1 To n     Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend     With Selection       .Font.Name = "Symbol" '---(1)       '.Font.Name = "Times New Roman" '---(2)       .MoveRight Unit:=wdCharacter, Count:=1     End With   Next i End Sub SymbolとTimes New Romanが混在するところで (2)の行をコメントアウトして上記マクロを試してみました。 Times New RomanのところがSymbolに変更されました。 フォントタブでもSymbolと表示されます。 次に、(1)の行をコメントアウトして上記マクロを試してみました。 Times New RomanがSymbolに変更された箇所のみTimes New Romanに変更されるようです。 しかし、何度か繰り返すと違った結果になります。難しいです。よく分かりません。 因みに、手動で行った場合は、両者とも変化がありません。 >↑文字コードで条件判断してみるとSymbolが見つかったのですが、 >Symbolだけでなく "(" もひっかかってきていまいちです。 文字コードで検索する場合は、フォントに係わらず検索にかかるのが正常だと思います。 文字コードが同じで、フォントによって表示される形が変えられているだけですから。

tf2tdu
質問者

お礼

ご回答ありがとうございます。 Times から Symbol へのフォント変換は正常に行われるのですが、 逆の Symbol から Times へのフォント変換はできないようです。 これは手動でもマクロでも同様だと思います。 >文字コードで検索する場合は、フォントに係わらず検索にかかるのが正常だと思います。 >文字コードが同じで、フォントによって表示される形が変えられているだけですから。 おっしゃる通りなのですが、Symbolフォントのみ事情が違うようですね。 Symbol以外はフォントの変更が自由にできるのですが、 Symbolにフォントに変更するとフォントだけでなく文字コードまでも 変更されてしまっているようです。ですので元に戻そうとして、 Symbol から Times にフォントを変更しようとしても文字コードが Symbol 用になってしまっているので正常な Times には戻らないのだと思います。 フォントや文字コード以外でSymbolを検索する方法があればよいのですが。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

試しに「マクロの記録」でコードを得てマクロを組んでみました。 取りあえず、1行のみです。 Sub test1()   Dim i As Long   Dim n As Long      Selection.HomeKey Unit:=wdLine   Selection.EndKey Unit:=wdLine, Extend:=wdExtend   n = Len(Selection.Text)   Selection.HomeKey Unit:=wdLine      For i = 1 To n     Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend     With Selection       If .Font.Name = "Symbol" Then         .Font.Name = "Times New Roman"       End If       .MoveRight Unit:=wdCharacter, Count:=1     End With   Next i End Sub >フォント名はTimesNewRomanに変更されましたが >フォント自体はSymbolのままのチグハグ状態 で使えるかどうかは分かりません。

tf2tdu
質問者

お礼

ありがとうございます 質問でも書いたとおり、フォント自体はSymbolでも、Wordが認識しているフォント名はTimesに なってしまっているので検索ではひっかかってきませんし、置換もできません。 ですのでご回答頂いたマクロでも同様に変換されません。 私の説明不足と思いますので再度状況を書かせていただきます。 (1)英文はTimesNewRomanで、±などの記号はSymbolフォントで文書作成  (記号の入力は[挿入]-[記号と特殊文字]でSymbolを選択) (2)記号もTimesNewRomanにしたいので文書全体を選択[Ctrl+a]後、フォントをTimesに変更して保存  (この時点で問題発生、チグハグ状態、Wordのバグ?) (3)Symbolフォントを置換したいが、検索してもひっかかってこない Wordの文書を見る限り全ての文字がTimesになっていても PDF化するとSymbolフォントが入っておりそこで気付きました。 理由はフォント名がTimesでも、±など記号自体の書体はSymbolでした。 フォントサイズを大きくすると違いがよくわかります。 If Str(Asc(ActiveDocument.Range(r_p, r_p + 1))) = 40 Then ↑文字コードで条件判断してみるとSymbolが見つかったのですが、 Symbolだけでなく "(" もひっかかってきていまいちです。 (本来は "(" が正常な 文字コード= 40 なのですが・・・)

noname#99913
noname#99913
回答No.1

 ワードは書式の置換ができます。置換タブの「オプション」をクリックすると、「書式」ボタンが出てきます。  また、Symbolは英数字用のフォントですが、日本語用のフォントで探していないでしょうか。

tf2tdu
質問者

お礼

ご回答ありがとうございます。 >ワードは書式の置換ができます。 質問でも書いたとおり、フォント自体はSymbolでも、Wordが認識しているフォント名はTimesになってしまっているので検索ではひっかかってきませんし、置換もできません。 >日本語用のフォントで探していないでしょうか。 英数字用のフォントで検索しました。

関連するQ&A

  • マクロ(VBA)でSymbolフォントを挿入したいです

    Sub μ() '' Selection.InsertSymbol Font:="Symbol", CharacterNumber:=-3987, Unicode:= _ True End Sub 上記マクロでSymbolフォントをWordに入力しようとしています. マクロで入力したフォントを選択すると, Wordの「書式設定」ツールバーでは,スタイルに規定されているフォント (スタイルで「Century」の場合は「Century」)になっていますが, PDFに変換し,TouchUPテキストツールでフォントを確認すると, 上記マクロで入力した「Symbol」になっていました. 上記マクロで入力したフォントをスタイルを変更することなく, Wordの「書式設定」ツールバーでも「Symbol」と表示されるようにできないでしょうか?

  • 検索のマクロの作成

    記号入力のツールバー(マクロ)があります。 そのツールバーから入力していない同じ記号 (例:MSゴシックで入力されている)文字を 検索するマクロを作成したいのですが 、どうしたらいいのですか。 ツールバーに登録されているマクロ↓ 以下のマクロでTimesNewRomanの%が入力できます。 Sub enpercent() Selection.InsertSymbol CharacterNumber:=37, Font:="TimesNewRoman", Unicode:=True, Bias:=0 End Sub

  • 2バイト文字を検出するマクロってありませんか?

    会社で海外用のWORD文書を作るのですが、 2バイト文字は使わないようにするのが一般的ですよね。 でも2バイト文字チェックマクロで、以前から持っていたマクロでは引っかかり、新しく配布された方では引っかからない文字があって、 どちらが正解なのか判断に困りました。 TimesNewRoman の特殊文字「×」は、2バイトみたいですね。 主にTimesNewRomanとSymbolフォントを使うのですが、 両方とも英語フォントだから2バイト文字は通常ない気がするのに、 あるものなんですね? その文字が2バイトなのか、1バイトなのか、 すぐにわかる方法ありませんか? また、WORDの文書で使うマクロ、どこかで配布されてませんか?

  • wordマクロで検索⇒フォント変更したいが、結果がとびとびになります。

    MSwordのマクロについてです。マクロはど素人です。 「数式に使うa,b,n,p,q,r,t,u,v,w,x,y,zの文字を検索して、CMUserifというフォントに変え、サイズを2pt大きくする」 つもりで、以下のマクロを見よう見まねで作って実行したところ、うまく変更される文字とされない文字が混在してしまいます。 これはどのような理由によるもので、また、どのようにマクロを訂正すればよいのでしょうか。 --- Sub 数式用フォントに変更() Selection.StartOf wdStory With Selection.Find Do While .Execute(FindText:=\"[a-bn-np-rt-z]\", Forward:=True, Format:=False, MatchWildcards:=True, MatchSoundsLike:=False) = True With Selection Selection.Find.Execute Selection.Font.Name = \"CMU Serif\" Selection.Font.Size = Selection.Font.Size + 2 Selection.Find.ClearFormatting End With Loop End With End

  • Windows7, MSWord2007 でマクロを使用しています。以

    Windows7, MSWord2007 でマクロを使用しています。以前うまく行っていたのに今日はエラーで止まります。 記入した文字を日本字はMS明朝10.5PT, 半角アルファベットはTimesNewRomanPT12 に統一するマクロです。 [検索する文字列]に指定したパターンマッチングが正しくありません、と表示されます。 他人からいただいたマクロなので自分で直せません。ご援助いただければと存じます。 止まった行: .Execute Replace:=wdReplaceAll マクロ全文: Sub SelectedFontChangedMSMincho10_5TimesNewRoman12() Dim myRng As Range With ActiveDocument Set myRng = .Range(Selection.Range.Start, .Range.End) End With With myRng.Font .NameFarEast = "MS 明朝" .NameAscii = "Times New Roman" .NameOther = "Times New Roman" .Size = 10.5 End With With myRng.Find .ClearFormatting .Text = "[0-9A-Za-z,.\\\!\?""'/$\%\&\#\(\)\=\-\+\<\>]{1,}" '半角スペース~チルダ .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .MatchFuzzy = False With .Replacement .ClearFormatting .Text = "" .Font.Size = 12 End With .Execute Replace:=wdReplaceAll End With End Sub

  • ギリシャ文字 μ 入力 win10word2016

    μ を入力してunicode を調べると、フォントがTimes New Roman の場合U+03BCとなっています。 別の入力法があります。m(Times New Roman)を入力し、フォントをSymbol に変換しても、μ が出てくるのです。この時にunicode を調べると U+ F06D となっています。何故一つの文字に 二つのコードが与えられているのでしょう。フォントにより異なるのも困りますね。 OKWAVE の画面ではSymbol は使えないのでこの様な現象は起こりません。 変な質問ですが、お分かりいただけたでしょうか。

  • ワードで自作フォントが変更できない

    TrueTypeフォントファイル(*.ttf)を作るフリーソースを 自分に合うよう修正して、*.ttfを作りましたが ワードで、文字選択して、自作フォントに変更すると 漢字だけ変更できません。 ASCIIやひらがな・カタカナは変更できます。  できない文字:[仝]と[亜]以降の漢字  できる文字 :上記以外 <その他の現象>  ・ワードで、先に自作フォントに設定しておいて   漢字入力するとちゃんと自作フォントで表示できる  ・ワードパットで自作フォントの漢字をワードに   コピペすると、自作フォントでコピーされる  ・ワードパットや秀丸だと、全部自作フォントに変換できる  ・IMEの文字一覧では、全部自作フォントで表示される <環境>  WindowsXP PE  OfficeXP 仝(unicode=0x4edd)と亜(unicode=0x4e9c)なので ワードが文字のUnicodeを見て変更しないようにしている ような気がします。 *.ttfの中をいじれますので 何かご存知の方いらしたら、お教え下さい。

  • 【マクロ】ワードアートの文字の輪郭を消す

    excel 2010です。 ワードアートの文字の輪郭を消すマクロを作りたいのですが、 マクロの記憶で、作られた以下のコードでは、消えません。 どうすれば、消せますか。 よろしくお願いします。 Sub Macro() ActiveSheet.Shapes.AddTextEffect(msoTextEffect1,"ABC","Times New Roman",128,False,False,0,0).Select Selection.ShapeRange.TextFrame2.TextRange.Font.Line.Visible = msoFalse End Sub

  • フォントが変わりません!

    ワードでフォントをMS明朝から「Century」に切り替えても、文字を打ち込んだ瞬間にMS明朝に戻ってしまいCenturyで文字が打てません。 先に別のフォント(MS明朝など)で打ち込んでおいて反転表示させてフォントを変更してもやはりCenturyになりません。 なぜなのでしょうか。 色々と試してみたのですが他のフォントには変えることが出来ます。 しかしCenturyとTimes New Romanというフォントは使うことができません。 今まで使うことが出来ていたので理由がわかりません。 よろしくお願いします。

  • イラレでsymbolを斜体にするにはどうしたら良いですか?

    イラレでsymbolを斜体にするにはどうしたら良いですか? イラレCS2、WinXP sp2を使っております。 数式は基本的にsymbolフォントで斜体フォントにする必要があります。 しかしながら、イラレだとsymbolフォントでは斜体フォントを選ぶことが出来ません。 検索してみると、 ・シアーを使って斜めにする ・ギリシア文字を選択する ・symbol-obliqueフォントを使う と斜体に出来るということが分かりました。 シアーを使って斜めにする方法ですが、なぜか私の環境では斜体になりません。 ギリシア文字を選択する方法ですが、「書式>字形」にあるそうなのですが、 これも私の環境では見あたりません。 symbol-obliqueフォントを使う方法ですが、 検索しても見つからないのですが・・・ どなたか良い方法がありましたら教えて頂けますでしょうか?

専門家に質問してみよう