1部 エクセルマクロ&VBA...

2
004 プログラミングの 基本編 Excelマクロの基本を理解する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6 実践編 実用マクロでExcel VBAを学ぶ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 16 コレクションの扱いがExcelプログラミングのキモ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 76 コレクション/変数の定義と制御構文 関数呼び出しやイベント処理で実用アプリケーションを作ってみる ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 82 お小遣い帳アプリの作成/保存したデータを集計・分析する VBAで繰り返しを効率化! 便利技アレコレ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 92 Webサービス連携で広がるOfficeの世界 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 102 1 エクセルマクロ&VBA 徹底活用 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6 Part1 Excelの複数の操作を一度に実行する「マクロ」機能 ・・・・・・・・・・ 6 マクロ作成の準備を行う ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8 マクロのコードを確認する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 10 マクロのコードを編集する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 12 Part2 漢字にまとめてふりがな情報を設定する ・・・・・・・・・・・・・・・・・・・・・・・・・・ 16 表示中のシートだけを新規ファイルにする ・・・・・・・・・・・・・・・・・・・・・・・ 18 日付を曜日が付いた書式に変更する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 19 写真番号をクリックし対応する写真を自動表示 ・・・・・・・・・・・・・・・・・ 20 指定したフォルダー内のファイル一覧を作成する ・・・・・・・・・・・・・・ 22 ワークシートで利用する関数を自作する ・・・・・・・・・・・・・・・・・・・・・・・・・・ 24 2 基本から学ぶExcel VBA ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 26 初級編 第1回 「マクロ」とは何か、「VBA」とは何か ・・・・・・・・・・・・・・・・・ 27 第2回 「基本2文型」と「変数」の使い方を押さえよう ・・・・・ 31 第3回 マクロ制御の定番「条件分岐」と「繰り返し」 ・・・・・・・ 35 第4回 「関数」を使って複雑なデータ処理を実現 ・・・・・・・・・・・・・ 39 第5回 「範囲」「条件」「処理」の3要素を考える ・・・・・・・・・・・・・・ 43 第6回 セルの「コピー」をマスターする ・・・・・・・・・・・・・・・・・・・・・・・・ 47 中級編 第1回 「Select Case」で複数の条件分岐を実現 ・・・・・・・・・・・・・ 51 第2回 マクロでワークシート関数を使う ・・・・・・・・・・・・・・・・・・・・・・・・ 55 第3回 「オブジェクト型変数」を活用する ・・・・・・・・・・・・・・・・・・・・・・・ 59 第4回 複数の値を入れられる「配列」の基礎 ・・・・・・・・・・・・・・・・・・ 63 第5回 “エラー対策”の基本を身に付ける ・・・・・・・・・・・・・・・・・・・・・・・ 67 第6回 ブックを次々と開いて操作する ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 71 3 とことん実践!Excelプログラミング ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 75 Part1 Part2 4 Offi ceを操る実用技 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 90 Part1 ファイル情報の一覧をワンクリックで作成/PowerPointのスライドからテキストを抽出/複数のOffice文書をまとめてPDF 化/Excelのワークシート関数を自作/Excelのリストに従ってメールを一斉送信/ExcelからAccessデータベースにアクセス Part2 Excelでフィードをまとめ読み/Web APIでヤフオク! の出品リストを得る/はてなブックマークのブックマーク数を監視/ JavaScriptライブラリをコンポーネント化 基礎知識から少し実 用的な使い方まで、 マクロ(VBA)の全 体像を解説します。 VBAの文法や構文 を基本からじっくり 学びたい人に向けた 基礎講座です。 より実践的なコードを 通じて、コレクション などの重要な概念を学 びます。 Excelを中心としたOffice製 品 を、VBAや外部アプリで操作す るテクニックを紹介します。

Transcript of 1部 エクセルマクロ&VBA...

004 005

プログラミングの

基本編 Excelマクロの基本を理解する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・6

実践編 実用マクロでExcel VBAを学ぶ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・16

コレクションの扱いがExcelプログラミングのキモ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・76コレクション/変数の定義と制御構文

関数呼び出しやイベント処理で実用アプリケーションを作ってみる ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・82お小遣い帳アプリの作成/保存したデータを集計・分析する

VBAで繰り返しを効率化! 便利技アレコレ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・92

Webサービス連携で広がるOffi ceの世界 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・102

第1部 エクセルマクロ&VBA 徹底活用 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・6Part1Excelの複数の操作を一度に実行する「マクロ」機能 ・・・・・・・・・・ 6マクロ作成の準備を行う ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8

マクロのコードを確認する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 10マクロのコードを編集する ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 12

Part2漢字にまとめてふりがな情報を設定する ・・・・・・・・・・・・・・・・・・・・・・・・・・ 16表示中のシートだけを新規ファイルにする ・・・・・・・・・・・・・・・・・・・・・・・ 18日付を曜日が付いた書式に変更する・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 19

写真番号をクリックし対応する写真を自動表示 ・・・・・・・・・・・・・・・・・ 20指定したフォルダー内のファイル一覧を作成する ・・・・・・・・・・・・・・ 22ワークシートで利用する関数を自作する ・・・・・・・・・・・・・・・・・・・・・・・・・・ 24

