ExcelVBAマクロ組み方講座 プロの定番・裏技・合わせ技[編]

[表紙]ExcelVBAマクロ組み方講座 プロの定番・裏技・合わせ技[編]

紙版発売

B5変形判/432ページ/CD1枚

定価3,278円(本体2,980円+税10%)

ISBN 4-7741-2191-6

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

ご好評の「Excel VBA マクロ組み方講座」の続編です。今回は仕事の現場で,そのまま使えるサンプルを多数揃えました。定番の技から,プロならではの裏技・合わせ技を紹介し,より実用的な内容になっています。また,目的別なっており,やりたいことから学習できます。

こんな方におすすめ

  • 仕事でExcelを使っている方
  • 目的別にExcel VBAを学習したい方

目次

第1章 プロの手法を身につけよう

  • 1 本書の構成と学習目標
    • 1-1 本書の構成と学習目標
    • 1-2 学習環境の整え方
    • 1.「きらめき」フォルダを整える
    • 2. サンプルブックの使い方
    • 1-3 サンプルマクロの試し方
  • 2 VBAの長所と活用策
    • 2-1 頼もしい味方!Excel VBA
    • 1. 変数の宣言について
    • 2. オブジェクトの参照について
    • 2-2 変数とサブプロシージャのネーミング
    • 2-3 英数字による変数などのネーミング
    • 2-4 Excel VBAのWindows版とMacintosh版での相違点
    • 2-5 WindowsパソコンとMacintoshの混在環境用システム開発の留意点

第2章 シートを自在に操ろう

  • 1 セル・行・列を操作したい
    • 1-1 セル・行・列を選択したい
    • セル範囲・行・列を指定して選択する
    • 条件を満たすセル範囲を選択する
    • セル範囲を選択する特殊な方法
    • セルアドレス・行列番号・行列数を取得する
    • A1形式の列名をR1C1形式の列番号に変換する
    • 同一ブック内のほかのシートのセル範囲を選択してスクロールする
    • 1-2 セルに値や数式などをセットしたい
    • セルに値をセットする
    • セルに数式をセットする
    • セルのIMEを制御する
    • セルに入力規則を設定する
    • セルに入力範囲を設定する
    • セル移動方向を設定する
    • 1-3 セルの書式を設定したい
    • セルの書式を設定する
    • 条件を満たすセルに書式設定する
    • 行の高さ・列の幅を設定する
    • セルの文字列の一部分を斜体にする
    • セルの文字列の一部分をアウトラインフォントにする(Macintosh専用)
    • 使われたセル範囲に縦横罫線を設定する
    • 1-4 セルの値や内容についての情報を取得したい
    • セルの値を取得する
    • セルの内容やセル自体の情報を調べる
    • 参照する文字列が指し示すセルの値を取得する
    • 指定したセルが空白セルか調べる
    • 指定したセルの負の数の表示形式が色で表す書式でなければ変更する
    • 指定シートの指定列のセルに文字列が混入していないか調べる
    • 指定シートの指定範囲のセルの値が上限値以上になら上限値に置換する
    • 1-5 セルの値を編集したい
    • セルの値のスペースを整える
    • セルの文字列を全角・半角など変換する
    • セルの文字列のふりがなを操作する
    • 指定した列のセルの値の末尾にスペースを付けて文字数を揃える
    • 必要な回数繰り返した文字列を作成してセルにセットする
    • ふりがなを別の列へセットする
    • セルの数値を四捨五入・切り上げ・切り捨てなどする
    • 1-6 セル・行・列をクリア・削除・追加したい
    • セルの内容をクリアする
    • セル・行・列を削除または追加する
    • 行・列を非表示または再表示する
    • 指定したセル範囲内の各セルの指定位置の文字を削除する
    • 1-7 セルの内容などをコピーしたい
    • セルの内容をコピーする(クリップボード非経由)
    • コピー対象をクリップボードへコピーする(貼り付け機能なし)
    • クリップボードの内容をセルに貼り付けする
    • コピーモードを解除する
    • 非アクティブな異なるブック間で指定したセル範囲の値を等しくする
    • 画面イメージをビットマップ形式でコピーして別のシートに貼り付ける
    • クリップボードにCSV形式のオブジェクトがあればセルに貼り付ける
  • 2 シートを操作したい
    • 2-1 シートの名前とオブジェクト名およびインデックス番号
    • 2-2 シートを自在に操作したい
    • シートを指定して選択する
    • シートを挿入する
    • シートの名前を取得・変更する
    • シートを移動またはシート見出しをスクロールする
    • シートを非表示または再表示する
    • シート見出しの色を設定する
    • シートをコピーする
    • シートを削除する
    • ユーザーが再表示できないようにシートを非表示にする
    • 指定したブックのすべてのシートを再表示に設定する
    • 2-3 シートのイベントを利用するコード

