<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--基本操作を考える
データベース テーブル フォーム クエリー レポート マクロ&仕上げ
1 1 2 3 4 1 2 3 4 5 6 7 B 1 2 3 4 5 6  8 1 2 3 4 5 1 2 3 4 S



■マクロを作る 3■

・・・すいません。とっても平凡なデザインになっちゃった・・・。

で、どれかボタンをクリックしてみましょう。出てくるかな・・・。
「売上トップ10」とか。

そうすると・・・。指示したフォームが開いてきます?
いちおう、全部のフォームをチェックし・・・。

・・・でも、このフォーム閉じても、メニューフォームも閉じたままなんですよね。
うーん、これじゃめんどくさいじゃないですか・・・。

どうしよう。どうします???

じゃあ・・・。

「←このフォームを閉じるとき、必ずメニューフォームが開いてくる」ようにしましょうか。

まだ作り途中だとうっとおしいかもしれないですけど、必ずメニューフォームに戻ってくるような流れを作ることができると思います。

とりあえずやってみましょう。
このフォーム、デザインビューにします。

えー、フォームのプロパティを出します。
フォーム全体の、ですよ。左上の、ちょっとしたグレーの四角のトコをダブルクリックすれば絶対出てきますよね。

で、このフォームの「イベントプロパティ」→「閉じるとき」に、「メニューフォームを開く」というマクロを作ります。

たった一行だけのマクロ・・・。
なんか、もったいない(笑)かなーと思ったら、マクロをVBAで記述してみましょう。なあに、簡単ですよ。やってみましょうって。

というわけで、この中から選ぶのは、「コードビルダ」です。

ほーい。下のような画面になりました???

ここに、マクロを書きます。っていうとちょっと変ですけど・・・。

DoCmdというのが、マクロをVBAコードで記述するときのお約束です。

大文字小文字はどっちでもいいんですけど、半角で入力しましょう。
で、左の図のように、入力した後、ピリオドを打ちます。

docmd.

そうすると、あ、マクロなのね〜と、Accessが判断してくれて、マクロアクションの一覧が出てきます。
なんかくらくらしそうな英単語が並んでますけど・・・
これ、前の前のページでお話した「マクロのアクション」のことです。ただ英語で表記してるだけ。

中に、OpenFormっていうのがあるはずです。

Oだけ入力すると、ぴょんとフォーカスが移動すると思うんですけど・・・。

ゼロじゃないですよ。オーです。あとはマウスとか使って探してください。
で、これだけじゃダメですよね。どのフォームを開くのか入力してやらないと。。。

なので、Tabキーを押してやってください。改行キーじゃなくて。

で、その後、スペースキーを押します。

すると、下の図のように、このマクロアクションに必要な値とかオブジェクト名とかを書くように指示が出てきます。

で、" "で囲んで、フォームの名前を入力します。なぜって???
ここはVBAのコードを入力するトコですよ。「メニュー」なんて名前、皆さんが付けた名前じゃないですカー。
Accessにはわかんないんで、Accessは「メニューなんて言葉、わかりません」って、平気で言うんですよ。
だから、「あんたは知らないかもしれないけど、これはあたしが作ったメニューっていう名前のフォームのことなのよ、ものの名前なの」って、教えてあげるんです。
だからわざわざ""で囲むんです。

こういう、ダブルコーテーションで囲むの囲まないのってのは、VBAの世界ではちゃんと法則があるんですけど、わかりにくいトコかもしれないですね。
慣れが一番ですが、とにかく覚えようとせず、エラーが出たら囲ってみる、って感じで考えてればいいんですよ。気楽に書き込んでください。

DoCmd.OpenForm "メニュー"

こうなりました???
これで、さっき作った「フォームを開く」っていうマクロと同じ効力があるんですよ。
コマンドボタンとか、ちょっとしたイベントなら、VBAでマクロを記述してもよさそうですよね。
まあ、この辺はほんとにお好みですよ。VBAで記述したからって、マクロより高度なことやってるかっていうと、そうでもないです。

じゃ、VisualBasicのウィンドウだけ閉じて、フォームを保存しながらいったん閉じましょう。


同じ要領で、他のフォームも、「閉じるとき」のイベントに、上と同じことを書き込みましょう。開くフォームは同じですからね。
すでにVBAコードを記述してあるフォームもありますね。書き込むとこ間違えないようにしてくださいよ。

フォームを閉じるとき、Form_Closeのイベントのトコに書いてくださいね。

すでにVBAコードを記述してあるフォームもありますね。書き込むとこ間違えないようにしてくださいよ。

フォームを閉じるとき、Form_Closeのイベントのトコに書いてくださいね。


できました???

では、改めて・・・。メニューフォームを開き、すべてのボタンをクリックして、出てきたフォームを閉じて・・・と、繰り返してみてください。
いちおう・・・なんか、閉じたり開いたりっていう動きができたんじゃないかなーと思います。