第2部 基本から学ぶExcel VBA ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・26初級編第1回 「マクロ」とは何か、「VBA」とは何か ・・・・・・・・・・・・・・・・・ 27第2回 「基本2文型」と「変数」の使い方を押さえよう ・・・・・ 31第3回 マクロ制御の定番「条件分岐」と「繰り返し」 ・・・・・・・ 35

第4回 「関数」を使って複雑なデータ処理を実現 ・・・・・・・・・・・・・ 39第5回 「範囲」「条件」「処理」の3要素を考える ・・・・・・・・・・・・・・ 43第6回 セルの「コピー」をマスターする ・・・・・・・・・・・・・・・・・・・・・・・・ 47

中級編第1回 「Select Case」で複数の条件分岐を実現 ・・・・・・・・・・・・・ 51第2回 マクロでワークシート関数を使う ・・・・・・・・・・・・・・・・・・・・・・・・ 55第3回 「オブジェクト型変数」を活用する ・・・・・・・・・・・・・・・・・・・・・・・ 59

第4回 複数の値を入れられる「配列」の基礎 ・・・・・・・・・・・・・・・・・・ 63第5回 “エラー対策”の基本を身に付ける ・・・・・・・・・・・・・・・・・・・・・・・ 67第6回 ブックを次々と開いて操作する ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 71

第3部 とことん実践! Excelプログラミング ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・75Part1

Part2

第4部 Offi ceを操る実用技 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・90Part1ファイル情報の一覧をワンクリックで作成/PowerPointのスライドからテキストを抽出/複数のOffi ce文書をまとめてPDF化/Excelのワークシート関数を自作/Excelのリストに従ってメールを一斉送信/ExcelからAccessデータベースにアクセス

Part2Excelでフィードをまとめ読み/Web APIでヤフオク! の出品リストを得る/はてなブックマークのブックマーク数を監視/JavaScriptライブラリをコンポーネント化

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・基礎知識から少し実用的な使い方まで、マクロ(VBA)の全体像を解説します。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・VBAの文法や構文を基本からじっくり学びたい人に向けた基礎講座です。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

とことん実践! Excelプログラミング ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・より実践的なコードを通じて、コレクションなどの重要な概念を学びます。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・Excelを中心としたOffi ce製品を、VBAや外部アプリで操作するテクニックを紹介します。

004-005_ExelVBA_TER_03.indd 4 2014/03/19 12:10

004 005

外部アプリからExcelデータを簡単操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・110

●セルの操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・126セルをコピーするには?/セルの値だけをコピーするには?/セルのデータを取得するには?/日付のシリアル値を取得するには?/セルに表示形式を設定するには?/セルに色を設定するには? etc.

●計算・データ処理・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・133セルに数式を入力するには?/セルが数式かどうか調べるには?/数式がエラーかどうか調べるには?/複数のセルに同じ数式を入れるには?/単位が付いた数値を計算するには?/文字種を変換するには? etc.

●ブックとシートの操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・138ブックを開くには?/確認画面なしでブックを閉じるには?/名前を付けて保存するには?/ブックのパスを取得するには?/シートをコピーするには?/シートを削除するには?/シートを印刷するには? etc.

●ファイルの操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・142ファイルをコピーするには?/ファイル名やフォルダー名を変えるには?/ファイルを削除するには?/ファイルの存在を確認するには?/ファイルの一覧を作成するには?/フォルダーを作成するには? etc.

●図形の操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・146図形を挿入するには?/図形の名前を設定・取得するには?/線を引くには?/矢印を引くには?/線のスタイルや太さを変えるには?/線の色を設定するには?/図形の色を設定するには? etc.

●グラフの操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・150好みの種類のグラフを挿入するには?/大きさを指定して挿入するには?/グラフにタイトルを追加するには?/凡例を表示するには?/データラベルを表示するには?/系列の色を設定するには? etc.

●ユーザーフォームの操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・155ユーザーフォームを作るには?/ユーザーフォームを表示するには?/ユーザーフォームを閉じるには?/ユーザーフォームを隠すには?/タイトルバーを設定するには?/ラベルに文字列を表示するには? etc.

●その他のテクニック ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・161条件に応じて処理を分岐するには?/複雑な条件分岐をするには?/処理を繰り返すには?/同じ対象に複数の処理を施すには?/エラーを無視するには?/マクロを強制終了するには? etc.

Part3PHPアプリからExcelを操作する(COM関数)/PHPアプリからExcelを操作(PHPExcel)/PHPアプリからExcelをデータベースとして操作/JavaアプリからOffi ceファイルを操作/WSHスクリプトからExcelを操作する/.NET FrameworkでExcelアドインを開発/PowerShellからExcelを操作

第5部 Excel VBA実用文例集 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・124

第6部 Offi ce用アプリ開発入門 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・166前編 Offi ce用アプリとは何か ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 167 後編 はじめてのOffi ce用アプリ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 172

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

よく使う操作を実現するためのコード集です。リファレンスとしてお使いください。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

VBAに続く新しいOffi ceのプログラミング機能をちょっとだけ紹介します。

第1部~第4部および第6部のサンプルコードを、日経ソフトウエアのWebサイトからダウンロードできます。

http://software.nikkeibp.co.jp/

004-005_ExelVBA_TER_03.indd 5 2014/03/19 12:10