みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで、日本語(全角)フォントを正しく指定するには・・・?

使用しているのはExcel2002です。

普通、「シート全選択→日本語フォント指定→英語フォント指定」とすると
それぞれがちゃんと設定されますょね?
でも英語フォントを指定した時点で、日本語フォントが勝手にMS Pゴシックに換わってしまうセルがあったんです。

色々と考えた結果、日本語フォントが指定されないのは、
VLOOKUP関数で文字列を引っ張ってきているセルのようです。
同一シート内でも、直接文字を打ち込んだセルは
ちゃんと日本語/英語それぞれ指定どおりのフォントになりました。

関数で引っ張ってきたセルは
日本語/英語それぞれのフォントを指定することは出来ないんでしょうか?
何か方法がありましたら教えてください。

投稿日時 - 2003-01-27 15:28:49

QNo.456608

困ってます

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

何回か同じような質問を見たような・・・・?

当方、Excel97のため確実な確認はできませんが、似たような状態にはなりました。

>それぞれがちゃんと設定されますょね?
日本語フォントや英語フォントがどのようなフォントか分からないのでなんともいえませんが・・・

思うに、Vlookupを使った場合、引数のセルの値が変更になってもVlookupを使ったセルの変更が検知されないからではないでしょうか。実際、Worksheet_Changeイベントでは検知できませんでした。
とすれば、Vlookupだけではなく、Offsetなどの関数も同じ状態になります。(確認しました)

セルの変更の都度、Book全体を調べにいく方法もありますが、あまり効率的とはいえないでしょう。
そうなれが、セルの変更都度、フォントを変更するのではなく意識的にフォントを設定したらどうでしょうか。
下のマクロは、実行すればアクティブシートのフォントを指定したフォントに設定します。

設定する範囲が限られていれば、その範囲を書けばいいでしょう。ご参考に。


ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。
出てきたコードウインドウに下記マクロを貼り付けます。
フォントは指定して下さい。

Sub FontSet()
  Dim Adr As String 'アクティブシートの使用範囲

  Dim rg As Range 'セル
  Dim txt As String 'セルの内容
  Dim L As Integer '文字カウンタ
  Dim Eigo As Boolean '英語?

  '使用範囲を調べる
  Adr = ActiveSheet.UsedRange.Address

  For Each rg In ActiveSheet.Range(Adr)
    txt = rg.Text
    If txt <> "" Then
      '英語かどうか調べる
      Eigo = True
      For L = 1 To Len(txt)
        Select Case Mid(txt, L, 1)
          Case "0" To "9"   '左は英語とした
          Case "A" To "Z"   '左は英語とした
          Case "a" To "z"   '左は英語とした
          Case ".", "-"    '左は英語とした(このように英語とする文字を設定します)
          Case Else
            Eigo = False
        End Select
      Next

      'フォントをセット
      If Eigo Then
        rg.Font.Name = "Century"       '英語フォントを指定
      Else
        rg.Font.Name = "HG正楷書体-PRO"   '日本語フォントを指定
      End If
    End If
  Next
End Sub

投稿日時 - 2003-01-27 20:45:18

お礼

すみません。
何度も質問しました・・・。^^;

丁寧な回答、本当にありがとうございました。
マクロはごくごく初歩しか解らないので、
じっくり勉強してみたぃと思います。
とりあえず今はnishi6さんが書いて下さったものを
貼り付けて使わせて頂きます。m(__)m

投稿日時 - 2003-02-18 16:01:33

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問