1.[489]共通定数の使用方法

多数のマクロから特定のファイルを呼び出す場合、共通定数を使用すると大変便利です。 たとえば1ヶ月毎にデ−タベ−スのファイル名が替わるケ−スではファイル名一覧マクロ (ブック)を作成しそのファイル名のみ変更すればデ−タベ−スを呼び出すマクロの 変更はしなくてよい。
本例はフォルダ−及びファイルを作成しないとサンプルマクロはエラ−と なります。判りずらいと言う意見があり説明を追加しました。

デ−タベ−スのフォ-マットは同じであるが1ヶ月毎にファイル名が替わる(下記例:8月data.xls ・9月data.xls)ケ−スで、多数のマクロ(下記例:489_1・489_2・489_3)からその デ−タベ−スファイルを対象にマクロ処理 (489_1は生産量情報、489_2は異常仕掛情報、489_3はグラフ作成等)を行う場合、 下図のように月毎にファイルを呼び出すマクロを変更しなくてはならない。

----------------------------------------------------------------------------------------
多数のマクロ(下記例:489_1・489_2・489_3)から、ファイル名を記述したブック (下記例:489.xls)を参照するように設定すれば、ファイル名は多数のマクロを変更しなくとも、 参照されたブックのファイル名(下記例:定数"fila")を変えるだけでよい。

本例では、参照先定数の変更により処理マクロ(489_1・489_2・489_3)の変更は不要


2.[他1]HTMファイルの内容を検索し特定文字の抽出 [1999/8/25 M.Hさんからの質問]

いつもHPで参考にさせていただいております、そこで本が出版されるとのことで購 入しましたが、頑張っていろいろ試したのですがどうしても解りません。私の問題に 近いものはどれか教えてくださいよろしくお願いいたします。

htmファイルが開かれます。そして開かれたシート内の全てを巡回(検索)して「A」 がつく全ての単語を特定のシートに上から下に順序良くペーストしたいのですが、こ の処理に近いVBAは何番になるかお教えください。(Windows98、Excel2000使用)

私の判る範囲で返答します。なお、Windows95・Excel97・Excel2000を使用

(1)htmファイルが開かれます。
→Excel97/2000ではHTMLファイルをExcelへ開くことは出来ますが、そのデ−タを VBAで処理することは(私の知っている範囲)出来ません。
(Excel2000では、[ファイル][開く]ではなく、[デ−タ][外部デ−タの取り込み] [新しいWebクエリ]で「保存するWeb形式→なし」として取り込んだ場合は、 ワ−クシ−トへ通常のExcelデ−タで取り込むことは可能<この場合HTMLタグはなし>)

→したがって、HTMLファイルの内容をExcelで検索等の処理を行う場合、HTMLの ソ−スをExcelワ−クシ−トへ貼り付ければVBAで簡単に処理できます。

→但し、ワ−クシ−トへ貼り付けるのがExcelのバ-ジョンアップと共に難しくなっている。
・Excel95---HTMLファイルをテキストと同じように開けた。
・Excel97---拡張子を"CSV"に変えれば開ける。(html、txt、prn は不可)
・Excel2000---拡張子html、txt、prn、csv 共HTMLのソ−スは開けない。

(2)HTMLソ−スを無理やりワ−クシ−トへ貼り付ける方法
→Excel97:HTMLファイルを適当なフォルダ−へコピ−して、そのファイルを強制的に 拡張子"csv"に変更する。その後、変更したCSVファイルをワ−クシ−トへ開く。 (29-1参照)

→Excel2000:HTMLファイルを適当なフォルダ−へコピ−して、そのファイルを強制的に 拡張子"txt"に変更する。その後、変更したtxtファイルを[デ−タ][外部デ−タの取り込み] [テキストファイルのインポ−ト]でワ−クシ−トへ取り込む。 (29-19参照)

(3)検索マクロ作成に参考になる「500連発NO」
HTMLファイル指定→●075■名前:保存ファイル名と保存先を設定する
拡張子取得→●019■名前:フォルダ名とファイル名を取得する
最終セル取得→●196■名前:SpecialCellsメソッドを使用した最終セル取得
文字の検索→●291■名前:指定した文字の始まる位置を検索する
シ−ト追加→●095■名前:シートがあるか調べてなければ追加する

(4)サンプルマクロ(マクロソ−スも同一ペ−ジに掲載)
KI_mozi97 :HTML File<>以外の文字検索(97用)
KI_mozi2000 :HTML File<>以外の文字検索(2000用)
KI_moziselect :HTML Fileの文字検索(97用)
※日本語の場合文字単位で抽出するのは難しいので指定した文字以降を抽出しました。

3.[335]スクロ−ルバ−で数値や量をビジュアル表示
「ExcelVBAマクロ500連発」へ掲載例はExcel95では正常に動作しますが、Excel97・2000では スクロ−ルバ−は移動しますがカラ−は変化しません(Excel95ファイル)。

Excel97・Excel2000で正常に動作するダイアログを サンプル97[4]BGA番号取得へ掲載しました。

4.[439]グラフタイトル挿入について [1999/10/8 T.Tさんからの質問]

「技術評論社」の「ExcelVBAマクロ500連発」という本を参考にさせていただいておりますが、 グラフ関係のマクロに関して、ご質問をしてよろしいでしょうか。

収録してあった「439.xls」の「グラフタイトルを挿入」の部分で、 Selection.Characters.Text = "流動数曲線" とありますが、「"流動数曲線"」の部分を変数で渡すことはできないのでしょうか。
実は、別のアプリケーションと連携して、渡されたデータの中身をタイトルに表示したいのですが よい方法がみつかりません。 ご存知でしたら教えていただきたいのですが。
上記の質問ですが、変数に入れ
moz = "ABCD"
Selection.Characters.Text = moz
とした場合、グラフのタイトルは"ABCD"になります。

・だだし、変数には適用範囲(本の486参照)があり別のモジュ−ルのマクロに もその変数の内容を使用する場合はPublic *** で適用範囲を宣言する必要があります。
・別ブックマクロの変数も利用できるが、その場合は参照設定が必要(本の489参照)
簡単に返答を書きましたが、もし判りづらいようでしたら再度メ−ルを下さい。

「Selection.Characters.Text」についての質問の件、うまくいきました。 早々にご返事頂いて、ありがとうございます。 ところで、このサンプルでつかっていらっしゃる色々なコレクションやオブジェクトについ ての公式なマニュアルみたいなものはあるのでしょうか。サンプルを見ても応用の仕方が よくわからないものがあります。 もし、参考にされているものがあるのでしたら、教えていただくとありがたいのですが。

私は4年ほど前、Excel5.0がExcel95になった時「公式リファレンス」と言うのを買ったが、 7800円と凄く高かったが殆ど使用してない。又Excelと名前の付く本も多分30冊以上あるが 色々なコレクションやオブジェクトを1冊で網羅したものは有りません。私のHPは 各種ノウハウの記載があり一番安くVBAのスキルアップが出来ると思います。なお、 質問の「サンプルを見ても応用の仕方よく判らない」と言う件については、判らない箇所を ナツメ社発行の「Excel**VBAハンドブック」を見ながら勉強するとよいと思います。

【戻る】