第3章 ワークシートで自在に演算・加工したい

  • 1 データベースを操作したい
    • 1-1 リストオブジェクトを操作したい(ListObjectsオブジェクト)
    • リストオブジェクト全体
    • 見出し行
    • データ範囲
    • データ挿入行
    • 集計行
    • リストオブジェクトの各列の見出しを取得して表示する
    • 1-2 リストを操作したい
    • 1-3 リストのデータベースを並べ替えたい(Sortメソッド)
    • リストデータを並べ替える
  • 2 希望のデータを自在に抽出したい
    • 2-1 希望のデータを抽出する2つのメソッド
    • 2-2 AutoFilterメソッドの概要
    • 2-3 希望のデータをオートフィルタで抽出したい
    • オートフィルタで抽出する
    • オートフィルタモードを操作する
    • オートフィルタで抽出したデータの行数等を取得する
    • オートフィルタで抽出したデータの最上行指定列の値を取得する
    • オートフィルタして結果をコピーする
    • オートフィルタされている指定列の抽出条件式を取得する
    • フィルタモードのまま全てのデータを表示する
    • オートフィルタされるつど抽出したデータの金額合計を表示する
    • リストから回収済データを削除して未回収データだけにする
    • リストから指定店舗分を抽出しデータ部だけを別のシートへ貼り付ける
    • オートフィルタ使用可能でシートを保護し全てのセルの選択を禁止する
    • オートフィルタ使用不可でシートを保護しセル選択可能範囲を設定する
    • リストから指定された日付分を抽出し顧客別に納品書を作成する
    • 2-4 AdvancedFilterメソッドの概要
    • 2-5 複雑な検索条件で希望のデータを抽出したい
    • 異なるシートの検索条件によってアドバンスフィルタで抽出する
    • 同一シートの検索条件によってアドバンスフィルタで抽出する
    • アドバンスフィルタで重複を取り除いて抽出する
    • 全てのデータを表示する
    • リストデータの重複を除去してコンボボックスのリストにセットする
    • リスト内のすべての重複データの一覧表を作成する
    • トランザクションからマスターファイルにないデータを抽出して追加する
    • 飛び飛びに存在するキー列が空白である行を削除する
    • ワークシートのリストから重複を取り除いてリストボックスに表示する
  • 3 必要なデータを検索したい
    • 3-1 表を検索して値を取得したい
    • 料額表を検索して健康保険料と厚生年金保険料を取得する
    • VLOOKUP関数で表を検索して健康保険料と厚生年金保険料を求める
    • 郵便番号から住所を検索して表示する
    • セル範囲と行・列番号を指定して値を取得する
    • 元素周期表を検索して元素名と元素記号を取得して表示する
    • 3-2 表を検索して該当データの位置を取得したい
    • Match関数で列を検索し該当データの位置を取得する
    • 表を検索して該当データの位置を取得する
    • 3-3 引数リスト内の順番を指定して値を取得したい
    • セルの数字から漢字表記を取得する
    • 数字の曜日を漢字に変換する
    • セルの値で指定された行にある所在地を取得する
    • セルの値で指定された列の縦計を取得する
    • 3-4 特定の文字列を含むセルを検索したい
    • EXACT関数をセルに設定して特定の文字列とセルの値を比較した結果を取得する
    • IF関数をセルに設定して特定の文字列とセルの値を比較した結果を取得する
    • 列のデータが指定された値と完全一致したら別の値に変更する(EXACT関数)
    • 列のデータが指定された値と一致したら別の値に変更する(IF関数)
    • 特定の情報を検索して見つかった最初のセルのアドレスを取得する
    • ユーザーが開いた全ブックのシートを指定された値で検索し見つかったセルを順に表示する
    • 3-5 文字列に特定の文字列が現れる位置を検索したい
    • 文字列に特定の文字列が含まれているか検索してその位置を取得する(Search関数)
    • 対象文字列を特定文字列で検索してバイト位置を取得する(SarchB関数)
    • セルの文字列の一部が一致したら逐一確認してから置換する
    • セルの文字列の一部が一致したら無条件で置換する(Replaceメソッド)
    • 3-6 データが文字列か調査したい
    • 取得したデータが文字列か調査する
  • 4 データベースで自在に集計したい
    • 4-1 ピボットテーブルレポートを操作したい
    • リストから新しいピボットテーブルレポートを作成して結果を表示する
    • ピボットテーブルツールバー等を非表示にする
    • ピボットテーブルが存在するか確認する
    • ピボットテーブルレポートのセル範囲を選択する
    • ピボットテーブルレポートを更新する
    • ピボットテーブルレポートの行列を指定してデータを取得する
    • ピボットテーブルレポートの列見出しに着色する
    • ピボットテーブルレポートの特定データだけを抽出して表示する
    • ピボットテーブルレポートの特定フィールドを全ての行を表示する
    • ピボットテーブルレポートの行フィールド名を取得してワークシートにセットする
    • 4-2 アウトライン機能でリストを集計したい
    • リストに集計(アウトライン)を作成する
    • 集計(アウトライン)が作成されたリストの表示を変更する
    • リストに作成された集計(アウトライン)を削除する
    • リストから当月分を抽出し乗務員別売上一覧表を作成する

