• ベストアンサー

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

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

  • ashtk
  • お礼率41% (10/24)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >Wordの「書式設定」ツールバーでも「Symbol」と表示されるようにできないでしょうか? Wordの「書式設定」は、Document に対する書式命令のことであって、その後に影響を受けるものです。言い換えると「書式設定」は個々のフォントの種類のことではありません。WordのDocument の構造は二重になっていて、Range の書式と、個々のCharacter のフォントとは別になっています。ただ、Character オブジェクトの中には、その命令が見つかりませんでした。調べてみると、過去には、そのような機能が、Word Macro(非VBA) には、あったような雰囲気があります。今は、Selection.Font.Name であっても、これでは機能を果たしません。 Wordの標準的な機能の中にも、そういうものがありません。一体、どんなフォントで入れたのか、Acrobat の「TouchUPテキストツール」のような機能があればよいのですが、例えば、Symbol のμと、MSゴシックというか、JIS標準のμ の違いは、表示上からの違いはほとんどありません。 他人が書かれたものの文字種は知りたいとは思うこともありますが、知っている範囲でしか、フォントは分かりません。それが、分かる人しか分からないフォント名というのは、不便だといえば、確かに、そうだと思います。

ashtk
質問者

お礼

仕事上,どうしても使用しているフォントをきちんと把握したかったのですが,Wordでは無理なのですね. Acrobatを使い,PDF化してからCKしていこうと思います. 有難うございました.

その他の回答 (1)

回答No.1

質問にあるマクロを実行した場合は、挿入先のスタイルが適用されます ので、[英数字用フォント]に[ Symbol ]を適用させたスタイルをマクロ を実行して挿入した記号に設定されるようにしないと駄目だと思います。 マクロについては未熟なので簡単なアドバイスだけです。 まずは、[文字スタイル]として[英数字用フォント]に[ Symbol ]を指定 したものを用意しておきます。(スタイル名「シンボル」) Selection.Style = ActiveDocument.Styles("シンボル") このようなスタイルを適用するマクロを組み込んで、フォントをSymbol になるようにしてください。

ashtk
質問者

お礼

なるほど,スタイルを規定しないとだめなのですね. 有難うございます!!

