- ベストアンサー
Excelで、日本語(全角)フォントを正しく指定するには・・・?
- Excel2002を使用している場合、VLOOKUP関数で文字列を引っ張ってきているセルの日本語フォント指定がうまくできない問題が発生します。直接文字を打ち込んだセルは指定どおりのフォントになりますが、関数で引っ張ってきたセルは日本語/英語それぞれのフォントを指定することはできません。
- 普通は、Excelで日本語フォントを指定する場合、シート全選択→日本語フォント指定→英語フォント指定とすると、それぞれが正しく設定されるはずです。しかし、英語フォントを指定した時点で、関数で引っ張ってきたセルの日本語フォントが自動的にMS Pゴシックに変わってしまうという問題が生じます。
- VLOOKUP関数を使用して文字列を引っ張ってきているセルの場合、日本語/英語フォントを指定することはできません。直接文字を打ち込んだセルは正しくフォントが設定されますが、関数で引っ張ってきたセルは自動的にMS Pゴシックに変わってしまいます。この問題の解決方法はまだ見つかっていません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
何回か同じような質問を見たような・・・・? 当方、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
お礼
すみません。 何度も質問しました・・・。^^; 丁寧な回答、本当にありがとうございました。 マクロはごくごく初歩しか解らないので、 じっくり勉強してみたぃと思います。 とりあえず今はnishi6さんが書いて下さったものを 貼り付けて使わせて頂きます。m(__)m