印刷するとフォントが変わってしまう件

きっかけは「辻」だった。

画面には「辻」の文字が表示されているのに、印刷するとしんにょうの点がひとつの「辻」に変わっている。印刷した紙を眺めていると他にもひっそりと変わっている文字がちらほら。よくよく見ると、文字が置き換わる以外にも、画面とはレイアウトが微妙に違っている。文字間隔や、行間の広さなどが。

ある種のプリンタには、画面で指定したフォントで印刷するか、あるいはプリンタフォントに置き換えて印刷するかを選ぶ機能を持つものがある。ある種のプリンタとは、私の経験では、オフィス用のレーザープリンタである。自宅で使っている家庭用のインクジェットプリンタには、この機能はない。

WordやExcelなどのアプリでプリンタの設定を開き、選択したプリンタの「設定」もしくは「プロパティ」ボタンをクリックすると、そのプリンタに固有の細々した設定画面が表示される。そのなかにフォントに関する設定があれば、画面フォントとプリンタフォントのどちらを使用するかを選択できるはず。

例:FUJI XEROXのよくあるご質問
「2)・[フォントの設定…]ボタン」のところを見てね。

冒頭の「辻」の件は、それぞれのフォントが持っている字体が異なるときに発生する。たまたまプリンタが持っているフォントの「辻」が1点しんにょうだったということ。

フォントの置き換えは影響が大きい。文字そのものが置き換わるだけではない。フォントが変われば当然文字の間隔や行の前後の間隔、はたまたサイズまで、見た目があれやこれやと変わっていく。

先の例の、XEROXのプリンタには

  • 常にプリンタフォントを使う
  • 常にTrueTypeフォントを使う
  • TrueTypeフォントをプリンタフォントで置き換える

の3つのオプションがある。それぞれ何らかのメリットがあるはずで、状況に応じてふさわしいものを選択すればよい。

ふだん使っているプリンタがどんな機能を持ち、どんな動きをするのかは知っていたほうがいい。一度「設定」の項目をひととおり眺めて、意味がわからないところはクリアにしておくと、何か起きたときの解決の手がかりとなるかもしれない。文字の置き換えも困るが、意図しないレイアウト崩れなど、できれば遭遇したくない事態である。

Excelのファイルが2つ開いてしまうのを直す方法

「新しいウインドウを開く」で同じファイルを複数開き、複数のウインドウを使って作業することがあります。作業を終えて保存して、あとでそのファイルを開くと常に2つのウインドウが表示されてわずらわしいとき、その解消方法を紹介します。

2つのウインドウを開いている状態。

「ファイル名:1」「ファイル名:2」と表示されています。同じファイルを2つのウインドウで開くとファイル名はこんなふうに表示されます。

このまま保存(もしくは上書き保存)してファイルを閉じて、次に同じファイルを開くと、毎回2つのウインドウが表示されることとなります。これはExcelの仕様。

次回ひとつの画面だけ開きたいときは、ウインドウの片方を閉じて(3つ開いていたら2つ閉じる)ひとつにした状態で上書き保存をします。

以上です。

【Excel VBA】VBAでワークシート関数を使う方法、条件に一致するセルの個数を数えてみる

VBAを使うと決めたなら全てVBAの文法にのっとってプログラムを書くというのはひとつの方法ですね。視点を変えてExcelに用意されているワークシート関数を使うと、自分でゴリゴリとプログラムを書かなくても、たった1行で済んでしまう場合があります。そんな一例を紹介します。

たとえば条件に一致するセルの個数を数えたいとき

「CountIf」という関数があります。指定したセル範囲内で条件に一致するセルの個数を返してくれます。

CountIf(範囲,検索条件)

「範囲」には検索するセルの範囲、「検索条件」には条件を指定します。


セルに関数を入力するときは

「セル範囲B3~B50の中に”A”という文字列が入っているセルはいくつあるか」を探すときは、結果を表示するセル、たとえばD1に

= CountIf(B3:B50, “A”)

と入力します。


VBAでこつこつ記述すると

セル範囲の行数分だけForでループしてセルの内容を確認し、”A”に一致したらカウンタをひとつ増やしています。


ワークシート関数をVBAで指定すると

なんとまあ、数を数える処理は1行でおしまいです。こっちのほうがシンプルで便利だと思いませんか。

WorksheetFunctionプロパティ

ApplicationオブジェクトのWorksheetFunctionプロパティを使うとワークシート関数をVBAの中で呼び出すことができます。「Application.」は省略可能です。

注意点はすべてのワークシート関数が利用できるわけではないことと、引数によっては引数をVBA式で指定する必要があることでしょうか。

Excelで入力値が1/100に変わるのを直す方法

Excelで、セルに入力した数値が1/100の値に変わってしまう現象を直す方法です。

現象

セルに「15000」と入力したのに

2016092303

[Enter]を押すと「150」に変わってしまいます。

2016092304

解決方法

  1. [ファイル]→[オプション]をクリックして[Excelのオプション]を表示します。
  2. [詳細設定]をクリックして[編集設定]の[小数点位置を自動的に挿入する]の設定を確認します。
  3. ここにチェックが入っていると上記の現象が発生します。

2016092302

チェックを外すと入力した値そのままが表示されます。

2016092301

注意事項など

デフォルトでは[入力単位]が「2」となっていますね。これは「桁を2つ左にずらす」つまり入力値を1/100した値に変更するという意味です。セルに「1」を入力すると「0.01」と表示されるのですが、イメージできるでしょうか。

この状態で例えば「10760」を入力すると、セルの書式設定によって表示される値が異なります。

  • 「標準」のとき:「107.6」
  • 「数値」のとき:「108」

数値のときは元の3桁目(100の位)が四捨五入されています。深く考えずにこのオプションを使うと混乱が生じるかもしれませんので注意が必要です。

なお、セルに保存されるのは入力値ではなく表示されている変更後の値です。あとからオプションを変更しても入力値は元に戻りません。入力値はそのままで表示だけを変えたいときは、セルの書式設定で指定してくださいね。