要件定義の不安をなくす。要件定義の不安をなくす。ユニファのバックエンド分割に学ぶイノベーションメタバース開発に必要な技術の基本知識をおさらい。Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。KB)ExcelとWordを組み合わせた簡易ドキュメント・データベースのようなものを作成しました。ExcelでTipsタイトルを選してマクロを実行すると、Word文書から詳細な解説文を抜き出して表示します。3ユーザフォームバージョンのコード作成ユーザーフォーム処理-リスト4まとめはじめにExcelとWordを組み合わせた簡易ドキュメント・データベースを作成します。例として用意したマクロは、ExcelでTipsタイトルの一覧を作成し、このタイトルを選択してマクロを実行すると、対応するWord文書から「使用例」のコードを抜き出してワークシートに表示するというものです。文字列データの保存はWordで行い、この内容を取り出す形にしています。取り出す内容も、文書まるごとではなく必要な個所を自動的に検索し、その部分だけを抜き出してくるようにしています。Excelの文字列検索・セル範囲の取得を組み合わせ、テキスト処理を行うテクニックを紹介します。2000以降のバージョンのExcelとWordが使用できる環境プログラム実行時の注意事項ダウンロードファイルに同梱されているWordドキュメント「セルを操作する.doc」を、ドライブCのルートに配置してからマクロを実行してください。処理の流れ使用するデータはExcelに格納します。ワークシートSheet1に、カテゴリ分けされたTipsのタイトルが入力されており、A列がカテゴリ名、B列がTipsタイトルです。各カテゴリは、行方向に空白のセルで区切られています。カテゴリ分けされたTipsのタイトルが入力されているワークシート一方、Wordの文書ファイルは、このカテゴリ名ごとにTipsが記述されており、カテゴリ名がそのファイル名に使用されています。>コード<使用するメソッド・プロパティ><解説>という構成で記述され、doc形式で保存されています。Sub<使用するメソッド・プロパティ><解説>作成する2パターンのマクロ今回のドキュメント・データベースは、ワークシートから直接マクロを起動して検索するバージョンと、ユーザーフォームから検索するバージョンの2パターンを作成します。実行方法が違うだけで、動作内容は全く一緒です。ワークシート・バージョンのマクロSheet1で選択されたTipsタイトルが所属するカテゴリ全体のセル範囲を把握し、範囲の先頭にあるセルからカテゴリ名を取得します。パスや拡張子を付けて文書のファイル名にし、Wordのインスタンスを作成してその文書を開きます。ここからWord内の操作になります。選択されているセルからTipsのタイトル名を取得し、Wordファイル内を検索します。一致したタイトル名を検出したら、その位置を開始位置としてコードの「Sub」という文字を検索します。検索が成功するとその文字が選択されるので、そこにブックマーク「sub」を設定します。その位置の行番号を変数に格納しておきます。Sub」という文字で検索を行います。検索が成功したら、その位置の行番号を変数に格納します。Sub」までのコード全行を範囲選択します。選択した範囲をクリップボードにコピーし、開いた文書を保存せずに閉じてWordを終了します。Excelに戻ったら新しいウィンドウを開き、Sheet2をアクティブにし、ウィンドウサイズを小さくします。Sheet2にクリップボードのコードをペーストします。ユーザーフォーム・バージョンのマクロコンボボックス、リストボックス、テキストボックス、コマンドボタン(3つ)ユーザーフォーム・バージョンでは、上図のようなフォームを作成し、処理をフォームのコードモジュールに作成します。フォームのInitializeイベントで、ドロップダウンリストボックスのリスト項目を作成します。選択されているTipsタイトルのセルから、カテゴリ全体のセル範囲を取得し、カテゴリ名が入力されているセル番地を取得します。そこに入力されているカテゴリ名を取得して、ドロップダウンリストボックスのリスト項目に組み込みます。これを、Sheet1に入力されているカテゴリ数分繰り返し、全カテゴリ名をリストに組み込みます。ドロップダウンリストボックスのリスト項目が選択されると、その項目名を使用してSheet1を検索し、該当するカテゴリのセル範囲を取得します。Tips名が入力されているセルを先頭から順番に参照し、Tips名をリストボックスに組み込みます。[検索]ボタンが押されると、ドロップダウンリストボックスで選択されている項目名から文書名を作成し、Wordで開きます。リストボックスで選択されている項目を使用して文書内を検索し、コードをクリップボードにコピーし、フォームのテキストボックスにペーストします。[コピー]ボタンをクリックすると、テキストボックスの内容をクリップボードにコピーすることができます。Wordのインスタンス作成と文書を開く処理、文書内を検索しコードをクリップボードにコピーする処理は、それぞれプロシージャとして作成し、ワークシートバージョンとユーザーフォームバージョンの両方から利用できるようにします。3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。3.12」の最初のベータ版がリリース新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。