Top

hiroyuki.tank.support.site

簡単!マクロ講座

第40回〜あてな-ボタンへ登録〜


 第38回のつづきです。
 メインのC7に数字を入れるとその番号の人から10人分を印刷するところまでやりました。
 次はボタンへ登録しそのボタンを押したらすぐに結果が出るようにします。
 次の手順でやってみてください。
1.メインの[ラベル印刷]ボタンを右クリック
2.「マクロの登録」を選択
3.マクロ名は「Macro1」を選びOKボタンをクリック

 これで[ラベル印刷]ボタンをクリックするだけで様式の印刷プレビューが表示されるようになりました。こうするとソフトらしくなってきました。

 もう一度第34回のユーザーの要望をみて次に実現すべき事項がないか確認しましょう。
 要望事項7で「だれを印刷するかはなんらかの方法で指定できるようにして欲しい」とあります。
 これは一つの方法としてメインに数字を入れてその番号の人から10人分を印刷するということで一応は実現しています。でも,はなれているひと複数人を印刷したいときにはできません。次はこれを実現してみましょう。
 シート「データ」のなかに「チェック」という列を設け,そこにチェックが入っていたら印刷するという手法を考えてみました。やり方はいろいろあるでしょうが,今回はこれで進めていきます。

 ユーザーにチェックを入れてもらわないといけません。どのようなチェックにするかよく考えておかないとあと困ります。といいますのも,プログラムはチェックを見てチェックがあれば何か行動を起こし,チェックがなければなにもしないという流れで進もうとするので,ユーザーによってチェックが「レ」だったり「○」だったり「×」だったりするとコンピュータにはわかんなくなるのです。
 ユーザインターフェイスで決められたチェックしか入らないような仕組みをしておく必要があります。
 的確な指示をしてもらおうと思えば操作しているユーザーが指示しやすいよう,間違った指示をしないようなインターフェイスにする必要があります。ユーザーにも作り手にももちろんコンピュータにも優しい作りをしましょう!

 ユーザーの便利なようにひとつ仕組んでおきましょう。
 VBEを起動し([Alt]+[F11])プロジェクトウィンドウの中の「ThisWorkbook」をダブルクリックしてみてください。
 その中に次のようなコードを書いてください。コピーペースとしてもOKです。

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
ActiveCell.FormulaR1C1 = "レ"
Sheets("メイン").Range("c7") = ""
End Sub


 これはなんのことかよくわかんなくてもいいです。これがあればセルをダブルクリックしたらそのセルに「レ」が入り,メインのシートのC7の値が消えるということです。実際にデータのシート上でダブルクリックしてみて下さい。
 これを使えば,ユーザーは簡単にチェックをすることができますし,コンピュータも迷うことがありません。
 メインのシートのC7の値が消えるようにしているのは,チェックをしたユーザーは次は多分「チェックをした人を印刷しなさい」と命令してくるだろうから,メインのセルC7の番号指定の数字を消しておいた方が親切ではないかなという作り手の親切心からこのようにしています。もう少し後になってこの配慮の意味がわかってきます。おたのしみに!
 次はこのチェックを利用して印刷すべき人を探してみます。

| hiroyuki.tank.support.site.Top | このページのTop | マクロ講座目次 | 前回 | 次回 |