« 2009年2月 | トップページ | 2009年4月 »

2009年3月の7件の記事

2009年3月28日 (土)

マクロの簡単インストール方法について追加情報

最新版をこちらに掲載しました。ご覧ください。(2009/11/8)

以前、「マクロの簡単インストール方法の紹介」にて、ワードの文書からマクロを登録する方法を紹介しました。

「macro_installer.doc」をダウンロード (こちらに注書きを追加しました。)

「macro_installer.doc」というワード文書を用いたのですが、お使いのワードの設定によっては、マクロが起動されないことがわかりましたので、正常にマクロを起動できる方法を紹介します。

●症状
「macro_installer.doc」を開いてボタンをクリックしても、マクロが実行されない。

●原因
ワードの「デザインモード」がオンになっている可能性があります。

Install_1_2 左の画像の赤い矢印の先のツールバーにボタン があります。これが押された状態(オレンジ色になっている状態)が、デザインモードです。

この状態だと、マクロを登録したボタン(「自動インストール」など)を編集している最中であることを意味します。

よって、マクロを登録したボタンをクリックしても、マクロが実行されない結果となります。

●対処方法
Install_2上記図の赤い矢印の先にあるボタンをクリックして、デザインモードをオフにしてください。

再度、「自動インストール」などのボタンをクリックしてマクロが作動するか、ご確認ください。

| | コメント (0) | トラックバック (0)

2009年3月23日 (月)

【改訂】キーワードが掲載されたページを取得する

さっそくの改訂を失礼します。

昨日紹介した「キーワードが記載されたページを取得するマクロ」には暗黙のルールがありました。

それを気にせずに使えるように改訂しました。

「pagesearch.dot」をダウンロード

●暗黙のルール
「ページ番号取得のマクロ」は、以下の二つの条件が満たされたときに正常に実行されます。

①「キーワードの一覧表」を保存した状態(または閉じた状態)であること

②前回作成した「ページ取得用仮ファイル」は閉じた状態であること

<もし、上記の条件が満たされていないと。。。。(ここからは、興味がない方は、とばしてください。)>

①が満たされていない場合には、検索マクロ実行後に、「キーワードの一覧表」を保存するか否かのメッセージが表示されてしまいます。

②が満たされていない場合には、今回の検索対象となる文書を「ページ取得用仮ファイル」として保存できないために、エラーが発生します。

結果、検索対象となる文書のフォントの色を黒く変更したファイルが残ることになります。(改訂前のマクロは、別名保存のまえにフォントの色を変更していました。よって、フォントの色を変更した段階で、プログラムが停止するために、上記のようになります。)

●変更点
「ページ取得用仮ファイル」および「キーワードの一覧表」の状態に応じて対応を変更するようにプログラムを修正しました。

●ファイルが閉じていることの判定方法
それぞれ別の方法で判定することにしました。
(同じ方法にしてもいいのですが、練習のために別々にしました)

①「キーワードの一覧表」が閉じていることの判定方法
このファイル名は、テンプレートファイルの名前であり「pagesearch.dot」です。

よって、以下のプログラムを用いました。

docはdocumentとして、Foundはbooleanとして定義しています。

20    For Each doc In Documents
30        If doc.Name = "pagesearch.dot" Then Found = True
40    Next doc

20から40行で、現在開かれている文書全体の中に、"pagesearch.dot"のファイル名の文書があるかどうかを判定しています。

このプログラム文は、ヘルプの中にありました。

「開いている」 というキーワードで探しました。

      'キーワード一覧表を閉じる
830   If Found = False Then
840       ActiveWindow.Close
850   End If

すべてのキーワードの検索が終了した時点で、キーワード一覧表を閉じる処理をします。

上記のように、30行での判定がtrueにならなかった場合(つまり、Found = False の場合)には、プログラム実行当初、キーワードの一覧表が閉じられていたわけですから、840行でキーワードの一覧表を閉じる処理をします。

30行での判定がtrueだった場合には、プログラムの実行当初のとおり、キーワードの一覧表を表示したままにします。つまり、840行の「閉じる処理」を実行しません。

②「ページ取得用仮ファイル」が閉じていることの判定
一般に、「ページ取得用仮ファイル」が別のファイルとして開いているときに、文書を同じ名前「ページ取得用仮ファイル」で保存しようとした場合にエラーが発生します。

なので、このエラー(エラー番号は5153)が発生したら、「ページ取得用仮ファイル」が別のファイルとして開かれていると判定することにしました。

プログラム文では、10と、1050から1100に相当します(マクロテンプレートの編集画面を[Alt] + [F11]で開いて内容を確認してみてください)。