関連するQ&A

  • 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フォントを検索できる方法はありませんでしょうか?

  • 検索のマクロの作成

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

  • Word VBAについて

    Word2003の勉強をしています VBAについてお尋ねします VBAの知識が乏しいのでマクロを作ってみてそれが実際どういうように書かれているんだろうか?と思い[マクロ]→[マクロ]の編集画面からVBEを起動させています VBAでフォントを変更したいときはどっちを変更したらよいのでしょうか? なぜ「日本語用のフォント」と「英数字用のフォント」が設定されているらしきところが2箇所あるのでしょうか? これらは何がちがうのでしょうか? てっきり[書式]→[フォント]ダイアログの内容がすべて書かれているんだと思っていたんですが・・・違うのでしょうか? With Selection.Font .NameFarEast = "MS 明朝"   ←(日フォント? .NameAscii= "Century" ←(英フォント? .NameOther = "Century" ← (・・英フォント? .Name = "MS 明朝"       ←(・・日フォント?? 質問攻めですみません どなたか教えていただけると助かります どうぞよろしくお願いいたします

  • エクセル。マクロの記録で出来たVBAを書き直したい。

    エクセル2000(OSはWindows2000)でマクロの記録を行いました。 四角形を出してA1セルにリンクさせフォント等の設定をしたものです。 Sub Macro5() ActiveSheet.Shapes.AddShape(msoShapeRectangle, 200#, 100#, 140#, 80#). _ Select ExecuteExcel4Macro "FORMULA(""=R1C1"")" With Selection.Font .Name = "Century Gothic" .FontStyle = "太字" .Size = 72 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoFalse End Sub これを、実際には四角形をセレクトしないで実行させたいのです。 With ActiveSheet.Shapes.AddShape~ End With といった形になるのでしょうが、どうもうまく出来ません。 ご教示いただければ幸いです。

  • Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、

    Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、どうも上手くいきません。 1列おき(C列、E列、G列・・・)に条件付き書式を設定し、 条件は、 ・セルの値が”0”より大きい場合はフォント”赤”で表示。 ・セルの値が”0”より小さい場合はフォント”緑”で表示。 としたいと思いマクロを組んでみました。 Sub Color() Dim j, j0 Dim x Worksheets("sheet1").Active Application.ScreenUpdating = False j0 = 3 j = 300 For x = 3 To 100 Step 2 Range(.Cells(j0, x), .Cells(j, x)).Select Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 Next Application.ScreenUpdating = True End Sub デバックでステップインしていくと、ここで実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです。がでます。 Selection.FormatConditions(1).Font.ColorIndex = 3 -------------------------------------------------------------------------------------- Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 -------------------------------------------------------------------------------------- この間は、マクロの自動記録で書かれてるので間違ってはいないハズなのですが、、、 お知恵を下さい。 よろしくお願いします。

  • WORD2013のフォント指定について

    WORD2013のページ設定で、日本語フォントを明朝、英語フォントをCenturyに設定して、文字入力すると、英語フォントが明朝で書かれてしまい、いちいちCenturyに変える必要が出て困っています。 何か設定がおかしいのでしょうか?何かの拍子にちゃんとCenturyで書かれることもあるのですが。 WORD2003の頃はそんなことはなかったのですが・・・

  • エクセルのマクロ

    Sub test() Dim x As Range  For Each x In Selection    If x.Value <> "●" And Selection.Font.ColorIndex = 0 Then    x.Value = "○"  End If Next End Sub 上記は、選択されているセルのフォントが黒でかつ"●"が入力されていない場合は"○"を入力する、というマクロですがうまく動作しません。どうすれば正常に動作するようになるでしょうか?

  • Word2007マクロ

    宜しくお願い致します Word2007でこんな事が出来ますか Excel2007で線路を作るマクロを作成しました(本を見て) これをWordでも使用したいのですが、Excelのマクロそのまま WordのVisual Basicに書き込んでもエラーが出て機能しません Excelのマクロは以下です Sub 線路作成() 上端位置 = Selection.Top 左端位置 = Selection.Left  Selection.ShapeRange.Line.Weight = 6# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Duplicate.Select Selection.ShapeRange.IncrementLeft -18# Selection.ShapeRange.IncrementTop 9.6 Selection.ShapeRange.Line.DashStyle = msoLineDash Selection.ShapeRange.Line.Weight = 4.5 Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.ForeColor.SchemeColor = 9 Selection.ShapeRange.Line.Visible = msoTrue Selection.Top = 上端位置 Selection.Left = 左端位置 End Sub Wordで使えるようにするには、どこを直せばよいでしょうか。

  • Excel VBA で 一括書式設定(セル内の一部のみ)

    こんにちは。教えてください。 1つのセル内に、 あいうえお1か き! くけこ2 さしすせそ3たち。 つてと45.67? というように、いくつかのセル内改行を含み、文字数がばらばらのデータが入っています。そういうセルが、一行にいくつも並んでいます(途中に空白もあります)。 それらの1行目(上記の例で言うと、「あいうえお1か」)のみ、フォント赤色の書式設定を、マクロで行いたいのです。 そこで、以下のマクロを実行すると、選択セルがひとつだけのときは問題ないのですが、複数のセルを選択すると実行時エラー(型が一致しません)が出てしまいます。 Sub 一行目赤() With Selection.Characters(Start:=1, Length:=InStr(Selection.Value, Chr(10)) - 1).Font .ColorIndex = 3 End With End Sub 選択セルのすべてに対し、一括で書式設定できるようにするにはどうしたらよいでしょうか?ご回答よろしくお願いいたします。

  • ごく簡単なマクロなのですが。

    エクセルで、セルの書式を「通貨」、通貨記号を「ユーロ記号」にするために、 Sub 通貨変更_EUR ActiveCell.Select Selection.NumberFormatLocal = "?#,##0.00;-?#,##0.00" End Sub このようなマクロを作ってみました。 実際は「?」の部分を「ユーロ記号」にしたいのですが、 マクロではユーロ記号を表示させることはできないのでしょうか? もともとエクセルに設定してある「ユーロ通貨設定」のボタンでは書式が「会計」になってしまうので、 「通貨」にしたいのですが・・・。

専門家に質問してみよう