1−4 簡単なマクロを作ってみる

コンボボックスを使って、選択したデータを取り出す仕組みまでは作れました。「この値を簡単に使えるようにする」なんて、ほんとにそんな事が簡単に出来るのでしょうか?答えは、「できます」です。それも 動作を記録するというやり方で簡単に作れてしまいます。まずは、論より証拠、やってみましょう。

図1−4−1家計簿のシート−「Sheet1」に作成されたコンボボックスをマウスで右クリックすると ポップアップメニューが表示されますが、この中に「マクロの登録」というのがあります。これを選択してみましょう。
右に示すような マクロの登録ダイアログが表示されます。ここで、記録を選んでみましょう。すると、今度はマクロの記録ボックスが表示されます。簡単の為 今回はこのままでOKをおします。
はじめに「DB」シートを選び、セルB2を選択します。次に このセルの値をコピーして「Sheet1」シートのB3を選択。「形式を指定して貼り付け」のダイアログで 「値」のオプションボタンを選択して 値のみ貼り付けを実行します。この処理で 「Sheet1」シートのB3に「缶詰め」の文字が登録されました。ここで、メニューバーのツール−マクロから記録終了を撰んで、マクロの記録を終了させます。図1−4−2
ツール−マクロ−「Visual Basic Edition」を選択するとマクロ編集の画面が表示されます。コードが表示されていない場合には、左のプロジェクトの標準モジュールの「Module1」を選択すると表示されます。(通常はこの名前がデフォルトでつけられます。)
メニューバーの「ファイル」−「終了してMicrosoft Excelへ戻る」か画面右上のコントロールボックスの×印を押すかして、EXCELに戻ります。
ここで、ためしにB3のセル内容を消して、コンボボックスで「肉」を選択してみましょう。(この時は、自動でマクロが起動されます。マクロの処理を行う場合には 必ず処理の前に保存する習慣を身につけて下さい。万一 マクロが暴走した場合 最悪EXCELを強制終了しなければなりません。また、それ程でなくても 思った結果が得られず シートが「ぐちゃぐちゃ」になってしまうことも考えられます。そうなった時に保存していなければ、大変な事になってしまうからです。)

コンボボックスで「肉」を選択すると、B3のセルの値が変わります。別な値でも試してみてください。(この時、マクロの警告画面が表示される場合があります。この時には「セキュリティレベル」を中か低に設定して下さい。そうしないと、マクロは実行する事が出来ませんので。又、ツール−オプションの画面の計算方法が自動になっていない場合は うまく値を取得する事が出来ません。自動計算に修正して動かしてみてください)。

ところで、この自動記録したマクロの場合、コンボボックスで選択した値は 必ずセルのB3に書き込まれてしまいます。これでは家計簿として失格です。何かもっと良い方法はないでしょうか?

戻 る