| | コメント (3) | トラックバック (0)

2009年3月22日 (日)

ニュースグループに登録しよう

翻訳者の方でマクロを勉強されている方に、楽しめる情報です。

ニュースグループ(newsgroups)というのは、「ネットニュースにおいて話題のテーマや目的別に分けられた、記事の集まりのことである。あるグループを購読すると、そのテーマや目的に添った記事を読んだり、投稿したりすることができる。」(wikipediaから引用)のですが、マクロのニュースグループも当然あります。

マイクロソフト社が用意しているVBA用のニュースグループもあるのですが、私が定期的に読んでいるものを紹介します。

グーグルの初心者用マクロのニュースグループ(言語は英語)

ワードマクロの中でも、レベルや質問の対象によって以下のように6つのグループがあります。(一覧はこちら

microsoft.public.word.vba.general
microsoft.public.word.vba.beginners
microsoft.public.word.vba.userforms
microsoft.public.word.vba.customization
microsoft.public.word.vba.addins
microsoft.public.word.vba

内容を見たところ、beginnersが一番自分にあっていると思ったので登録しました。

記事をまとめて配信してもらうように設定してあるのですが、2日に1度くらいきます。

質問の意味がわからないものもありますが、かなり丁寧に教えてくれているので、その説明のしかたを読むのも面白いです。

あと、サイトでキーワード検索をして、自分が欲しい情報を得るのに使えます。

グーグルだけあって、検索性は非常によくて、欲しいコードや考え方などに案外簡単にたどりつけます。

マイクロソフトのワードVBAの初心者向けニュースグループでは、同じキーワードをいれてもヒットしないことが多いです。

さすがグーグル。

英語の勉強もかねて、一石二鳥ですね。

| | コメント (0) | トラックバック (0)

2009年3月21日 (土)

キーワードが記載されたページを取得するマクロ

キーワードを入力して、そのキーワードが記載されているページを表示します。

(テンプレートを3月23日に修正しました。)

「pagesearch.dot」をダウンロード

●使い方
【1】マクロをインストールします。
インストール用のマクロをご利用ください。

スタートアップフォルダにこのマクロを保存してください。

テンプレートフォルダに保存するとエラーになります。このマクロテンプレートの名称も変更しないでください。

ワード立ち上げと同時に、ツールバーに以下のボタンが表示されます。
Pagesearch

【2】キーワードを入力します。
一番右側のボタンをクリックして、キーワード入力用のページを表示します。

ここにキーワードを入力して保存してキーワード入力用のページを閉じます。

現在は、キーワードとして「ワイルドカード検索用の文字列」が入力されています。

検索対象は「特許番号」を想定しています。

【3】対象となる文書を開いてください。
どのような文書でもかまいません。その文書自体には、文字を書き込んだりするわけではなく、オリジナルのまま残しますので、ご心配されずにお試しください。

例で示したワイルドカードを試す場合には、特許番号が記入されている文書でお試しください。

【4】検索を実行します。
検索対象となる文書を表示させた状態でマクロを実行します。

検索ボタン(虫眼鏡とPのマーク)をクリックします。

ボタンは2種類あり、左側が「ワイルドカード検索」で右側が「通常の検索」に対応しています。

【5】検索結果を表示します。
キーワードを検索して着色・かつ結果表示します。

Pagesearch3_2 検索が終わると、検索対象とした文字列(キーワード)が掲載されているページを左図のようなメッセージボックス内に表示します。

検索文字列を着色したファイルは、「テンプレートフォルダ」内に「ページ取得用仮ファイル」という名称に変更して保存されています。

そのまま続けて、文書の編集をしないようにご注意ください。あくまでも、別ファイルになっています。

●キーワードの入力例
一番右側のボタンを押すと、検索対象となる文字列が記載された文書が現れます。

このページの冒頭(1行目)から最初の空欄行までに記載されてた文字列が、キーワードとして認識されます。

具体的に説明すると、このイメージに示されたものでは、5行目に空欄(何も書いていない行)がありますので、4行目までの4つのキーワードが検索されるわけです。

Pagesearch2

よって、青文字で示した部分は、検索キーワードに使われませんから、自由にメモを記入できます。

また、青文字部分に、ワイルドカードの入力例を記載しましたので、この機会にいろいろとお試しください。

参考例に書いてあるのは、特許番号を抜き出すためのワイルドカード表示です。

①([0-9]{4,4})-([0-9]{1,})
②([0-9]{1,})/([0-9]{1,})
③([0-9]{1,}),([0-9]{3,3}),([0-9]{3,3})
④([0-9]{5,})

①は、「4桁の半角数字」と「ハイフン」と「1桁以上の半角数字」の組み合わせを探すワイルドカードの数式です。(例:2007-12345、2005-123)

②は、「1桁以上の半角数字」と「スラッシュ」と「1桁以上の半角数字」の組み合わせを探すワイルドカードの数式です。(例:01/12589、2001/512368)

③は、7桁の半角数字で、3桁ごとに半角のコンマがある数字を探すワイルドカードの数式です。(例:1,234,567、2,345,231)

④は、5桁以上の半角数字を探すワイルドカードです。

ワイルドカードの考え方は、「Wordで実践」や、「自分で作るWordマクロ(1)」や、「ワード全機能Bible(P.732-734)」に掲載されているのでご覧ください。

検索にマクロを使う場合に、ワイルドカードを知っていると楽しみが広がります。

●工夫
元のファイルは汚さずに、対象のファイルを別ファイルとして保存します。

テンプレートファイルそのものに、検索対象の文字列を随時書き込めるようにしてみました。これは、ここ半年くらいの私の流行です。

キーワードを囲い文字にするマクロと同じ考え方です。

●キーワード
ページ番号
Selection.Information(wdActiveEndPageNumber)
繰返し処理
msgbox
Selection.Font.ColorIndex = wdAuto

| | コメント (1) | トラックバック (0)

2009年3月14日 (土)

VBAを学ぶための必読書の紹介(基礎編)

ようやく、お気に入りの書籍を紹介できます。

「かんたんプログラミングExcel 2003 VBA 基礎編」です。

今まで「マクロの記録」を使ってみて、もう少し自分でアレンジして、一歩進んだことをしたい、とお考えの方におすすめです。

ステップとしては、「自分でつくるWordマクロ」を読んで、自分でマクロを記録しながら作る醍醐味を覚えて、その後、この「かんたんプログラミングExcel 2003 VBA 基礎編」を文法書として使いながら、いろんな書籍やインターネットのマクロ例文を理解していけばいいと思います。

この「かんプロ基礎編」のいいところは、「プログラムを読めるようになる」という受動的な段階を十分にサポートしてくれるため、「プログラムを自分で書いてみる」という積極的な段階にスムーズに以降できるようになると思います。

私は、プログラミングをやって思ったのですが、最初はすぐれたプログラム文を意味を理解したうえでたくさん読みこなすことが必要だと思っています。

ちまたには(インターネットで英語圏のサイトを見ると)ワードマクロのプログラム文はあふれているのですが、それを正しく理解して読みこなすには相当な知識が必要だと思います。

私も当然、まだまだよくわからないことだらけです。

ただ、この「かんプロ」シリーズを読み始めてからは、プログラミングの基本的な考え方やプログラムの構造が理解できてきたので、今までよりも読めるようになってきました。

だから、他の人が書いたマクロをまねをして、自分仕様に書きかえることが少し得意になってきました。

いまのところ、このエクセルの本が、文法書としては、今の私には一番手っ取り早い情報源になっています。(あくまでも、ワードマクロの例文集ではありません。)

やはり、書籍のまとまったかつ系統立てられた説明は、インターネットで得られる断片的な情報とは一味もふた味も違うと思います。

また、ワードのVBエディタのヘルプで書かれた「上級者向け」の説明文にくらべて、「初心者向け」の詳細な説明が書かれていますから、安心して一人で読み進められます。

独学にもってこいですね。

本書は、「マクロ」とは何なのか?「VBA」とは何なのか?という疑問に答えることからスタートします。

こういう基本的なことって、独学している人だとわかりませんね。ちなみに私はこの二つの違いを知りませんでした。

あと、「プロシージャ」、「オブジェクト」、「プロパティ」、「メソッド」についても、わかりやすい説明があります。

「オブジェクト」や「プロパティ」に関しては、たとえ話として「自動車」をとりあげて説明されており、非常に理解しやすいです。

今まで、私がなんとなく理解していたことが、明確に根拠をもって説明されているので、すごく気分がよくなります。

| | コメント (0) | トラックバック (0)

グーグルパテントのフレーズ検索

グーグルパテントをご存知ですか。

これは、アメリカの特許庁の特許情報をグーグル流に検索しやすくしたサイトです。

アメリカの特許庁データベースでできる詳細な検索はできないようですが(例えば、出願人の州で絞込むことは無理みたい)、検索結果の表示が速いので用途によっては使えそうですね。

今回は、このグーグルパテントでのフレーズ検索に役立つマクロです。

「googlepatentsearch.dot」をダウンロード

●使い方
英語のフレーズの検索用です。

ワード文書中で、検索対象のフレーズを選択して、右クリックすると「グーグル特許検索_フレーズ」という項目が表示されます。

この項目をクリックすると、インターネットエクスプローラが立ち上がり、検索結果を表示します。

詳しい使い方は、「ぐーぐる検索用の右クリックマクロ」などをご覧ください。

●工夫
引数付きでプロシージャを呼び出すマクロです。プロシージャとは、プログラムのことです。VBAでは、マクロというプログラムのことを、プロシージャと呼びます。

プロシージャの説明は、こちらに少し記載されています。ご覧ください。

●プログラム説明
グーグルのフレーズ検索のプログラムとかなり異なります。どちらかというと、ワイルドカード検索のプログラムに近いです。

グーグルの検索では、検索するフレーズ(単語の集まり)にたいして、単語と単語とがスペースでつながれています。

よって、選択した範囲の文字列をそのまま検索すればよいのです。

ところが、グーグルパテントでは、検索するフレーズ(単語の集まり)にたいして、グーグルパテントでは、単語と単語を”+”(半角のプラス記号)でつなぐ必要があります。

よって、選択した文字列を単語ごとに分解して、それぞれを"+"でつなぎ合わせる処理をしました。

例:
word macro というフレーズを検索するときの文字列の作成例
グーグル検索  "word macro"
グーグルパテント検索  "word+macro"

他の簡単な方法をご存知の方いらっしゃったら教えてください。

●キーワード
split関数、繰り返し処理、引数、エクスプローラ起動

| | コメント (0) | トラックバック (0)

2009年3月 7日 (土)

案件名でフォルダやファイルを開くマクロ

よく使うフォルダを登録しておき、そのフォルダのなかのサブフォルダやファイルを開くことが出来るマクロです。

(3月14日追記:3月7日にアップしたマクロテンプレートのプログラムに誤記があり、作動不良がございました。修正いたしました。)

「folder_and_file_open.dot」をダウンロード

●用途1(フォルダを開く)
特定の案件用のフォルダがあるとして、その中に「客先向け」「自社向け」などとサブフォルダがあるとします。

このときに、インプットボックスで「客先向け」もしくは「自社向け」と入力すると、その入力した名称に応じたフォルダが開きます。

●用途2(ファイルを開く)
特定の案件用のフォルダに案件番号をつけたファイルを保存している場合には、案件番号を入力すれば、そのファイルが開くようになっています。

●使用方法

①特定のフォルダを登録します。

マクロテンプレートをエディタ画面で開いて下さい。詳細は、「ワードで実践」のP13などをご参照ください。)

