So-net無料ブログ作成

本のベストセラー

例題30+演習問題70でしっかり学ぶ ExcelVBA標準テキスト [プログラミング]

Excel2007 2010 対応のマクロとVBAの解説書。
サンプルファイルはダウンロードして無料で使えるが再転載と、2次利用は制限される。定型の仕事を自動化するためにマクロとVBAを活用しよう。またExcelVBAエキスパートの学習用として使える。
機能の解説をしながら、例題と応用問題を解いていく形式。

1.マクロを記録する方法。
記録したマクロをコントロールキーやコマンドボタン、図形、リボンやクイックアクセスツールバーで実行する方法。
マクロの名前を変更する、削除する方法。
自動記録したマクロは実際にはVBAコードで記録される。
マクロの不便な点
・自動記録したマクロコードは冗長
・変数や配列VBA関数は使えない
・IF文などが使えない。
・ユーザーフォームが利用できない
・すべてのファイル処理には対応していない。(特定のファイルを開くだけならできる)

オブジェクト・・・VBAから操作の対象となるもの
 アプリケーション(Application)→ブック(Workbook)→ワークシート(Worksheet)→セル(Range)
コレクション・・・同一の種類または異なる種類の複数のオブジェクトの集まり。
プロパティ・・・セルの書式、編集の可否、ワークシートの表示非常を定義したオブジェクトの属性情報。
メソッド・・・オブジェクトが行う動作
イベント・・・オブジェクトから認識される動作。マウスクリックなど。


2.変数・配列ステートメント
変数のデータ型解説、定数解説、名前付け規則解説
Option Explicit→宣言してある場合、Dim宣言なしで変数を使うことはできない。

配列の宣言、インデックス番号、使い方解説。
動的配列(ReDim)による、データ数がわからない場合の変数の取り方解説。
多次元配列解説。
VBAではワークシートのセルでデータを管理する方が簡単なこともある。

ステートメント解説
If~Thenステートメント解説。ワークシート関数でもできるが、条件を細かく分岐させるときにはVBAコードの方が便利。
Select~Caseステートメント解説。分岐の多いとき使う。
For~Nextステートメント解説。繰り返し処理で使う。
Do~Loopステートメント解説。Forとの違いは繰り返しの回数を指定するのではなく、条件式で繰り返しを制御すること。このとき条件式を間違えて無限ループに陥った時には、Esc、Ctrl+Break、Ctrl+Alt+Deleteいずれかで止められる。

3.プロシージャとVBA関数
プロシージャ・・・VBAコードで書かれたマクロの実行単位。
Subプロシージャ=引数がとれるが。戻り値がない
Functionプロシージャ=引数がとれて、戻り値がある。
VBA関数=VBAモジュールのコードに記述されて使用される関数。Excelのワークシート関数と全く同じものがあるわけではないし、書式がちがうこともあるので注意。一覧表があった。
ワークシート関数呼び出し→Application.WorkSheetFunctionプロパティを使う。ただしすべてのワークシート関数が利用できるわけではない。
Functionプロシージャでユーザー定義関数を作り、VBAのコードだけでなく、Excelのワークシートのセルからも利用できる。
ワークシートのセルにワークシート関数を記述する→Application.Formulaプロパティ

