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の位)が四捨五入されています。深く考えずにこのオプションを使うと混乱が生じるかもしれませんので注意が必要です。

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