第4章 ユーザーインターフェイスを操る

  • 1 いろいろなファイルを操作したい
    • 1-1 いろいろなファイルを開きたい
    • ファイルを開きたい
    • ブックを開きたい
    • テキストファイルを開きたい
    • データベースを開きたい
    • 共有ドキュメントの別バージョンを開きたい
    • HTMLプロジェクトを開きたい
    • ほかのアプリケーションのファイルを開きたい
    • そのほかのファイルを開きたい
    • Win・Mac混在環境でほかのブックを開いてそこにあるマクロを実行する
    • ファイルを開くダイアログボックスを表示して選択されたファイルを開く
    • ファイルの選択ダイアログボックスを表示してフルパスを取得する
    • ほかのブックを開いてそこにあるマクロを実行する
    • ほかのブックを開いてそこにあるAutoマクロを実行する
    • Accessのテーブルを開いてデータを読み込む
    • ハイパーリンクを設定してHTMLファイルやWordファイル等を開く
    • 1-2 開いたファイルを操作したい
    • ブックの情報を取得・設定する
    • ファイルの状態を変更する
    • ファイルを保存する・閉じる
    • 指定ブックの組み込みドキュメントプロパティを取得してシートに書く
    • 1-3 開いていないファイルを操作したい
    • ファイルの情報を取得する
    • ファイルの属性を設定する
    • ファイルをコピーする
    • ファイルを削除する
    • ファイル名・フォルダ名を変更する
    • ファイルを別のフォルダへ移動する
    • フォルダを選択する
    • フォルダを作成・削除する
    • 指定したフォルダ内の指定した拡張子のファイル名を取得してシートに書く
    • 指定フォルダ内でサブフォルダも含めて指定した名前のファイルを検索する
    • 1-4 きれいに印刷したい
    • 印刷する
    • プリンタを選択する
    • 印刷プレビューする
    • 改ページプレビューする
    • 印刷範囲を設定する
    • ページを設定する
    • 一部の機能を制限して印刷プレビューする
    • R1C1形式の行列番号で印刷範囲を設定する
    • 印刷を禁止する
    • 現在使用しているプリンタの名前を設定する
    • 現在使用しているプリンタの名前を一時的に変更して印刷する
    • プリンタを指定して印刷する
    • 幅と高さを1ページで印刷できるように設定する
    • 印刷されるページ数を取得する
  • 2 ユーザーフレンドリーにやり取りしたい
    • 2-1 操作環境の状況を把握したい
    • 現在の操作環境についての情報を取得する
    • いろいろなフォルダパスを取得する
    • マウスポインタの形状を取得・設定する
    • ドライブの一覧表を作成する
    • 2-2 画面表示を整えたい
    • アプリケーション(Excel)ウィンドウを設定する
    • ワークシート(ブック)ウィンドウを設定する
    • ウィンドウ枠およびウィンドウを固定または分割する
    • コマンドバー・数式バー・ステータスバーを操作する
    • Excelウィンドウを画面中央に表示する
    • 左側ウィンドウの幅を指定し2つのシートを左右に並べて表示する
    • コマンドバーと数式バーの表示状況を取得してから非表示にする等して後で復元する
    • コマンドバーのセットを取得して一覧表にする
    • メニューバーをカスタマイズする
    • 2-3 ユーザーに知らせたい・指示を求めたい
    • ユーザーに知らせる
    • ユーザーに質問する
    • ユーザーから情報を受け取る
    • 組み込みダイアログボックスでやり取りする
    • データフォームを利用してやり取りする
    • 作業が終了したことをユーザーに音で知らせる
    • モードレスなバルーンで知らせる
    • モードレスなユーザーフォームで知らせる
    • ステータスバーに進行状況を表示する
    • ユーザーフォームのプログレスバーで進行状況を表示する
    • ワークシートのプログレスバーで進行状況を表示する
    • カレンダーコントロールで日付を受け取る
    • 印刷に先立って印刷プレビューダイアログボックスを表示する