Folder_file_open4

テンプレートの中の標準モジュールに「ファイルを開くマクロ」と「フォルダを開くマクロ」の二つのプログラムがあります。

それぞれのプログラムの60行目(プログラムの左端に書いてあります)に

myfilePath = "C:\Documents and Settings\新田順也\My Documents\マクロ集"

とありますが、この着色されたところにフォルダへのパス(住所みたいなもの)が記載されています。

上記のコード例では、myfilePathという変数にフォルダパスを格納しています。

具体的に言うと、現在の設定では、マイドキュメントのフォルダにある「マクロ集」というフォルダが、登録されています。

フォルダのパスは、フォルダを開いたときに、アドレスの欄に表示されているものです。

Folder_file_open2_2

この表示例では、"C:\Documents and Settings\新田順也\My Documents\マクロ集"がパスになります。

よく使うフォルダのパスをご自身で登録してみてください。

②案件番号を入力して動作確認
テンプレートを登録すると、ツールバーに二つのボタンが表示されます。

Folder_file_open

左側のボタンが「フォルダを開くマクロ」の実行用であり、右側のボタンが「ファイルを開くマクロ」の実行用です。

Folder_file_open3ボタンを押すと、案件名を入力するインプットボックスが表示されますので、ここに案件名を入れます。

なお、このプログラムではワード文書の名前を正確に入力した場合にのみ作動します。

ワード文書(拡張子が.doc)以外の文書のファイル名を入力した場合には、入力したファイル名のワード文書を探して表示します。

もしそのファイルがない場合には、「ファイルが見つかりません。」というメッセージとともにプログラムが終了するようにしました。

エラー処理は110~170行に記載されています。ご覧ください。

●工夫
プログラム自体は基本的なものの組み合わせです。

行番号を入力したので、プログラムを表示しなくても説明ができるので、便利です。

ファイル名を思い出しやすい名称(例えば、案件番号など)で管理されている方には、便利なプログラムだと思います。

| | コメント (0) | トラックバック (0)

« 2009年2月 | トップページ | 2009年4月 »