[Office Master] | |||||||||||
Excelのシートをワンクリックで初期化する
|
|||||||||||
|
解説 |
Excelで作成した電子伝票を再利用する場合、使用するたびに以前の入力内容を消去しなければならないことに煩雑さを覚えている方はいないだろうか。単純なリスト形式の表ならば、手作業で削除してもさほど面倒ではないが、複雑なレイアウトの伝票から必要な個所だけを消去するのは意外と手間なものだ。
しかし、本サンプルを利用することで、伝票上のボタンを1つクリックするだけで、伝票を入力前の初期状態に戻すことができる。ここでは「請求書」テンプレートを例に、構築の手順を紹介してみよう。
操作方法 |
それでは、さっそく、作成までの流れを見てみることにしよう。
手順1―「請求書」テンプレートを用意する
「請求書」のテンプレート・イメージは以下のとおりだ。
Excelで作成した「請求書」フォームの例 | ||||||
請求書のような定型伝票をExcelで作成して管理しているユーザーも多いだろう。データを入力する場合は、左上の[クリア]ボタンをクリックすると、1度使用した電子伝票の内容をクリアして、次の入力に備えることができる。 | ||||||
|
- サンプルExcelファイルのダウンロード
(注:サンプルdemand.xlsをダウンロードするには、上のリンクを右クリックして、demand.xlsというファイル名で保存してください)
取りあえずは、上記のように伝票の様式をワークシート上でレイアウトしてみてほしい。今回は、伝票の内容自体はあまり重要でないので、詳細については上のサンプルExcelファイルなどを参考にして作成していただきたい。
手順2―コマンド・ボタンを配置する
表を作成したら、[クリア]のトリガーとなるコマンド・ボタンを設置しておこう。プロパティとしては、今回は以下の内容を変更してみた。オブジェクト名とは、プログラムの中でこのコマンド・ボタンを参照するときに使用される名前を指す。
プロパティ名 | 設定値 |
(オブジェクト名) | btnClear |
Caption | クリア |
PrintObject | False |
変更するプロパティ | |
これらのプロパティを変更しておく。PrintObjectプロパティは、このオブジェクトを印刷するかどうかを決めるプロパティ。 |
PrintObjectプロパティがFalseに設定されている点に注目してほしい。PrintObjectプロパティは対象のオブジェクト(ここではコマンド・ボタン)がワークシート印刷時に印刷の対象に含まれるかどうかを決定する。今回のように、伝票上に配置されたオブジェクトを印刷時には表示したくなければ、Falseに設定しておけばよい。
手順3―該当セルをクリアするためのコードを記述する
さあ、外枠ができたら、いよいよコードを記述してみよう。
デザイン・モードの状態(「コントロール ツールボックス」メニュー・バーの三角定規が選択された状態)で、シート上に配置したコマンド・ボタンをクリックすると、Visual Basic Editorが起動するはずだ。コード・エディタ上に、すでにイベント・プロシージャの骨格は生成されているはずなので、それに追記する形で以下のコードを記述してほしい。
Private Sub btnClear_Click() |
btnClear_Clickは、コマンド・ボタンをクリックしたときに呼び出されるプロシージャだ。
MsgBoxはVBAにあらかじめ用意された組み込み関数の1つで、画面上にメッセージ・ボックスを表示させることができる。第1引数はメッセージ・ボックスに表示されるメッセージを、第2引数にはボックス上のボタンの種類を、そして、第3引数にはタイトルをそれぞれ指定する。第2引数に指定することのできるボタンの種類は以下の通りである。これらは定数になっている。引数は各グループからそれぞれ最大1つを選び(特に不要の場合は無指定も可)、それらの合計(「vbYesNoCancel+vbExclamation」など)として表わすことができる。
グループ | 定数 | 意味 |
1
|
vbOKOnly | [OK]ボタンのみ表示 |
vbOKCancel | [OK][キャンセル]ボタンを表示 | |
vbAbortRetryIgnore | [中止][再試行][無視]ボタンを表示 | |
vbYesNoCancel | [はい][いいえ][キャンセル]ボタンを表示 | |
vbYesNo | [はい][いいえ]ボタンを表示 | |
vbRetryCancel | [再試行][キャンセル]ボタンを表示 | |
2
|
vbCritical | 「警告」アイコンを表示 |
vbQuestion | 「問い合わせ」アイコンを表示 | |
vbExclamation | 「注意」アイコンを表示 | |
vbInformation | 「情報」アイコンを表示 | |
3
|
vbDefaultButton1 | 第1ボタンをデフォルトとして選択 |
vbDefaultButton2 | 第2ボタンをデフォルトとして選択 | |
vbDefaultButton3 | 第3ボタンをデフォルトとして選択 | |
vbDefaultButton4 | 第4ボタンをデフォルトとして選択 | |
4
|
vbApplicationModel | メッセージに応答するまで現在のアプリケーションを中断 |
vbSystemModel | メッセージに応答するまで全アプリケーションを中断 | |
MsgBox関数の第2引数として利用できる定数 | ||
MsgBox関数の第2引数には、メッセージ・ボックスに表示するアイコンやボタン、デフォルト選択ボタンなどを指定する。これらは定数になっており、各グループから最大1つ選んで、それらを加算して第2引数に指定する。各グループのデフォルトは、それぞれの1番上の項目になる。 |
また、MsgBox関数は戻り値としてユーザーが選択したボタンの種類を返す。
定数 | 概要 |
vbOK | [OK]を選択 |
vbCancel | [キャンセル]を選択 |
vbAbort | [中止]を選択 |
vbRetry | [再試行]を選択 |
vbIgnore | [無視]を選択 |
vbYes | [はい]を選択 |
vbNo | [いいえ]を選択 |
MsgBox関数の戻り値 | |
MsgBox関数は、クリックされたボタンやユーザーの選択に応じて、これらの値を返す。 |
ここでは、vbYesで判定しているので、[はい]ボタンがクリックされたときにのみ、Ifブロックの中でコンテンツのクリア処理を行う。
ここまで理解できれば、後の処理は極めてシンプルだろう。
Range(...).Selectメソッドで指定されたセル範囲をアクティブにした後、選択範囲の内容をクリアする(Selection.ClearContentsメソッドを呼び出す)。Range("A1").Selectメソッドは、クリア処理の終了後に、画面の先頭行にフォーカスを戻すためのコードである。
マクロの記録機能によるセルの選択
なお、自分のオリジナルの伝票に同等の機能を実装しようとすると、以下のような記述が面倒にも思えるかもしれない。これは、伝票上のユーザー入力フィールドをすべて選択するためのコードである(伝票の内容に応じて変更すること)。
Range("C3,H2,B12,A16:H38,B42:C42,B44:C44,B46:C46,B48:C48").Select |
これを簡単に作成するためには、マクロの記録機能を利用することができる。まず[ツール]メニューから[マクロ]−[新しいマクロの記録]を実行してみよう。するとマクロの記録機能が開始される。そこで[Ctrl]キーを押しながら対象のセルをすべてアクティブにしてみよう。単独のセルを選択するにはマウスを右クリックすればよいし、範囲を選択するためにはマウスをクリックしてドラッグすればよい。すべて選択した後に、マクロの[記録終了]ツール・バー上の[記録終了]ボタンをクリックする。
その後Visual Basic Editorを開くと、プロジェクト・ツリーの下の[標準モジュール]に「Module1」というオブジェクトができているはずなので、ダブルクリックして中身のコードを見てみよう。そこには、上記のようなコードが自動的に生成されているはずだ。必要ならばこれをコピーして、目的のプロシージャに貼り付ければよい。
このマクロを使う方法は、VBAプログラミングにおいてコーディングを簡略化する、あるいは、使用するメソッドやプロパティが分からない場合に調査の手間を省くことができる有効なテクニックだ。ぜひ、覚えておいてほしい。
この記事と関連性の高い別の記事
- Excelでファイルの一覧情報リストを取得する(TIPS)
- 配信リストを使ってメールをいっせいに配信する(TIPS)
- Windows XPで変わったユーザー/コンピュータ/グループの選択方法(TIPS)
- ユーザー定義関数で任意のセル範囲の値を取得する(TIPS)
- これだけは覚えておきたいWindowsのコマンドプロンプトの使い方(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|