第5章 処理の流れを制御する

  • 1 イベントを活用したい
    • 1-1 Excelオブジェクトのイベントを整理する
    • 1-2 Excelオブジェクトのイベントプロシージャを作成する
    • ワークシートのイベントプロシージャ
    • [Activate]シートがアクティブになったらメッセージを表示し,品名順に並べ替える
    • [BeforeDobuleClick]ダブルクリックされたセルに○△をセットして着色する
    • [BeforeRightClick]右クリックでセル移動方向設定用ショートカットメニューを表示する
    • [Calculate]再計算されたときに列幅を調整する
    • [Change,Active]パスワードを知らない人にはシートの閲覧を制限する
    • [Deactivate]ワークシートが非アクティブになったときに上書き保存する
    • [FollowHyperlink]クリックされたハイパーリンクのリンク先を取得して表示する
    • [PivotTableUpdate]ピボットテーブルレポートが更新されたらアイテム数を表示する
    • [SelectionChange]一定のセルが選択されたらコンボボックスのリスト部分を表示する
    • グラフシートのプロシージャ
    • ワークシートのイベントプロシージャ
    • [Workbook_Open]移動方向設定用ショートカットメニューを追加し全シートで使用可能にする
    • [SheetSelectionChange,Workbook_Activate]選択範囲がウィンドウの左上隅になるまでスクロールする
    • 1-3 アプリケーションのイベントプロシージャを作成する
    • [Workbook_Open]移動方向設定用ショートカットメニューを追加し全ブックの全シートで利用可能にする
  • 2効果的にエラー制御したい
    • 2-1 ワークシートで発生するエラーに対策したい
    • ワークシートで発生するエラーに対策する
    • 数式が実行された結果のエラーを隠すために条件付書式を設定する
    • 数式が実行された結果のエラーを隠すために当該セルの数式と文字をクリアする
    • アクティブセル領域内のエラーセルを順に検出して表示する
    • 指定された列に文字列でない値のセルがあればそのセルを表示する
    • 2-2 VBAの実行時エラーに対策したい
    • VBAの実行時エラーに対策する
    • 関数で発生する実行時にエラー対策する

付録1 用語集

付録2 Visual Basicヘルプの使い方

  • Visual Basicヘルプの手軽な利用方法
  • Visual Basicヘルプの一般的な利用方法
  • オブジェクト階層構造図を利用する方法
  • イベント関係のヘルプを表示する方法
  • ADO関係のヘルプを表示する方法
  • ユーザーフォーム画面からヘルプを表示する方法
  • ユーザーフォームのプロパティウィンドウからヘルプを表示する方法

付録3 Visual Basicのエラーと対処方法

著者プロフィール

永井善王(ながいよしおう)

システム・エンジニア,テクニカル・ライター。愛知県幸田町在住,1942年1月神戸市生。

コンピュータ・経理・経営企画・大手自動車メーカーでのSE業務支援等に携わって定年退職,現在はハッピーテック代表。この間一貫してシステム開発に携わり,ユーザーと開発者の両方の視点を持っている。 代表作の「総債権管理システム」は,自動車販売時における顧客との債権債務を一元化して管理でき,伝統的な記帳制度から大胆に発想を転換して利便性・正確性を向上し省力化した。生来,新しいもの好きでクリエーター。最近は執筆活動の傍らホームページでのQA,ハーレー・ダビットソンでのアメリカ大陸走行。地元では青少年健全育成地域推進員委員長を務めている。

【ホームページ】
800連発・500連発・組み方講座フォローページ
すぐに役立つエクセルVBAマクロ集

著書