RAD ツールを使おうー VBA/C# ー 中京大学情報理工学部 情報システム工学科3年 H 佐藤 一樹
RAD って? RAD(Rapid Application Development) とは、 ソフトウェア開発を容易にする仕組みの一つで、 GUI を視覚的に設計でき、それに関わる必要コードの 自動生成・関連づけや、モジュール開発機能を備えた物。 ex ー VisualStudio 等 ( WikiPedia より) GUI を作成する際、プログラマはウィンドウサイズ配置等の 情報をコードでプログラムの一部に書かなければならない。 しかし、この RAD ツールを用いることにより、 視覚的に GUI を作成できるので、プログラム開発を 容易にすることができる。
例を交えた視覚的 GUI の利便性 320*240の赤いメインウィンドウを持 ち、 ウィンドウ左下に ”Push” という20*20の 青ボタン Push
RAD を備えた開発環境に触れよう 1: VBA (今週)担当:佐藤 2: C# (来週)担当:岡田
VBA とは? VBA(VisualBasic for Application) は、 VB から派生した言語で、 Microsoft Office シリーズに、 搭されているプログラミング言語である。 VBA を使用することで、 Excel や Access などを使用した 定型業務を自動化することができる。 さらに、 Microsoft Office シリーズには、 VBA の統合開発環境が付属している。
VBA の特徴 ・ユーザー独自のフォームを作成することができ、 様々なプラグインを組み込むことでアプリケーションの 機能をカスタマイズすることが可能である。 ・インタプリタ型言語であり、コンパイルが不要 ・エクセル等のファイルに付属する形になるので、ファ イルを開いた時にウィルスや PC 自体に悪影響を及ぼす 危険性がある。
本レクチャーで重要な部分 課題 RAD を使い GUI を視覚的に設計する RAD を用いることによる、 GUI 開発の容易さ
代表的なコード例 ・ VBA では、ワークシートやセルをオブジェクトとして扱う Worksheets(“sheet1”).Activate また、セルはワークシートの中にあるため、指定する場合は Worksheets(“sheet2”).Range(“A1”).select Worksheets(“sheet2”).Cell(1,1).select Range(“A1:E7”),Range(“A1”,”E7”),Range( Cell(1,1),Cell(7,7)) というように書く。
代表的なコード例 ・変数宣言 Dim 変数名 As データ型 ex>Dim x As Integer ・関数の書き方 Sub サブルーチン名 () 処理内容 End Sub ・メッセージボックスの出し方 MsgBox “HellowWorld” Function 関数名() As Integer 処理内容 End Function
代表的なコード例 ・条件式 If 条件式 Then // 一行に書くこと 内容 Else If ×a==b ○a=b 内容 End If ・繰り返し For i=1 to 10 Next Step 2 内容 End For
肝心のコードの書き方 ガーデンの PC でやるので Office2007 になります。 「表示」タブから右上の「マクロ」の下の矢印 → 「マク ロの記録」
肝心のコードの書き方 まず、マクロに名前をつける。 次に「マクロ」 → さっき作ったマクロを選択 → 「編集」
肝心のコードの書き方 「 Module1 」を右クリック → 挿入 → ユーザーフォーム
肝心のコードの書き方 まず、マクロに名前をつける。 次に「マクロ」 → さっき作ったマクロを選択 → 「編集」
肝心のコードの書き方 後は、ツールボックスから、必要なものを貼付けて、視覚的 に開発。
必要コードの関連づけ?
課題 課題1:まずはフォーム作成から、フォー ム上にボタンを作り、メッセージボックス で好きな言葉を表示させよう 課題2:指定したセルに対し、値を代入・ 削除できるフォームを作成 課題3:キーとなる行を指定し、その指定 された行に従って、列をソート(昇順でも 降順でもかまわない)させるフォームを作 成、ただし、キーとなる行は背景色を他と 異なる色になるようにすること。 課題4:課題2・3を合わせたものに、シ ート移動機能をつけ、ファイル出力機能を 加える。 課題5:自由課題。あっと驚く課題を期待 してます。
SampleCode Range(Cells(1, 1), Cells(100, 2)) _.SortKey1:=Worksheets("Sheet1") _.Cells(1, 2),order1:=xlAscending