課題
手引き資料に従って家計簿シートを作成しなさい。 その後、これまでに学習した機能を利用してより使いやすいもの修正できないかを考え、実際に修正せよ。 なお、課題25で作成した家計簿を今後利用するつもりの場合は、ほかの課題と別の Book としてもよい。
マクロとは(繰り返し行う)複雑な処理や煩雑な処理の操作を記録/記述し、自動的に実行する機能のことを言う。
エクセルでは、実際に処理を行って登録する「キーマクロ」と、 VBA(Visual Basic for Application)を用いて記述するマクロがあるが、情報処理A では「キーマクロ」のみを対象とする。
マクロでは、様々な処理を(意図しなくても)実行することができるため、エクセルはマクロを含んだファイルを開く際に 次のような警告を表示する。
これは、悪意を持った作製者が作成したマクロによるコンピュータの被害を防ぐ(マクロウィルスに感染する)のを 防ぐためである。 したがって、自分で作成したファイルや、内容が判っているものの場合にのみ 「マクロを有効にする(E)」を選択するようにすること。 特に、作製者のはっきりしないファイルや、メール等で送られてきたファイルを開く際には、安全であることを確認するまでは 「マクロを無効にする(D)」を選択するべきである。
「フォームボタン」を利用すると、作成したマクロを簡単に実行することが可能となる。 フォームボタンを作成するには「表示」→「ツールバー」から「フォームツールバー」を 表示するように設定する。
をクリックして選択し、ボタンを設置したい場所をクリックすると ボタンが作成され、そのボタンが押された際に実行するマクロを選択する画面が表示されるので、実行したいマクロを選択して「OK」を押す。
大きな表を作成しているときなど、先頭の見出し行や、 左端の見出し列が見えなくなってしまうと、入力時や参照時に不便である。
このようなときには、スクロールしてもかまわない最左上端のセルをクリックした後、 「ウィンドウ(W)」→「ウィンドウ枠の固定(F)」を利用すると作業効率が上がる場合がある。
ワークシートの複数の場所を見るためには、「分割」機能も利用できる。 スクロールバーの上または右にある分割ボックスをダブルクリックするか、ドラッグすると分割バーが表示され、ウィンドウが分割される。 分割バーをドラッグすると分割位置を変更できる。解除するには、分割バーをダブルクリックするか、もとの位置までドラッグする。 F6 または Shift+F6 キーでシートを移動することができる。
なお、「ウィンドウ枠の固定」と「ワークシートの分割」は同時には機能しない。
複数のシート(同じものでも良い)を同時に表示したい場合も考えられる。 そのような場合には「ウィンドウ(W)」→「新しいウィンドウを開く(N)」を実行した後、 「ウィンドウ(W)」→「整列(A)」を選択し、(たとえば)「左右に並べて表示」と 「作業中のブックのウィンドウを整列する」にチェックを入れて「OK」をクリックする。
分析表は1月の列を(絶対参照を用いて)作成した後、コピーする。そのあと、 各月の列を選択して「編集」→「置換」を用いてシート名部分を変更すると楽かも知れない。
実際に、使う側に立ってみて、使いにくい点がないかを考えて、可能な限り改良する。
上であげたヒントのうち、2つを実際に取り上げて改良する方法について解説する。 以下では、講義では取り扱わなかったものも利用するが、その方法にたどり着く手法も提示してあるつもりである。 今後、実際にエクセルを利用していく上での参考としてほしい。
費目コードを覚えないと使えないというのは、すこしつらい。 そこで、10日目の課題22で取り上げた「入力規則」を うまく使うことを考えてみる。
「費目」列のセルに「入力値の種類」に「リスト」を選択し、「元の値」に 費目テーブルの費目名を参照しようとしてもできない。 イルカに「入力規則」と聞いてみると、表示される「セルに入力できる値を設定する」を 見てみると
1. 同じワークシート上で、有効なデータのリストを1列または1行に入力します
とある。そのため、別のシートである費目テーブルを参照することができないのである。
しかし、あきらめるのはまだ早い。ヘルプを読んでいくと最後に、
・ 有効なデータのリストがほかのワークシートまたはブックに入力されている場合は、 作業中のワークシートに外部データに対する名前を定義します。…
という部分があることに気付くはずである。 また、その上の部分には
・ データのリストの変更が予想される場合は、リストの範囲に名前を付け、 [元の値]ボックスにその名前を入力します。…
という部分もある。どちらもリストの範囲に「名前をつける」ことで対応ができると 書いてあるので、費目テーブルの費目名に名前をつけることとする。
名前をつける方法は、上であげたヘルプの中にも書かれているが、行うことは単純で、 名前をつけたい範囲を選択した後、名前ボックスを変更するだけである。 下の図は、費目テーブルで、C2:C16 を選択したのち、もともと 「C2」と表示されていた 名前ボックスに「費目名」と入力したところである。 この操作のあとはシート「費目テーブル」の「C2:C16」の領域を参照するには「費目名」という 名前を使うことができるようになる。
つぎに、各月のシートに戻り、費目名に入力規則を設定する。 「元の値」欄は、費目名一覧につけた名前を先頭に「=」をつけて入力する。
なお、このようにすると、検索の手法も費目名から、費目コードや収支区分を検索することになる事に注意する。 また、「入力規則」で不正な入力は防ぐことができるので、LOOKUP 時のエラー処理は省略することができる。
前月の繰越残高を引っ張ってくるのは少し工夫が必要である。 なぜならば、お金の出入りがあった件数は、(ふつう)月ごとによってマチマチであり、参照するセルの位置が決めうちできないからである。 したがって、なんらかの関数を用いて処理することとなる。
単純な方法としては、検索で取り上げた(詳しくは説明していないが)、
INDEX
関数を利用することである。
検索では、MATCH
関数で、探索した結果を表示するのに用いたが、
特定の列の最下行を表示するために用いる。
最下行の行数を用いるためには関数 COUNT
が利用できる。
なお、COUNT 関数は空白セルは対象としないが、
残高の列には必ず式が代入されているので問題はないはずである。
12日目 | 表紙 | 14日目 |