表計算ソフトを使って 万年カレンダーを作ろう! <使い勝手向上編> 午前・午後の部 県立広島大学 経営情報学部 経営情報学科 小川仁士 平成21年11月8日 平成21年度 県立広島大学公開講座
1日目の概要について 午前 暦について 万年カレンダー作成のガイダンス 作成手順書1に基づく計算用シートの編集と確認 旧暦(太陽太陰暦)・新暦(ユリウス暦、グレゴリオ暦) 閏月(旧暦)、閏年(新暦)の設け方 万年カレンダー作成のガイダンス 計算用シート編集のポイント (基準日からの日数計算、曜日割出し、カレンダー表示など) 作成手順書1に基づく計算用シートの編集と確認 平成21年11月8日 平成21年度 県立広島大学公開講座
1日目の概要について 午後 祝日の扱いについて 画像の加工について 作成手順書2改に基づくレイアウト用シートの編集と確認 現在の祝日(国民の祝日に関する法律より) 休日について(補足説明) 画像の加工について Windows標準のペイントを使った画像編集の基本事項 作成手順書2改に基づくレイアウト用シートの編集と確認 平成21年11月8日 平成21年度 県立広島大学公開講座
(2日目から参加の方には雛形ファイルを配布します) 使い勝手向上編(ガイダンス) 1日目に作成した万年カレンダーの機能アップ (2日目から参加の方には雛形ファイルを配布します) 入力フォームを追加 指定したい年・月を表計算シートのセルに直接入力するのではなく、分かりやすいユーザ・インターフェースを用意し、マウスで選択できるようにする VBA(Visual Basic for Applications)を使ったマクロを作成し、自動的に表示内容を変える機能を追加 年・月を選択すると、対応する和暦が連動して表示される レイアウト用シートを表示するとき、指定した月と連動して登録済みの装飾用画像が適切に選ばれ貼り付けられる 作成手順書3、作成手順書4に基づく編集と確認 平成21年11月8日 平成21年度 県立広島大学公開講座
入力フォームの作成 ユーザインタフェースを用いることで、簡便な月日入力ができるようにする 西暦以外に対応する和暦の情報もコメントとして表示することにより、年月の選択をしやすくする 入力された月の情報を元にカレンダーに取り込む画像を自動的に選択する 印刷結果を事前に確認し、すぐに印刷できるようにする 平成21年11月8日 平成21年度 県立広島大学公開講座
入力フォームの作成 表計算シートにフォームを追加するには、VBEを起動する必要がある <ツールメニュー>→<マクロ>→<Visual Basic Editor>と選択する(詳細は、作成手順書3改で説明している) VBEウィンドウで<挿入メニュー>→<ユーザー フォーム>と選択すると、新しいフォームが作成できる フォームの名称を変更した後、ツールボックスからフォーム上へ各種コントロール(オブジェクト)を選んで配置して見た目を調整する(画面設計) 平成21年11月8日 平成21年度 県立広島大学公開講座
マクロの作成 入力フォームに配置したコントロール(オブジェクト)などには、初期値を設定することができるが、ユーザの操作(例えばクリックするなどイベントと呼ぶ)に対して何を行うのか(アクションと呼ぶ)を予め記述しておく必要がある イベントにより引き起こされるアクションを記述したものをイベントマクロと呼ぶ(イベント駆動型) ExcelではVBAで記述(プログラム)するのでVBAマクロとも呼ばれる コントロールやフォーム以外にブック、シート、セルなどもオブジェクトであり、それぞれが持つ固有の属性(プロパティ)が定義してあり、オブジェクト(の各種属性)を操作するためのメソッド(例えば文字色を変えるとか、シートを表示する/しないとかの状態を変える)を利用してマクロ(プログラム)を作成する 例えば、SpinButtonのここがクリックされたとき、SpinButtonが持つ値が1つ減り、 それが上のLabel7の値に代入されるようにしておくと・・・ 平成21年11月8日 平成21年度 県立広島大学公開講座 値が1減って表示される
マクロの作成 マクロを記述する場所は、関連するオブジェクトをダブルクリックして開くコードウィンドウの中に記述する 前のスライドで示した例にだけ関係したマクロを下に抜き出してみると・・・ Private Sub UserForm_Initialize() With SpinButton1 .Min = 1 .Max = 12 .Value = Month(Now) Label7.Caption = .Value End With End Sub SpinButton1の最小値と最大値を設定し、初期値を今月にする Label7に値を代入する Private Sub SpinButton1_Change() Label7.Caption = SpinButton1.Value End Sub Label7にSpinButton1の値を代入する 平成21年11月8日 平成21年度 県立広島大学公開講座
もっとExcelVBAのプログラミングを勉強したい方へ 2007/2003/2002対応 福光洋子、チーム・エムツー 著 アリエスコンピュータ監修 翔泳社 定価:本体2,380円+税 平成21年11月8日 平成21年度 県立広島大学公開講座
それでは、作成手順書3、作成手順書4に従って 万年カレンダーの使い勝手を向上していきましょう! (余力のある方は、祝日や振替休日などの文字色を変更する 機能を追加した作成例5にも挑戦してみてください) 平成21年11月8日 平成21年度 県立広島大学公開講座