エクセルのデータ表で、フォームを作って操作する(その1)準備~フォームの表示
データの整理には、エクセルの表を使うとわかりやすくて便利です。でも、たくさんの項目が横に並ぶと見づらくなるので、そういう時にフォームを作ります。カード型のフォームを作ると、内容を一目で見ながら入力編集できるし、入力チェックや書式の統一なども自由に設定できて、望み通りの使い方ができるようになります。フォームは、エクセルのプログラム機能を使って作ります。エクセルには、VBAというプログラム言語が装備されていて、すぐに始めることができます。
サンプルを使ってその作り方を書いていきます。プログラムになじみのない人向けです。ちょっと作れるようになると、とても仕事がはかどるので、興味のある人はどうぞ。
バージョンは2016(2013とほぼ同じ画面です)です。サンプルの表(csv形式)を用意しました。よければこちらからダウンロードして使ってください。(右クリックして「名前をつけてリンク先を保存」)
その1:準備 ----------
【1-1】画面の準備
1. サンプル.csvを、Excelで開きます。2. 画面を整えます
0) リボンを隠して、タブだけを表示。(やらなくても構いません。リボンを出したままでも、OK)
- 右上の「リボンの表示オプション」をクリック
- 「タブの表示」をクリック

1) 行列番号の表示を、R1C1形式に変えます。(ここではR1C1形式で作業します)
- [ファイル] タブをクリック
- [Options] をクリック
- [数式] をクリック
数式の処理で、「R1C1参照形式を使用する」にチェックを入れて、[OK]
- [ファイル] タブをクリック
- [Options] をクリック
- [リボンのユーザー設定] をクリック
- 右側の[リボンのユーザー設定]で [メイン タブ]の [開発]に チェック を入れて[OK]

3. 名前をつけて保存してください。ファイルの種類は「マクロ有効ブック(*.xlsm)」で。(ここでは、サンプル.xlsmとしました。)
4.プログラムを作る画面「Visual Basic Editor」を立ち上げます。
- [開発] タブをクリック
- リボン左端の「Visual Basic」をクリック

※ これで、準備完了です。
その2:フォームを作って表示する ----------
【2-1】ユーザーフォームを作ります(Visual Basic Editor上の操作です)
1)ユーザーフォームを作る準備をします- [挿入]をクリック
- [ユーザーフォーム]をクリック

画面左のプロジェクトエクスプローラには「フォームモジュール」と「UserForm1」が、Editorの中には無地のフォームができました。

2)UserForm1に、ツールボックスからコントロール(「ラベル」「テキストボックス」「コマンドボタン」)を配置します。
※ 配置したコントロールの調整は、「オブジェクトの選択」をクリックして行います。


※ コントロールの位置・フォントなど、ビジュアルデザイン部分の調整は後ほど説明します。こだわらなくてもOKです。今のポイントは、「コントロールがフォーム上にあること」なので。
※ 以上で、フォームの形ができました。
【2-2】ユーザーフォームを表示するプログラムを書きます(Visual Basic Editor上の操作です)
1)プログラムを書く準備をします- [挿入]をクリック
- [標準モジュール]をクリック

画面左のプロジェクトエクスプローラには[標準モジュールフォルダ]と[Module1]が、Editorの中には無地の白い画面ができました。

2)プログラムを書きます(「フォームを見せて」と、ことば通りに書きます)

上記3行を、エディタに書きます。以下はその説明です。
1. 命令を書くために、プロシージャと呼ばれる枠を作ります。
sub edit_data()
end sub
※ edit_data の部分は、このプロシージャの名前です。自由に決めてください。(私は「データを編集」という意味で、edit_dataと書きました。 名前の中に空白が入ってはいけないので、「 _ (アンダーバー)」を使いました。)
2. sub と、end sub の間に、「UserForm1を見せて」と、書きます。(さきほど作ったフォームの名前が「UserForm1」でした。) UserForm1 と show の間は「.(ドット)」でつなぎます。
sub edit_data()
UserForm1.Show
end sub
プログラムは会話と似ています。極端に言うと「やりたいことを言葉にしてそれを置き換えるだけ」なのですが、英語がベースなので「見せて」を「show」と書くことになります。(ぼそ:英語圏の人がちょっとうらやましいですね)※ 以上で、プログラム書きは終わりです。
【2-3】プログラムを実行して、フォームを表示します(Visual Basic Editor上の操作です)
1)subと end subの間に、カーソルを置きます。2)書いたプロシージャ「edit_data」を実行します。次の3つのどの方法でも構いません。
- その1.[実行]-[Sub/ユーザーフォームの実行] をクリック
- その2. F5キー を押す
- その3. 右向き三角マークをクリック

3)フォームが表示されます。

4)補足。カーソルが、subと end subの外にあると、プロシージャ(マクロ)選択画面がでます。
edit_dataを選んで「実行」してください。

※ 続きはまた今度。「シートにボタンを作ってフォームを表示する」と「フォームにデータを表示する」の予定です。
※ ここまでのデータは、こちらからダウンロードできます。(リンクを右クリックして保存)
続きはエクセルにフォームをつける Part I(02)
0 件のコメント:
コメントを投稿