HOME BBS A B C D E F G H
1


BakuJAN活用例」の解・体・親・書

親愛なる貴方のために・・・え?誰?

はじめに

 [ Excel ]は、日々の数字を扱う業務など、定型的な集計作業に利用されることの多い、言わずと知れた表計算ソフトです。そのファイルは[ ブック ]と呼ばれ、複数の[ ワークシート ]を持つ事ができます。[ ワークシート ]というオブジェクト名通り、ユーザーは、この[ ワークシート ]で作業を行います。

図:Excelで使うブックの中には、複数のワークシートを持つことができる

 1枚の[ ワークシート ]には、最大16,777,216個の [ セル ]が含まれています。多くのユーザーは、モニター画面に表示される範囲までを作業範囲として、日々変化するデータを月次の報告書にまとめたり、製品の型番などを収めた一覧表を作ってみたりと、様々な目的で[ Excel ]を使っています。

 取り扱うデータはユーザーごとに違えども、それそれの作業の中で、キーボードやマウス操作が一定だったら、同じ手順を毎日、毎回繰り返すのは非効率ですね。[ Excel ]には、その拡張機能の一つとして、[ Visual Basic Editor ]というプログラミングソフトが用意されています。この[ Visual Basic Editor ]を使うと、「Excel=表計算ソフトウェア」という枠を飛び越えて、定型となっている作業や処理を自動化する、オリジナルのマクロソフトを作る事ができます。

 [ Visual Basic Editor ]には、ユーザーが操作する手順を[ VBAマクロ ]として、自動的に記録する方法が用意されています。この機能を使うと、ユーザーはまるでカセットレコーダーのボタンを押すような手軽さで、[ VBAマクロ ]というプログラムが組めてしまいます。

 最初のうちは、自分で操作した手順が、どのようなマクロとして記録されているのか、ただ眺めているだけでも参考になるでしょう。また、マクロの自動記録を眺めていると、記録できない操作部分にも気付かれると思います。「あなたが決めた条件や処理の結果」通りの動作をさせるには、キーボードからコードを入力して、VBAマクロプログラムを組み立てていく必要があります。

図:Excel付属のVisual Basic Editor を使って、オリジナルのマクロを組む

 本書では、VBAマクロを使った様々なExcelの活用方法や、それに合わせたVBAマクロの組み方を解説しています。実用されているVBAマクロの解説なので、関数やプロパティについて旺盛な知識を持っていても、自身でVBAマクロを組めなかった方へは、参考にしていただくことを期待しています。

 実例を基にしたVBAマクロサンプルには、その一つ一つに独立した使い道があります。それらのVBAマクロを分解しながら、「その部分のコードは、どうなっているのか」、また、「どうして、そのようなコードにしたのか」というところに重点をおいて解説しています。VBAマクロプログラムの組み方には、人それぞれの癖があります。本書以外にも作者によって異なるたくさんのプログラムソースを見て、貴方自身にとって最適な方法を見つけてください。


INDEX

  • 1.オリジナルメニューの追加
     ★  マクロの警告メッセージを表示させない方法
     ★  ブックを開いたとき、マクロを自動的に実行する
     ★  Excelメニューバーに、オリジナルのメニューを追加する
     ★  Excelメニューバーから、オリジナルのメニューを削除する
     ★  VBAマクロのコードの実行速度を速くする
     ★  エラーが発生しても、マクロを中断させない
     ★  ブックを閉じるとき、マクロを自動的に実行する
     ★  [ Enterキー ]押下後の、アクティブセルの移動方向を制御する
     ★  イベントプロシージャを解除する
     ★  [ For〜Nextステートメント ]で、今日を基準とした複数のメニュー項目を作る
     ★  1つのプロシージャで、複数の異なるテキストファイルをワークシートに読み込む
     ★  新規に作成するブックに含まれるシート数を定める
     ★  新規にブックを作成する
     ★  任意の文字で区切られたテキストファイルをシートに展開する

     
  • 2.使用者の履歴を残す
     ★  値が確定して初めて動くExitイベントプロシージャ
     ★  マルチページコントロールのページを切り替える
     ★ 
    外部ファイルが無ければ新規に作成し、データを追記する
     
  • 3.ユーザーフォームは1つしかなかった
     ★  [ API関数 ]で、モニターの解像度を求める
     ★  モニター画面の解像度に合わせ、ユーザーフォームのサイズを変更する
     ★  指定したファイルの有無を調べる
     ★  コントロールに外部画像ファイルを読み込む
     ★  VBAマクロの実行中に、ユーザーフォームのサイズを動的に変更する
     ★  タイトルバーの[ X(閉じる) ]ボタンを無効にする
     ★  4つの異なるユーザーフォームを同時に表示する
     
  • 4.メニュー画面のボタンデザイン
     ★  複数のコントロールを使って、コントロールをデザインする
     ★  リストボックスコントロールの選択項目を使う
     ★  複数の選択肢があるメッセージボックスを表示し、処理を分岐する
     ★  コントロールに表示する数値の書式(桁カンマ区切り)を設定する
     
  • 5.点滅するボタンコントロール
     ★  コントロールの色を変更して、点滅しているように見せる
     ★  複数のプロシージャをバックグラウンドで動作させる
     ★  カウントダウン・カウントアップタイマーを使う
     
  • 6.ユーザーフォーム上から、セル範囲を指定
     ★  [ RefEditコントロール ]で、セル範囲を指定して使う
     ★ 
    区切り文字を指定して、文字列(セルアドレスの参照式)を分割して表示する
     
  • 7.リストの項目を設定する
     ★  [ Array関数 ]で、リスト項目を設定する
     ★  リストを複数列で使い、表示する列数を設定する
     ★  リストで表示する列の幅を設定する
     ★  オプションボタンの値に併せ、多次元配列のリスト項目を追加する
     ★  外部ファイル(画像)のファイル名・作成日時・バイト数を取得する
     ★  セル範囲をコンボボックスのリスト項目に設定する
     ★  列(セル)の中で、データの入力されている空白以外のセルを数える
     ★  ワークシートを数えて、リスト項目に追加する
     ★  名前付け規則に沿ったシート名だけをリスト項目へ追加する
     ★  カンマ区切りの外部テキストファイルを開く
     ★  外部テキストファイルから、リスト選択値と同じものをリストアップする
     ★  2つのタイムスタンプから、経過時間(勤務時間)を計算する
     ★  外部ファイルのデータをリストボックスへ直接読み込む

     
  • 8.ワークシートからセルの値を検索して、データを抽出する
     ★  検索値を基準として、相対位置にあるセルデータを検索抽出する
     ★  検索値が見つからなくとも、マクロを中断させない
     ★  ワイルドカード「 * 」を使って、「〜を含む」セルデータを検索抽出する
     ★  ワイルドカード「 * 」を使って、「〜を含む」セルを数える
     ★  多次元配列のデータをリストボックスの値に追加する
     ★  検索抽出を連続して行う
     
  • 9.リストボックス項目の追加と削除
     ★  リスト項目から、任意の項目を削除する
     ★  リスト項目から、全ての項目を削除する
     ★ 
    セルを検索抽出し、セルに値を入力する
     
  • 10.いろいろな時間の計算
     ★  ワークシートで、スケジュールカレンダーを作る
     ★  ユーザーフォームで、万年カレンダーを作る


リンクフリー

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Microsoft(R) Excel、Microsoft Visual Basicは米国Microsoft Corporationの米国およびその他の国における登録商標または商標で、Microsoft Corporationのガイドラインに従って画面写真を使用しています。