日付・時刻の操作
日付・時刻操作関数解説。
Excelのシリアル値=1900年1月1日を1とする。時刻は小数部分で表す。
西暦を和暦に変換する関数→Format(Date, "ggge年m月d日)

文字列操作
文字列操作関数解説。

数値操作
数値操作関数解説。
Round=指定した小数点位置で丸めた数値を返す。指定がないと整数を返す。

Format関数で書式を操作する方法解説。
MsgBoxでユーザーにメッセージを表示する方法
InputBox関数でユーザが値を入力する方法
その他のVBA関数一覧。

ユーザー定義関数で処理をする方法。
ユーザー定義のFunction関数をアドインとしてExcelに登録すると、他のExcelファイルからもFunctionプロシージャを利用できる。


4.セル操作
Rangeプロパティ→セルまたはセル範囲を指定できる。
Cell→一つのセルしか指定できない。
セルを選択する→Activeメソッド、Selectメソッド
相対的なセルの位置を選択する→Offsetメソッド
行を選択する→Rowsプロパティ
列を選択する→Columnsプロパティ
Rangeオブジェクト.Rowsで選択範囲のすべての行。
セルに値を入力する→Valueプロパティ
セルに数式を入力する→Formulaプロパティ
相対参照と絶対参照の解説。
表全体を選択する→Rangeオブジェクト.CurrentRegionプロパティ
指定されたセルを選択する→Rangeオブジェクト.SpecialCellsメソッド

セルとセル範囲のコピーと消去
方法は、直接とクリップボード利用がある。
Copy、Paste、Cutメソッド解説。
書式を残して値を消去する方法→ClearContentsメソッド
Cellsプロパティでコピーされるのは値のみ。

セルの書式設定プロパティやwithステートメント解説。
文字列の折り返し→セルに合わせて折り返す場合はWraptext、任意の場所で折り返したいときんはChr関数を使う。
セルのデータに合わせて行の高さと列の幅を変更したい→Autofitメソッド
罫線を操作するプロパティ解説。

行と列やセル範囲の挿入と削除の方法解説。
Insert、Deleteメソッド。

行と列の非表示と再表示方法解説。
Hiddenプロパティ

エラーが発生したときの方法
On Error Go Toステートメント解説。
On Error Resume Nextステートメント解説。エラーが起きても無視して続ける、その後の動作に注意


5ワークシートの操作
ワークシート選択、名前変更、見出し色変更方法解説。
ワークシートがアクティブになったときの処理は対応するイベントプロシージャに記述する。作成方法を解説。
ワークシートをグループ化しておくと、複数のワークシートに同じデータ入力をする場合などに便利。Array関数を使う方法を解説。

ワークシートの追加と削除の方法解説。
Add,Delete, ActiveSheetプロパティ解説。

ワークシートの移動とコピー方法解説。
Copyメソッド、Moveメソッド。
セルの串刺し計算→合計額のワークシートに各月のワークシートの合計を計算するような場合。

ワークシートの非表示と再表示をする方法解説。
Visibleプロパティ解説。
Visibleでは組込み定数を使う。これはVBAのどこでも使える。

ワークシートの保護と解除の方法
Protect、Unprotectメソッド→ワークシートの保護と解除
Lockedプロパティ→セルのロック
FormulaHiddenプロパティ→数式を非表示にする。
その他VBAコードにパスワードをかけることもできる。

ワークシートの印刷方法解説
PrintOutメソッド→プリンターへの出力。パラメータとしてとれる値一覧。
セル範囲の印刷方法→Range.PrintOutメソッド
余白調整や、ヘッダ、フッタの印刷方法解説。
PDFファイルとして出力する方法を解説。


6.ワークブックとファイルの操作
ワークブックを開く→Openメソッド。カレントフォルダ解説。
ワークブックの選択や追加、保存のメソッド解説。
ワークブックを閉じる→Closeメソッド
ワークブックのイベントプロシージャ記述方法解説。

データファイルへの保存と読み込み
ワークブックのデータを他の形式のファイルに保存する方法
他の形式のファイルのデータをワークシートで開く方法
テキストファイルとCSVファイルの解説。
CSVファイルを扱うときには必ずカレントフォルダを使う。

VBAのヘルプの使い方解説
VBEメニューバーの「ヘルプ」から「Microsoft Visua Basic Applicationヘルプ」を選ぶと、「Excel2010 開発者用リファレンス ヘルプと使い方」が起動する。


7.データベース処理
Findでデータを検索する
Findメソッドでセル範囲のデータの検索方法。
データの完全一致、部分一致などをしていできるパラメータ一覧。
Findでは最初のレコードがみつかったら処理をやめてしまう。

Sortでデータを並べ替える。
Sortオブジェクトでセル範囲のデータの並べ替え・・・リボンの並べかえと同じ
Sortメソッドによるセル範囲のデータの並び替え・・・並べ変えのキーが3個までならSortオブジェクトよりコードが簡単になる。
ディフォルトでは元データが並びかえられてしまうので、並べ替える前のデータがいる場合は、元に戻せるようにしておく。

Filterでデータを抽出する
AutoFilterメソッドで、オートフィルターによるデータを抽出する方法
Selection.AutoFilterでオートフィルターの解除する方法
AdvancedFilterメソッドで、検索条件によるデータの抽出をする方法
抽出結果を別シートに出すようにしておけば、結果がない場合はなにも表示されないだけで元データに変更が加わらない。
抽出中に重複するレコードを除くには→Unique:=Trueオプション

Subtotalでデータを集計する
Subtotalメソッドでセル範囲の集計方法
Functionパラメータで、合計、平均、件数を集計する方法
RemoveSubtotalメソッドでセル範囲の集計を解除
Consolidateメソッドは複数のワークシートにある負数のセル範囲を1枚のワークシートの1つのセル範囲に統合する。この方法で串刺し計算ができる。

モジュール(SubやFunction)のエクスポート、インポートをして、他のExcelファイルでも使う方法。

8総合問題
名簿のデータをカード形式で管理する。
請求書と売り上げ明細データから売上帳と売り上げ集計表を作成する。
入庫と出庫のデータから在庫受払表と在庫残高表を作成する。

Tips
ワークシート画面の更新をコントロールするプロパティ→ScreenUpdating
セルに関数を設定しなければ、登録がない商品でも直接データを入力できる。
ワークシート関数も効率を考えて利用する。

次の学習ステップ
・ユーザ定義関数
・インターネットでのホームページの表示とメールの送信。
・画像データの処理
・ピボットテーブルとグラフ
・ADOライブラリー
・FileSystemObject(ドライブやフォルダ)
・クラスモジュール、よりオブジェクト指向に近いVBAコードが書ける。
・XMLファイル Excel2007以降で作成するExcelファイルはすべてXML形式である。


例題30+演習問題70でしっかり学ぶ ExcelVBA標準テキスト Excel2007/2010対応版

例題30+演習問題70でしっかり学ぶ ExcelVBA標準テキスト Excel2007/2010対応版

  • 作者: 近田 順一朗
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/04/19
  • メディア: 大型本



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

トラックバック 0


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。