Comments
Description
Transcript
本書について
cp00 : 2000/1/31 (15:12) 5 本書について 本書で作成しているモジュールとブック 第 1 章からの本文においては、表 1 に示すモジュールを作成して、これらのコード( プ ログラム)リストと実行結果をベースにして、その内容を解説しています。 表 1 モジュール一覧表 モジュール番号 モジュール名 ブック番号 リスト番号 1 md シートクリア B-1-1 1-1 2 md シート枠線操作 B-1-1 1-2 3 md シート行列番号操作 B-1-1 1-3 4 md シート指定_枠線操作 B-1-1 1-4 5 md シート指定_枠線 OptSub B-1-1 1-5 6 mdTest シートクリアなど B-1-1 1-6 7 sh1 シートクリア B-1-1 1-7 8 cs シートクリア B-1-2 1-1 9 cs シート指定_枠線操作 B-1-2 1-4 10 cs シート指定_枠線 OptSub B-1-2 1-5 11 mdTest シートクリアなど Class B-1-2 2-1 12 sh1 シートクリア Class B-1-2 2-2 13 md シート分割 B-1-2 2-3 14 md 行列操作 B-1-2 2-4 15 mdTest 行列幅 B-1-2 2-5 16 cs 行列操作 B-1-2 2-6 17 mdTest 行列幅 Class B-1-2 2-7 18 ThisWorkbook-ブックを開く.xls B-2-1 3-1 19 md ブック可視不可視 B-2-1 3-2 20 cs ブック可視不可視 B-2-2 ( 3-2 ) 21 ThisWorkbook-ブック開 Class.xls B-2-2 3-3 22 mdFileOpenSave B-2-2 3-4 23 md ブック有無 B-2-2 3-5 24 cs ブック状態 B-2-2 3-6 25 md ブック操作 B-2-2 3-7 26 mdAutoOpenClose B-2-3 3-8 cp00 : 6 2000/1/31 (15:12) 本書について モジュール番号 モジュール名 ブック番号 リスト番号 27 ThisWorkbook-Launcher.xls B-2-4 4-1 28 Sheet4-Launcher.xls B-2-4 4-2 29 Sheet5-Launcher.xls B-2-4 4-3 30 ThisWorkbook-SheetEvent.xls B-2-5 4-4 31 Sheet1-SheetEvent.xls B-2-5 4-5 32 md シート作成と移動 B-2-5 4-6 33 shLauncher-SheetEvent.xls B-2-5 4-7 34 md 乱数表の作成 B-2-5 4-8 35 md 範囲乱数ジェネレータ B-2-5 4-9 36 ThisWorkbook-ワークシート操作.xls B-3-1 4-10 37 ThisWorkbook-ReadOnly.xls B-3-2 4-11 38 md ブック間シート内容コピー B-3-1 5-1 39 mdTest ブック間内容コピー B-3-1 5-2 40 md シートを作成してコピー B-3-1 5-3 41 mdTest シート作成コピー B-3-1 5-4 42 md シート間内容コピー B-3-1 5-5 43 mdTest シート全内容コピー B-3-1 5-6 44 md エラーコード調査 B-3-1 5-7 45 md コード別エラー表示 B-3-1 5-8 46 md シートを作成してコピー Err 対応 B-3-1 5-9 47 mdTestErr 対応シート作成コピー B-3-1 5-10 48 md シート作成コピー Err 分岐 B-3-1 5-11 49 mdTest シート作成コピー Err 分岐 B-3-1 5-12 50 mdBook シート内容コピー Err 対応 B-3-1 5-13 51 mdTestBook 内容コピー Err 対応 B-3-1 5-14 52 cs シートを作成してコピー B-3-1 5-15 53 mdTestClass 対応 Sheet 作成 Copy B-3-1 5-16 54 ThisWorkbook-パスワード付.xls B-3-5 6-1 55 md 全シート保護_基本 B-3-5 6-2 56 md 全シート解除 Message B-3-5 6-3 57 md 全シート保護_PassWord B-3-5 6-4 58 md 全シート保護_秘密の記録 B-3-5 6-5 59 shPassWordPk-パスワード付.xls B-3-5 6-6 60 usfPassWordGet B-3-5 6-7 61 md 全シート保護_UserFmPass B-3-5 6-8 62 md 全シート保護_記録 PassWord B-3-5 6-9 cp00 : 2000/1/31 (15:12) 本書で作成しているモジュールとブック モジュール番号 モジュール名 ブック番号 リスト番号 63 ThisWorkbook-SheetProtect.xls B-3-3 6-10 64 md セル参照と入力 B-4-1 7-1 65 md 全セル参照 B-4-1 7-2 66 md 相対参照 B-4-1 7-3 67 md 正しい With 文の例 B-4-1 7-4 68 md 誤った With 文の例 B-4-1 7-5 69 md オブジェクト変数 B-4-1 7-6 70 md セル取得無対応 B-4-2 7-7 71 mdCancel 対応 Input B-4-2 7-8 72 md セル番号取得関数 B-4-2 7-9 73 mdTest セル番号取得 B-4-2 7-10 74 cs セル番号取得 B-4-2 7-11 75 mdTest クラス選択 B-4-2 7-12 76 md セルポインタ移動 B-4-3 8-1 77 md セルポインタ移動_特殊 B-4-3 8-2 78 md 交通費テンプレート B-4-3 8-3 79 md 行見出し B-4-3 8-4 80 md 列見出し B-4-3 8-5 81 mdTest 行列見出し B-4-3 8-6 82 sh 営業所経費 B-4-3 8-7 83 md セルポインタ移動プロシージャ B-4-3 8-8 84 md セルポインタ n 個移動 B-4-3 8-9 85 md 簡易外枠 B-4-4 8-10 86 md セル範囲参照 B-4-4 8-11 87 mdTestUnion B-4-4 8-12 88 md セル範囲スキャン B-4-4 8-13 89 mdTestUnion スキャン B-4-4 8-14 90 sh 営業所経費_停止可能 B-4-4 8-15 91 md イベントプロシージャ制御 B-4-4 9-1 92 mdEventProcedure チェック B-4-4 9-2 93 md セル文字列入力 B-4-3 9-3 94 mdTest セル文字列入力 B-4-3 9-4 95 mdToolBar 書式設定 B-4-3 9-5 96 mdDate 型変数 B-4-5 9-6 97 md 日付と時刻 B-4-5 9-7 98 md 曜日変換 B-4-5 9-8 7 cp00 : 8 2000/1/31 (15:12) 本書について モジュール番号 モジュール名 ブック番号 リスト番号 99 mdTest 曜日変換 B-4-5 9-9 100 cs 曜日変換 B-4-5 9-10 101 mdTestClass 曜日変換 B-4-5 9-11 102 Sheet2-日付曜日時刻.xls B-4-5 9-12 103 mdCell 数式入力 B-4-6 10-1 104 md クリップボード Copy B-4-6 10-2 105 md メソッド Copy B-4-6 10-3 106 md 自動範囲選択 Copy B-4-6 10-4 107 mdUsedRange B-4-6 10-5 108 mdEnd プロパティ B-4-6 10-6 109 mdValueCopy B-4-7 10-7 110 mdTextCopy B-4-7 10-8 111 mdFormulaCopy B-4-7 10-9 112 md 数値判断 Value B-4-7 10-10 113 md 数値判断 Formula B-4-7 10-11 114 md 先頭 0 文字列 Copy B-4-7 10-12 115 md 数式表示 B-4-7 10-13 116 md 数値表示 B-4-7 10-14 117 md 数値演算 Copy B-4-7 10-15 118 Sheet3-TextValue.xls B-4-7 10-16 119 md データ_数式判定 B-4-8 10-17 120 md シート名選択 B-4-8 10-18 121 mdTest シート名選択 B-4-8 10-19 122 md 任意シート数式表示 B-4-8 10-20 123 cs シート名選択 B-4-8 10-21 124 mdClassTest シート名選択 B-4-8 10-22 125 mdClass 任意シート数式表示 B-4-8 10-23 126 Sheet3-セルさまざま.xls B-4-8 10-24 127 md 日付計算 B-4-8 11-1 128 md 列文字列変換 B-4-8 11-2 129 mdTest 列文字列変換 B-4-8 11-3 130 mdAddress 列番号変換 B-4-9 11-4 131 mdTestAddress 列番号変換 B-4-9 11-5 132 sh 営業所経費 2-セルさまざま.xls B-4-8 11-6 133 sh 営業所経費 3- セル保護とカナ.xls B-4-9 11-7 134 md 選択入力_行可変 B-4-9 11-8 cp00 : 2000/1/31 (15:12) 本書で作成しているモジュールとブック モジュール番号 モジュール名 ブック番号 リスト番号 135 md 選択入力 B-4-9 11-9 136 Sheet2- セル保護とカナ.xls B-4-9 11-10 137 md テンプレート作成 B-4-9 11-11 138 md テンプレート作成_再設定 B-4-9 11-12 139 md テンプレート再設定_行可変 B-4-9 11-13 140 md ふりがな表示非表示 B-4-9 11-14 141 md プログラムかな入力 B-4-9 11-15 142 md かな列削除 B-4-9 11-16 143 md ふりがな関数入力 B-4-9 11-17 144 mdActive 罫線 B-4-10 12-1 145 mdTestActive 罫線 B-4-10 12-2 146 mdActive 外枠 B-4-10 12-3 147 mdTestActive 外枠 B-4-10 12-4 148 mdRange 指定罫線 B-4-10 12-5 149 mdTestRange 指定罫線 B-4-10 12-6 150 mdRange 指定外枠 B-4-10 12-7 151 mdTestRange 指定外枠 B-4-10 12-8 152 md 線種 Active 罫線 B-4-10 12-9 153 mdTest_線種罫線 B-4-10 12-10 154 mdArrayForEach B-4-10 12-11 155 md データシート作成 B-4-10 12-12 156 mdTestWorksheetScan B-4-10 12-13 157 mdTest 行スキャン B-4-10 12-14 158 md 線種 Active_外枠 B-4-10 12-15 159 mdTest_線種 Active 外枠 B-4-10 12-16 160 mdRGB カラー基本 B-4-10 12-17 161 md16 進カラー基本 B-4-10 12-18 162 md パレット番号カラー基本 B-4-10 12-19 163 md 文字カラー基本 B-5-1 13-1 164 md セル枠線カラー B-5-1 13-2 165 md 色_線種 Active 罫線 B-5-1 13-3 166 mdTest_色_線種罫線 B-5-1 13-4 167 md ふりがな列作成 B-5-1 13-5 168 md ひらがなふりがな列作成 B-5-1 13-6 169 md 半角カタカナふりがな列作成 B-5-1 13-7 170 md 中間色コードテスト B-5-1 13-8 9 cp00 : 10 2000/1/31 (15:12) 本書について モジュール番号 モジュール名 ブック番号 リスト番号 171 mdRGB カラー定義 B-5-1 13-9 172 mdEnumRGB テスト B-5-1 13-10 173 cs クリアと枠線 B-5-2 13-11 174 csColor 定数_メソッド B-5-2 13-12 175 mdTest_Color 線種罫線 B-5-2 13-13 176 csColor 罫線 B-5-2 13-14 177 md 線幅_線種_色罫線 B-5-2 13-15 178 csColor 外枠 B-5-2 13-16 179 mdTest_線幅_線種_色外枠 B-5-2 13-17 180 md 色定数文字カラー B-5-2 13-18 181 md 入力セル色区分 B-5-2 13-19 182 md 行列変換 B-5-2 14-1 183 mdFill ステートメント B-6-1 14-2 184 md 数値数式区分 B-6-1 14-3 185 md 営業所抽出 B-6-1 14-4 186 md2 つの営業所抽出 B-6-1 14-5 187 md 抽出結果コピー B-6-1 14-6 188 mdTest 領域 Areas B-6-1 14-7 189 mdTest 可視_領域 Areas B-6-1 14-8 190 md 表示行数カウント関数 B-6-1 14-9 191 md 抽出件数カウント B-6-1 14-10 192 md 任意項目_抽出 B-6-1 14-11 193 md 昇順ソートプロシージャ B-6-2 15-1 194 mdTest 昇順ソート B-6-2 15-2 195 md 昇順ソート Title なし B-6-2 15-3 196 mdTest_NoTitle 昇順ソート B-6-2 15-4 197 md_降順ソートプロシージャ B-6-2 15-5 198 mdTest_降順ソート B-6-2 15-6 199 md_降順ソート Title なし B-6-2 15-7 200 md_TestNoTitle 降順ソート B-6-2 15-8 201 cs ソート B-6-2 15-9 202 mdClassSort B-6-2 15-10 203 md 重複レコード削除 B-6-2 15-11 204 shFunction-Worksheet 関数.xls B-6-2 15-12 205 mdTestTextBox_使用注意 B-7-1 16-1 206 mdTest 縦書 TextBox_注意 B-7-1 16-2 cp00 : 2000/1/31 (15:12) 本書で作成しているモジュールとブック モジュール番号 モジュール名 ブック番号 リスト番号 207 mdModelTextBox 関数 B-7-1 16-3 208 mdTestModelTextBox B-7-1 16-4 209 mdModel 縦書 TextBox 関数 B-7-1 16-5 210 mdTest 縦書 TextBox B-7-1 16-6 211 mdShapeCountIndex B-7-1 16-7 212 md 変形 TextBox B-7-1 16-8 213 mdTest 変形 TextBox B-7-1 16-9 214 mdTest 変形_縦書 TextBox B-7-1 16-10 215 md 使い方説明 B-7-1 16-11 216 md 帳票送付_営業所 B-7-1 16-12 217 Sheet4-' Sheet 上配置.xls B-7-1 16-13 218 md 帳票送付_帳票名 B-7-1 16-14 219 md 抽出解除 B-7-2 17-1 220 md 回収率抽出 B-7-2 17-2 221 md 回収率抽出_後処理 B-7-2 17-3 222 md 回収率抽出_Spin B-7-3 17-4 223 md 都道府県検索 B-7-3 17-5 224 md 庁舎所在地検索 B-7-3 17-6 225 md 地域数カウント B-7-3 17-7 226 md 地域_マーキング B-7-3 17-8 227 md マクロランチャ B-7-3 17-9 228 md 比較 InputBox B-8-1 18-1 229 usf 半角全角入力 Box B-8-1 18-2 230 mdTest 半角全角入力 Box B-8-1 18-3 231 mdTestFilter 関数 B-8-1 18-4 232 usfImeSwitch 入力 Box B-8-1 18-5 233 mdTestSwitch 入力 Box B-8-1 18-6 234 usfModelessText B-8-2 18-7 235 mdTest モードレス入力 B-8-2 18-8 236 usf リスト入力 B-8-2 18-9 237 mdTest リスト入力 B-8-2 18-10 238 md 面積換算 B-9-1 19-1 239 md 手操作設定印刷 B-9-1 19-2 240 md 手操作設定印刷 PreView B-9-1 19-3 241 md 範囲既設定印刷 B-9-1 19-4 242 md 範囲印刷 Preview B-9-1 19-5 11 cp00 : 12 2000/1/31 (15:12) 本書について モジュール番号 モジュール名 ブック番号 リスト番号 243 usfWait 案内 B-9-1 19-6 244 md 面積換算_表印刷 B-9-1 19-7 245 md 面積換算_表印刷_Preview B-9-1 19-8 246 usf 印刷ページ設定 B-9-1 19-9 247 md ページ指定印刷 B-9-1 19-10 248 md 列幅統一 B-9-2 19-11 249 md 横方向縮小印刷例 B-9-2 19-12 250 md グラフ確認削除 B-10-1 20-1 251 md グラフシート作成 B-10-1 20-2 252 md 埋め込みグラフ削除 B-10-1 20-3 253 md 埋め込みグラフ作成 B-10-1 20-4 254 md 位置サイズ指定グラフ B-10-1 20-5 255 md 回転率グラフ作成 B-10-1 20-6 256 md 埋め込みグラフ印刷 B-10-1 20-7 表 2 ブックとフォルダ フォルダ名 ワークシート基本集 v ブックとイベント ブック番号 ファイル名 B-1-1 シート基本.xls B-1-2 シート体裁.xls B-2-1 ブックを開く.xls B-2-2 ブック開 Class.xls B-2-3 OpenClose.xls B-2-4 Launcher.xls B-2-5 SheetEvent.xls B-3-1 ワークシート操作.xls B-3-2 ReadOnly.xls B-3-3 SheetProtect.xls B-3-4 シート参照法.xls B-3-5 パスワード付.xls B-4-1 セル参照法.xls B-4-2 セル番号取得.xls B-4-3 セル書式数式.xls B-4-4 セル範囲.xls B-4-5 日付曜日時刻.xls B-4-6 セル GetCopy.xls B-4-7 TextValue.xls u ワークシート操作 s セル操作 cp00 : 2000/1/31 (15:12) 本書で作成しているモジュールとブック フォルダ名 ブック番号 ファイル名 B-4-8 セルさまざま.xls B-4-9 セル保護とカナ.xls B-4-10 罫線と Color.xls B-5-1 Color 応用.xls B-5-2 罫線 ColorCls.xls B-6-1 簡易検索.xls B-6-2 WorkSheet 関数.xls B-7-1 Sheet 上配置.xls B-7-2 Button シート.xls B-7-3 リストボックス.xls B-8-1 UserForm.xls B-8-2 Modeless.xls B-9-1 Printer.xls B-9-2 プリンタ設定.xls B-10-1 GraphBase.xls q セル応用 p データ加工 n コントロール j ユーザフォーム h プリント f グラフ これらのモジュールは、表 2 のブックに収められています。表 1 のブック番号と、表 2 のブック番号が対応しています。表 2 のフォルダは、図 1 のように「 Ex2K_Module」フォ ルダの下に作ります。このフォルダはドライブを問いません。 図 1 Ex2K_Module フォルダ 13 cp00 : 14 2000/1/31 (15:12) 本書について モジュールとプロシージャのプリフィックス 本書には、表 3 に示す 5 種類のモジュールがあります。それぞれ独自のプリフィックス を付け、名称を見れば種類がわかるようにしてあります。これには例外はありません。 表 3 本書のモジュールとプリフィックス プリフィックス モジュールの種類 md 標準モジュール cs クラスモジュール usf ユーザーフォームモジュール sh ワークシートモジュール ThisWorkbook ブックモジュール 各ブックにおけるこれらのモジュールは、VBE を開いて図 2 のようにプロジェクトエク スプローラを開くことにより、その構成を見ることができます。これらのモジュールに各 プロシージャがあります。本書においては、モジュールを単位として解説します。モジュー ルごとに、行番号を付けたプロシージャのコードリストを示します。 図 2 プロジェクトエクスプローラ 本書のプロシージャには、原則として表 4 に示すプリフィックスを付けています。一部 例外もあります。 表 4 本書のプロシージャのプリフィックス プリフィックス プロシージャの種類 gsb Public Sub プロシージャ gfc Public Function プロシージャ msb Private Sub プロシージャ mfc Private Function プロシージャ cp00 : 2000/1/31 (15:12) 本書のプロジェクトの学習法と利用法 プリフィックス プロシージャの種類 mth メソッド pty プロパティプロシージャ 本書のプロジェクトの学習法と利用法 本書のプロジェクトは、解説文のコードリストにしたがってプロジェクトを作成し、実行 して学習することができます。付属 CD-ROM のフォルダをのちに説明する方法でハード ディスクにコピーし、Excel 2000 でブックを開くことにより、コード入力なしにプロジェ クトを実行することができます。 本書の各モジュールのプロシージャは、VBE においてコードをほかのブックのモジュー ルにコピーして利用することができます。プロシージャの一部をコピー&ペーストして利 用することもできます。 モジュール全体を利用するには、ドラッグ&ドロップとエクスポート/インポートによ る方法があります。ドラッグ&ドロップは、コピー元モジュールのブックとコピー先ブッ クを図 3 のように開きます。コピー元のモジュールをコピー先ブックの領域にドラッグし てはなすと、対応するモジュールグループにコピーされます。対応するグループがないと きには、自動的に作成されます。 図 3 ドラッグ&ドロップ この方法では、Microsoft Excel Object のシートはコピーできません。これは、シート を開きシートコピー操作によってコピーします。 15 cp00 : 16 2000/1/31 (15:12) 本書について エクスポートは、標準モジュールとクラスモジュールが対応しています。フォームモジュー ルは、コードのみ対応しています。この操作は、図 4 のようにエクスポートするモジュー ル名上でショートカットメニューを開き、 [ファイルのエクスポート]コマンドをクリック します。これで図 5 のように[ ファイルのエクスポート]ダイアログボックスが開き、モ ジュール名のファイル名が付けられています。拡張子は、標準モジュールが「 bas 」でクラ スモジュールが「 cls 」です。これで、フォルダを選択して保存します。 図 4 エクスポート 図 5 ファイルのエクスポート このファイルを利用するブックでは、図 6 のようにインポートするブックにおいてショー トカットメニューを開き、 [ファイルのインポート]をクリックします。これで図 7 のよう に[ ファイルのインポート]ダイアログボックスが開くので、目的のファイルを開きます。 図 8 のようにインポートが完了します。 cp00 : 2000/1/31 (15:12) リファレンスブックと本書のステートメントの比較 図 6 インポート 図 7 ファイルのインポート 図 8 インポート完了 リファレンスブックと本書のステートメントの比較 リスト 1 は、モジュール 197 のオリジナルコードリストです。本書においては、コード リストはリスト 2 のようにツールにより行番号を付けて掲載しています。これはコードの 解説のためです。 本書の解説文においては、コード中のオブジェクト、プロパティ、メソッドの解説はや や簡単になっています。この不足の部分については、Excel 2000 VBA の各種リファレン スブックや、オンラインヘルプを参照してください。リファレンスブックやオンラインヘ 17 cp00 : 18 2000/1/31 (15:12) 本書について ルプにも、それぞれのオブジェクト、プロパティ、メソッドの使用例があります。これら は、そのステートメントの解説が主なので、実際のプロシージャにおけるコードの前後の 関係が明白であるとは限りません。 たとえば、リスト 2 の 12∼17 行目の選択セル範囲のソートである Sort メソッドについ て見ると、リファレンスブックでは WorkSheets("Sheet1").Range("A1:C20").Sort _ として、選択範囲の Range オブジェクトのメソッドとしてソートする構文になっています。 リスト 2 においては、12 行目で全セルを選択してから、13 行目で Selection プロパティの メソッドとして Sort を実行しています。このほうがデバッグが容易です。さらに、リスト 2 のように独立したプロシージャとしてほかのプロシージャから呼んで使用するときには、 18 行目の選択解除が重要です。選択を解除していないと、次のステートメントでこの選択 範囲を対象にすることがあり、トラブルが発生する可能性があります。 このように、本書のモジュールにあるプロシージャは、実際に動作する構造になってい るので、条件を変えたテストも容易です。 リスト 1 モジュール 197 のオリジナルコードリスト ' md_降順ソートプロシージャ ' Worksheet 関数.xls Option Explicit ' 降順ソートのプロシージャ ' 呼ぶ前に対象ワークシートを選択する ' ソートキーとする列の 2 番目のセル番号を文字列で渡す Public Sub gsb_ 降 順 ソ ー ト プ ロ シ ー ジ ャ (agstrRange As String) Cells.Select Selection.Sort Key1:=Range(agstrRange), _ Order1:=xlDescending, _ Header:=xlYes, OrderCustom:=1, _ MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin Range("A1").Select End Sub cp00 : 2000/1/31 (15:12) 動作環境の相異によるエラー発生 リスト 2 モジュール 197 の行番号付きコードリスト 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: ' md_降順ソートプロシージャ ' Worksheet 関数.xls Option Explicit ' 降順ソートのプロシージャ ' 呼ぶ前に対象ワークシートを選択する ' ソートキーとする列の 2 番目のセル番号を文字列で渡す Public Sub gsb_ 降 順 ソ ー ト プ ロ シ ー ジ ャ (agstrRange As String) Cells.Select Selection.Sort Key1:=Range(agstrRange), _ Order1:=xlDescending, _ Header:=xlYes, OrderCustom:=1, _ MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin Range("A1").Select End Sub 動作環境の相異によるエラー発生 本書のモジュールは、すべて Excel 97/2000 上で確実に動作することを確認していま す。しかし、動作環境が変わると思わぬエラーが出ることがあります。モジュール 248 の プロシージャを保護されているシートを開いて実行すると、図 9 のエラーが発生します。 ここで[デバッグ]ボタンをクリックすると、図 10 のように列幅を変えるステートメント がエラーになっています。これは、シートが保護されていて列幅を変えることができない ことによるエラーです。このエラーは、図 11 の[ツール]−[保護]−[シート保護の解除] によりシートの保護を解除することにより解決できます。 図 9 保護されているシートによるエラー 19 cp00 : 20 2000/1/31 (15:12) 本書について 図 10 列幅を変えるステートメントのエラー 図 11 シート保護の解除 cp00 : 2000/1/31 (15:12) 21 付属CD-ROMについて 本書に付属の CD-ROM には、次に示すファイルとフォルダがあります。 ● YEx2K_Module ● YEx2K_Module_CD-ROM 2 つとも中身は同じで、図 1( 13 ページ)のサブフォルダがあります。各フォルダにあ るブックファイルは表 ( 2 12 ページ)のとおりです。 本書のモジュールの演習時には、YEx2K_Module_CD-ROM*1をハードディスクにコピー します。 ● YFolderTemplate 演習用のフォルダを簡単に作成するために用意しました。この下にあるYEx2K_Module をハードディスクにコピーすれば、図 1 と名前が同じで中身が空のフォルダが作成さ れます。 ● モジュール−リスト.xls 図 12 ( 22 ページ)のようにモジュール一覧表( 5 ページの表 1 を収録)とブック台帳(表 2 を収録)のワークシートを持つブックです。モジュール名をソートするなど、加工し て使うことができます。 インストール 1 YFolderTemplate の下のYEx2K_Module をハードディスクにコピー YEx2K_Module 以下に、図 1 と同じ名前で中身が空のフォルダが作成されます。 2 YEx2K_Module_CD-ROM をハードディスクにコピー 3 ファイルの読み取り専用属性を解除 図 13 ( 22 ページ)のようにエクスプローラにおいて[プロパティ]ダイアログボックス を開き、 [ 読み取り専用]チェックボックスをチェック OFF にします。 あるいは Excel でYEx2K_Module_CD-ROM フォルダのブックファイルを開き、Ex2K_ Module フォルダに名前を変えて保存します*2 。このほうがオリジナルのファイルと変 更したファイルが明確に区別できます。 *1 間違って演習用フォルダにファイルをコピーしないようにするためです。 *2 本書のモジュールのプロシージャは、ブックファイルの保存ドライブを問いません。 cp00 : 22 2000/1/31 (15:12) 付属 CD-ROM について 図 12 モジュール−リスト.xls のシート 図 13 読み取り専用 contents : 2000/1/31 (15:12) 23 目次 はじめに ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3 本書について ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5 付属 CD-ROM について ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・21 1章 ワークシート操作の基本と プロシージャ構造/作成/呼び出し法 1 ワークシートの全セル参照とクリア ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・35 2 ワークシートの枠線表示/非表示 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 39 3 ワークシートの行列番号の表示/非表示 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・40 4 オブジェクト引数、シート参照、アクティブシートの演習 ・・・・・・・・・・・・・・・・・・・・・・42 5 共通コードのプロシージャ化、名前付き引数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 44 6 ほかのモジュールにあるプロシージャ呼び出しとモジュール 4 、5 の プロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 47 7 シートモジュールにおけるほかのシートの参照、With 文、標準モジュールの プロシージャ呼び出し ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 52 入力候補、 エラー処理、 2章 クラスモジュールの作成と使用、 シート行列操作 8 ワークシートクリアのクラスモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・55 9 枠線操作のクラスモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56 10 プロシージャ使用の枠線操作のクラスモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56 11 クラスモジュールの使い方、オブジェクト宣言、入力候補、パラメータヒント ・・・・・・ 57 12 ブック間のプロシージャ呼び出し、エラー処理、On Error 文 ・・・・・・・・・・・・・・・・・ 61 13 ワークシートの分割操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 65 14 行列標準幅設定と標準値関数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 67 15 列幅自動調整と行列標準幅設定/標準値関数のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・68 16 行列標準幅設定と標準値関数のクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・71 17 行列標準幅設定と標準値関数のクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・72 contents : 24 2000/1/31 (15:12) 目次 イベントプロシージャ、 3章 ブック操作の基本、 複数エラーの対応構造、 ファイルオープン/クローズ 18 ブックのイベントプロシージャ、ブックの表示/非表示、 複数エラー対応プロシージャ構造 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・75 19 ブックの可視/不可視操作プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 79 20 ブックの可視/不可視操作のクラスモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 81 21 エラー処理付き汎用プロシージャを使った、自動ファイルオープン/ クローズプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・81 22 エラー処理付きファイルオープン/クローズ汎用プロシージャ ・・・・・・・・・・・・・・・ 83 23 ブックが開いているかどうかのチェック ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・84 24 ブックが開いているかどうかと可視/不可視をチェックするクラス ・・・・・・・・・・・85 25 ブック B-1-1 を使ったブック操作のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・87 26 Auto_Open、Auto_Close によるブックの自動オープン/クローズ ・・・・・・・・・・・89 シートランチャ、 4章 シートのイベントプロシージャ、 シートなしエラー対応、 イベント停止、 乱数 27 ブックを開いたときに特定のシートを開く ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・93 28 シートのイベントプロシージャによるマクロランチャ1 ・・・・・・・・・・・・・・・・・・・・・・・・ 94 29 シートのイベントプロシージャによるマクロランチャ2 ・・・・・・・・・・・・・・・・・・・・・・・・ 95 30 シートモジュールの Public 変数参照、エラー処理と特定のイベント プロシージャ停止機能を持ったシートオープンプロシージャ ・・・・・・・・・・・・・・・・・・96 31 イベント停止フラグのあるシートイベントプロシージャ、シート作成、 ワークシートの枚数、シート移動、Resume Next ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 98 32 ワークシート作成と移動の汎用プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・100 33 整数乱数表作成のマクロランチャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・101 34 シート中の条件使用の整数乱数表作成プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・102 35 下限と上限の間の乱数を発生する関数プロシージャ、Rnd 関数 ・・・・・・・・・・・・・・105 36 起動時に同じフォルダのブックを開く ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・105 37 使用中のブックは開かない自動オープンプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・ 107 contents : 2000/1/31 (15:12) 目次 エラーコード、 5章 ブック間/ブック内シート内容コピー、 エラー対応コピー 38 ブック間のシート内容コピー関数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・109 39 ブック間のシート内容コピーのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・110 40 シートを作成して引数指定のシートの内容をコピーするプロシージャ ・・・・・・ 112 41 シートを作成して整数乱数表のシートの内容をコピーするテスト ・・・・・・・・・・・ 113 42 引数で指定したシート間で内容をコピーするプロシージャ ・・・・・・・・・・・・・・・・・・・ 115 43 引数で指定したシート間の内容コピーテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・116 44 ブック、シート関係のエラーコード調査、Err 関数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 117 45 エラーコード別メッセージ表示プロシージャ、If∼Then∼ElseIf 文 ・・・・・・・・・ 120 46 エラー対応のシートを作成して引数指定のシートの内容をコピーする プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 121 47 エラー対応のシート作成コピープロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・ 122 48 エラーコードで分岐するシート作成コピープロシージャ ・・・・・・・・・・・・・・・・・・・・・・123 49 エラーコードで分岐するシート作成コピープロシージャのテスト ・・・・・・・・・・・ 124 50 エラー対応ブック間シート内容コピー関数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 125 51 エラー対応ブック間シート内容コピー関数のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・127 52 シートを作成して引数指定のシートの内容をコピーするクラスモジュール ・・・・・・・・・・128 53 シートを作成して引数指定のシートの内容をコピーするクラスモジュール のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 129 6章 シートの保護、パスワード、InputBox、ユーザーフォーム、 汎用パスワード入力フォーム 54 ブックを開いたときに特定シートを左端に移動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 133 55 ブック中の全シートの保護と保護解除の基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・134 56 パスワード付きでメッセージを表示する全シート保護解除プロシージャ ・・・・137 57 パスワード付きで全シートを保護するプロシージャと解除プロシージャ、 InputBox ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 138 58 パスワードを特定のシートに見えないように保存する、パスワード付きで 全シートを保護するプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・141 59 パスワード記録シートを自動的に不可視にするプロシージャ ・・・・・・・・・・・・・・・・・145 25 contents : 26 2000/1/31 (15:12) 目次 60 フォームキャプションの指定可能な汎用パスワード入力ユーザーフォーム モジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・145 61 汎用パスワード入力ユーザーフォームモジュールを使った全シート 保護プロシージャと保護解除プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 148 62 汎用パスワード入力ユーザーフォームモジュールを使った、パスワードを 特定のシートに見えないように保存する、パスワード付きで全シートを 保護するプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・150 63 ブックを開くときに作業用シート以外を保護する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・152 セルのプロパティ、相対参照、With文、 7章 セル参照と値の入力、 オブジェクト変数、 セル範囲入力 64 セル参照の基本ステートメント集 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・155 65 セル操作とプロパティのデモンストレーション、AutoFill 、パーセント表示 ・・・・・・・・ 158 66 相対参照のデモンストレーション ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・160 67 With 文による ActiveCell 省略の正しい例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・163 68 With 文による ActiveCell 省略の誤った例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・165 69 Range 型オブジェクト変数の使用例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 167 70 [ キャンセル]ボタン無対応の InputBox メソッドによるセル範囲取得 ・・・・・・169 71 [ キャンセル]ボタン対応の InputBox メソッドによるセル範囲取得 ・・・・・・・・・172 72 [ キャンセル]ボタン対応の汎用セル番号取得関数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 173 73 [ キャンセル]ボタン対応の汎用セル番号取得関数のテスト ・・・・・・・・・・・・・・・・・・174 74 [ キャンセル]ボタン対応の汎用セル番号取得のクラスモジュール ・・・・・・・・・・ 176 75 [キャンセル]ボタン対応の汎用セル番号取得のクラスモジュールのテスト ・・・・ 178 テンプレート作成、 8章 セルポインタ移動、 Array関数、 配列スキャン、 行列見出し、 簡易外枠、 複数セル範囲 76 Enter を押したときのセルポインタ移動方向選択プロシージャ ・・・・・・・・・・・・・・ 181 77 上方向、左方向セルポインタ移動方向選択プロシージャ ・・・・・・・・・・・・・・・・・・・・・・183 78 Array 関数による配列初期化と For∼Each∼Next によるスキャンを使った テンプレート作成、相対参照と Select によるセル移動 ・・・・・・・・・・・・・・・・・・・・・・・ 184 79 行見出し作成プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・186 contents : 2000/1/31 (15:12) 目次 80 列見出し作成プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・187 81 行/列見出し作成プロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・188 82 入力範囲の右端で左端に折り返すプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 190 83 プロシージャ内で呼ぶセルポインタ移動プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・ 192 84 プロシージャ内で呼ぶセルポインタを n 個移動するプロシージャ ・・・・・・・・・・・ 193 85 アクティブセルに外枠を描く簡易外枠プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・194 86 複数セル参照と簡易外枠のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・195 87 Union による離れた複数セル参照のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 197 88 複数セル範囲のスキャンテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 198 89 Union による複数セル範囲のスキャンテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・200 90 機能停止可能な入力範囲の右端で左端に折り返すプロシージャ ・・・・・・・・・・・・・・201 9章 イベントプロシージャ制御、文字列入力、ツールバー対応、 日付と時刻の関数/演算 Format関数、 91 イベントプロシージャの有効/無効切り替え ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・205 92 イベントプロシージャの有効/無効チェック ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 207 93 セルへの文字列入力プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・208 94 文字列入力と Format 関数、日付/時刻のシリアル値のテスト ・・・・・・・・・・・・・・・209 95 [ 書式設定]ツールバーのボタン対応ステートメントのテスト ・・・・・・・・・・・・・・・ 211 96 Date 型変数のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 215 97 日付と時刻の関数/演算テスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 217 98 1∼7 の曜日数字を日本語の曜日に変換 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・219 99 日本語曜日変換のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 220 100 日本語曜日変換と曜日見出し作成クラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・221 101 日本語曜日変換と曜日見出し作成クラスを使った曜日見出し作成テスト ・・・・・・ 223 102 ワークシートを開いたときのタイムスタンプ表示のイベントプロシージャ ・・・・ 225 27 contents : 28 2000/1/31 (15:12) 目次 セル範囲の内容コピー、 セル使用範囲、 10章 セルへの数式入力、 セル値読み出し、 数式表示、 シート選択 103 セルへの数式入力の基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・227 104 クリップボードを介したセル値コピー ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 228 105 Copy メソッドによる直接コピー ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 230 106 CurrentRegion による自動範囲選択コピー ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・231 107 CurrentRegion と UsedRange の比較 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 232 108 End プロパティと SpecialCells(xlCellTypeLastCell) のテスト ・・・・・・・・・・・・・・233 109 Value プロパティによるセル値読み出しと代入のテスト ・・・・・・・・・・・・・・・・・・・・・235 110 Text プロパティによるセル値読み出しと Value プロパティへの代入のテスト ・・・・・237 111 Formula プロパティによるセル値読み出しと Value プロパティへの代入の テスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・238 112 IsNumeric 関数で判別しコピー方法を変えているプロシージャ ・・・・・・・・・・・・・239 113 Formula プロパティを引数とした IsNumeric 関数で判別しコピー方法を 変えているプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・241 114 先頭 0 の数値は直接コピーする IsNumeric 関数で判別しコピー方法を 変えているプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・242 115 ワークシート全体を数式表示にするプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 244 116 ワークシート全体を数値表示にするプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 245 117 数値のみをピックアップして演算し、ほかのシートにコピーするプロシージャ ・・・・246 118 “ 数式表示 ”ワークシートを開くと、Sheet1 をコピーして数式表示にする ・・・・247 119 シートの数値表示/数式表示判別プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・249 120 シート選択プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・251 121 シート選択プロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 253 122 選択したシートの内容を“ テスト用 ”シートにコピーして数式表示にする ・・・・・256 123 シート選択クラスモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・257 124 シート選択クラスモジュールのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 259 125 クラスモジュールを使った選択したシート内容の“ テスト用 ”シートコピー と数式表示 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 260 126 シートを開くとシート選択 InputBox を開き、対象シートをコピーして 数式表示する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・261 contents : 2000/1/31 (15:12) 目次 11章 日付計算、列番号変換、数式入力、セルポインタ移動制限、 セル保護、 ふりがな 127 DateAdd 関数による日付計算のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 263 128 数字の列番号を文字の列番号に変換する関数プロシージャ ・・・・・・・・・・・・・・・・・・265 129 数字の列番号を文字の列番号に変換する関数プロシージャのテスト ・・・・・・・ 266 130 Address メソッドによる数字の列番号を文字の列番号に変換する関数 プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・267 131 Address メソッドによる数字の列番号を文字の列番号に変換する関数 プロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 269 132 行列変更対応の入力範囲の右端で左端に折り返すプロシージャ ・・・・・・・・・・・・・270 133 CurrentRegion を使った行列変更対応の入力範囲の右端で左端に折り返す プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・273 134 ワークシート“ 営業所予算計画書 ”のデータセルのみ保護を解除して 入力可能とし書式、数式を設定するモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・277 135 ワークシート“ 営業所予算計画書 ”のセル移動方向を設定するモジュール ・・・・・280 136 セル範囲可変のワークシート“ 営業所予算計画書 ”の書式、数式を 設定するモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 280 137 予算計画書のテンプレート作成モジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 283 138 セル移動範囲を限定した予算計画書のテンプレート作成モジュール ・・・・・・・ 284 139 行数を可変にしたセル移動範囲を限定した予算計画書のテンプレート 作成モジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 286 140 漢字が入力されている列のふりがな表示非表示セレクト ・・・・・・・・・・・・・・・・・・・・ 287 141 漢字が入力されている列の右側に、ふりがな列を加えるプロシージャ ・・・・・289 142 ふりがな列を削除するプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・291 143 漢字が入力されている列の右側に列を加え、ふりがな関数を入力する プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・292 定数の型変換、 12章 各種罫線と外枠、 Array関数、 罫線カラー For∼Eachによる配列/セル/行スキャン、 144 アクティブなセル範囲に実線の罫線を引く ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 295 145 罫線描画のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・297 146 アクティブなセル範囲に外枠を引く( 内部消去と内部保存)・・・・・・・・・・・・・・・・・299 29 contents : 30 2000/1/31 (15:12) 目次 147 外枠描画のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・300 148 引数のセル範囲に実線の罫線を引く ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・302 149 引数のセル範囲に実線の罫線を引くテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 303 150 引数のセル範囲に実線の外枠を引く ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・305 151 引数のセル範囲に実線の外枠を引くテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 306 152 線種指定の罫線描画プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 307 153 線種を変えた罫線描画テスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・308 154 Array 関数と For∼Each による配列スキャンを使った罫線テスト、 定数の型変換 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・311 155 罫線テスト用のデータシート作成と VBA の定数のセル入力テスト ・・・・・・・・・313 156 ワークシートの全データセルスキャンによる罫線テスト ・・・・・・・・・・・・・・・・・・・・ 315 157 ワークシートのデータ行スキャンによる罫線テスト ・・・・・・・・・・・・・・・・・・・・・・・・・・316 158 線種指定の外枠描画プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 317 159 線種指定の外枠描画プロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 318 160 セル内部の RGB カラーの基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・320 161 セル内部の 16 進カラーの基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・322 162 パレット番号カラーの基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 323 セル枠線/セル内部カラー、 カタカナふりがな、 13章 文字カラー、 中間色、 Enumカラー定数 163 文字カラーの基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・325 164 セル枠線カラーの基本 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 327 165 アクティブセルに色指定の罫線を引く ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 328 166 色指定罫線のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 329 167 ふりがな列と着色列の作成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 332 168 カタカナふりがな列のひらがなへの変換 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・334 169 カタカナふりがな列の半角カタカナへの変換 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 335 170 中間色コードテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 337 171 Enum 宣言による RGB 定数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 338 172 Enum 宣言による RGB 定数のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・340 173 セルクリアと枠線、罫線消去のクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 342 contents : 2000/1/31 (15:12) 目次 174 カラー Enum 定数とセル枠/セル内部/外枠/文字の着色メソッドのクラス ・・・・・ 344 175 罫線消去、枠線、カラーのクラスのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 345 176 カラー罫線のクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 349 177 カラー罫線のクラスのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・349 178 カラー外枠のクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 351 179 罫線とカラー外枠のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 352 180 Enum 定数を使った文字色テスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・354 181 データ入力セルの色区分 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・356 数値/数式区分、 データ抽出、 14章 行列変換、 Fillメソッド、 抽出行数カウント 領域とAreas、 182 行と列の交換 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・359 183 Fill ステートメントのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・360 184 数値セルと数式セルを区分して色を変える ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 362 185 “ 帳票送付控え”から“ テスト用”にコピーし“ 横浜”のレコードを抽出する ・・・・・・ 365 186 “ 帳票送付控え ”から“ テスト用 ”にコピーし“ 横浜 ”と“ 名古屋 ”の レコードを抽出する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 367 187 “ テスト用 ”シートに抽出した行を“ 抽出結果 ”シートにコピーする ・・・・・・ 368 188 領域と Areas のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・370 189 可視領域と Areas のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・373 190 引数で渡したセル範囲を含む使用領域に表示されている行数を返す関数 ・・・・・・ 377 191 引数で渡したセル範囲を含む使用領域に表示されている行数を返す関数 のテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 378 192 “ 帳票送付控え ”から“ テスト用 ”にコピーし、InputBox で選択した セルの項目の行を抽出する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 380 ソートのクラスモジュール、 15章 昇順/降順ソート、 重複レコードの削除、 ワークシート関数 193 昇順ソートプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・383 194 昇順ソートプロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 384 195 見出しのないワークシートの昇順ソートプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・ 386 31 contents : 32 2000/1/31 (15:12) 目次 196 見出しのないワークシートの昇順ソートプロシージャのテスト ・・・・・・・・・・・・・387 197 降順ソートプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・388 198 降順ソートプロシージャのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 389 199 見出しのないワークシートの降順ソートプロシージャ ・・・・・・・・・・・・・・・・・・・・・・・ 390 200 見出しのないワークシートの降順ソートプロシージャのテスト ・・・・・・・・・・・・・391 201 見出し付きシートの昇順ソートのクラスモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・392 202 見出し付きシートの昇順ソートのクラスモジュールのテスト ・・・・・・・・・・・・・・・ 394 203 重複レコードの削除 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 396 204 ワークシート関数テストのシートモジュール ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 397 (シェイプ ) 、 コンボボックスの配置と設定、 16章 テキストボックス コンボボックスからセルへのデータ移動 205 アクティブなシートの左上にテキストボックスを配置する ・・・・・・・・・・・・・・・・・・405 206 アクティブなシートの左上に縦書きテキストボックスを配置する ・・・・・・・・・・ 407 207 アクティブなシートに n 番目のテキストボックスを配置するプロシージャ ・・・・408 208 アクティブなシートに 1 番目のテキストボックスを配置するプロシージャ ・・・・409 209 アクティブなシートに n 番目の縦書きテキストボックスを配置する プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・410 210 アクティブなシートに 2 番目の縦書きテキストボックスを配置する プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・411 211 アクティブなシートにあるテキストボックスをチェック ・・・・・・・・・・・・・・・・・・・・・412 212 アクティブなテキストボックスの位置とサイズを変えるプロシージャ ・・・・・415 213 テキストボックスの位置とサイズを変えるプロシージャを使ったアクティブ なシートに 1 番目のテキストボックスを配置するプロシージャ ・・・・・・・・・・・・ 416 214 テキストボックスの位置とサイズを変えるプロシージャを使ったアクティブ なシートに 2 番目のテキストボックスを配置するプロシージャ ・・・・・・・・・・・・ 417 215 使い方説明のテキストボックスを表示 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 418 216 コンボボックスからセルへのデータ移動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・419 217 コンボボックスからセルへ移動したデータの転送イベントプロシージャ ・・ 422 218 [ 帳票名]コンボボックスからセルへのデータ移動 ・・・・・・・・・・・・・・・・・・・・・・・・・・・423 contents : 2000/1/31 (15:12) 目次 17章 コマンドボタン、データ抽出、オプションボタン、チェックボックス、 スピンボタン、 リストボックス、Findメソッド、ランチャ 219 コマンドボタン、抽出状態の解除 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 427 220 オプションボタンによる範囲指定の回収率の抽出 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 429 221 チェックボックスと回収率のコピーとソート ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・432 222 スピンボタンで範囲を指定する回収率の抽出 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 434 223 リストボックスによる庁舎所在地サーチ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・437 224 リストボックスによる都道府県名サーチ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・439 225 抽出したデータ中のリストボックスで選択した地区数をカウントする ・・・・・440 226 リストボックスで選択した地区をマーキングする ( Find メソッドと FindNext メソッドによるサーチ)・・・・・・・・・・・・・・・・・・・・・・・・・ 445 227 リストボックスによるマクロランチャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 449 ユーザーフォーム、 18章 InputBox関数、 IMEモード、 モードレス、 コンボボックス Filter関数、 228 UserForm による入力 Box との比較のための InputBox 関数テスト ・・・・・・・・ 453 229 IME モードのモニタがある文字列入力用ユーザーフォーム ・・・・・・・・・・・・・・・・・・454 230 IME モードのモニタがある文字列入力用ユーザーフォームによる入力テスト ・・・・・・457 231 Filter 関数と文字列入力用ユーザーフォームによるデータ抽出テスト ・・・・・・460 232 IME 切り替え付き文字列取得ユーザーフォーム ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・464 233 IME 切り替え付き文字列取得ユーザーフォームのテスト ・・・・・・・・・・・・・・・・・・・・ 467 234 モードレスで使え移動方向が選択できる IME 切り替え付き文字列取得 ユーザーフォーム ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・469 235 モードレス/移動方向選択の IME 切り替え付き文字列取得ユーザー フォームのテスト ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・472 236 コンボボックスのリストデータで入力できるユーザーフォーム ・・・・・・・・・・・・・474 237 コンボボックスのリストデータで入力できるユーザーフォームのテスト ・・・・・・ 477 33 contents : 34 2000/1/31 (15:12) 目次 19章 印刷と印刷プレビュー、 Wait案内フォーム、 指定ページ印刷、 列幅統一、 横方向縮小印刷 238 印刷と印刷プレビューテストのための面積換算表作成 ・・・・・・・・・・・・・・・・・・・・・・・ 479 239 面積換算表の手操作設定による印刷プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 482 240 面積換算表の手操作設定による印刷プレビュープロシージャ ・・・・・・・・・・・・・・・ 484 241 InputBox で範囲を設定する印刷プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・485 242 InputBox で範囲を設定する印刷 Preview プロシージャ ・・・・・・・・・・・・・・・・・・・・・・486 243 ページ設定/復元用 Wait 案内フォーム ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・487 244 面積換算表印刷プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・488 245 面積換算表印刷 Preview プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・490 246 指定ページのみを印刷するためのユーザーフォーム ・・・・・・・・・・・・・・・・・・・・・・・・・・492 247 ユーザーフォームを使った指定ページ印刷 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 494 248 選択したセルの右以降の列幅を選択したセルの列幅に変えるプロシージャ ・・・・ 497 249 現在のプリンタ設定を保存/復元して A4 用紙横方向に縮小印刷する ・・・・・ 499 グラフシート削除、 20章 グラフシート作成、 埋め込みグラフ作成、 グラフの印刷 250 確認メッセージなしでグラフシートを削除 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 503 251 グラフシート作成プロシージャ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 504 252 埋め込みグラフの削除 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 507 253 埋め込みグラフの作成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 507 254 位置とサイズを指定した埋め込みグラフ作成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 509 255 データの行列を変換したグラフ作成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・511 256 埋め込みグラフの印刷 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 512 索 引 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 515