トップページ | 2008年8月 »

2008年7月の13件の記事

2008年7月28日 (月)

日本語フォント検索・着色マクロ

●動作説明

文書中の日本語を検索して、黄色に蛍光着色します。

実際に検索対象文字は、半角英数文字および半角記号以外の文字です。
結果的に、日本語が検索されます。

設定は、ワイルドカード検索にて検索対象を ([! -~^t^13^l^m]{1,}) としています。

Wordで実践 やさしくて役に立つ「マクロ」事例集 のP155に解説があります。
ご覧ください。

昨日、([! -~]{1,})を検索対象として掲載いたしましたが、間違いでした。

この検索を実行すると、確かに日本語は検索されるのですが、日本語以外の
改行も含めて検索されてしました。

よって、日本語が記載されていない英文資料であっても、改行やタブが入って
いるがために、日本語が記載されていると判定されてしまうのです。

よって、検索対象外のリストに、タブと改行の記号を追加して、
([! -~^t^13^l^m]{1,})と記載すればうまくいきます。

●用途

日英翻訳にて、お客さんに納入するファイルに日本語のメモが残って
いないかどうか確認するときに使っています。

●プログラム

Sub 日本語検索()
'日本語フォント(実際には、半角英数文字以外)を検索して
'蛍光色に着色するマクロです。

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Options.DefaultHighlightColorIndex = wdYellow
    Selection.Find.Replacement.Highlight = True
    With Selection.Find
        .Text = "([! -~^t^13^l^m]{1,})"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchFuzzy = False
        .MatchWildcards = True
    End With
   
    Selection.Find.Execute
    If Selection.Find.Found = True Then
        Selection.Find.Execute Replace:=wdReplaceAll
        MsgBox "日本語フォントを着色しました。ご確認ください。"
    End If
   
    If Selection.Find.Found = False Then
        MsgBox "日本語フォントは見つかりませんでした。"
       
    End If
   
    With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = ""
        .Replacement.Text = ""
        .MatchWildcards = False
        .MatchFuzzy = True
    End With
   
End Sub

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

2008年7月23日 (水)

Esp@cenetの特定ページへのリンク自動作成

欧州特許庁のEspacenetへのリンクを自動で作成するプログラムです。お試し版です。テンプレートをダウンロードしてお使いください。プログラムのミスがあれば教えてください。修正します。

特許のファミリーや概略をチェックしたり、PDFデータを入手したりするのに便利!!

最新版のテンプレートはこちら

●留意点

PDFファイルのデータを入手するには以下の手順が必要です。
①書誌事項かファミリーのページをクリックして画面を表示させる
②PDFデータのリンクをクリックしてパスワード画面を表示させる

上記①をしないと、②の画面でパスワードの入力ができません。

●使い方

Espace1 ①特許番号の入力
左の画像のとおり、国番号の半角英語大文字を2文字いれて、特許公開公報番号もしくは特許番号を半角数字で記載します。

数字の直後で改行します。

Espace2 ②リンクの作成
画面左上に見えるボタン(欧州特許庁のマークを真似して作りました)を押します。

マクロ実行の確認メッセージが出るので、OKをクリックするとマクロが実行されて、イメージのとおりリンクが作成されます。

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

2008年7月22日 (火)

グーグルのフレーズ検索マクロ

先日のグーグルの右クリックマクロの応用版です。最新のテンプレートはこちら。

通常のグーグル検索のプログラムとの違いは、キーワードの前後に%22があるということです。これが「"」ひとつを意味するみたいです。

グーグルの通常の検索結果のURLとフレーズ検索のURLとの比較して上記のことに気がつきました。

●プログラム

Sub フレーズでグーグル検索()

Dim word As String
Dim URL As String

word = Selection
URL = "http://www.google.co.jp/search?q=%22" & word & "%22&lr="

ActiveDocument.FollowHyperlink address:=URL, NewWindow:=False, AddHistory:=True

End Sub

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

置換マクロ実行後の設定デフォルト化

selection を用いた置換処理のマクロを実行すると、そのマクロでつかった書式が、その次に「検索と置換」の設定に反映されてしまいます。

たとえば、マクロで「置換後の文字列に蛍光ペン」を設定したり、または「検索する文字列に下線の条件」を設定したりすると、その設定が、通常の「検索と置換」のウインドウにそのまま残ってしまいます。

そうすると、設定の解除が面倒です。また、きづかずに検索をしてしまうと、目的の単語を検索できなくなることがあります。

そうならないように、下記のプログラムを、マクロの最後に記載しておきます。これは、書式をすべてデフォルトに戻すための設定です。僕の場合、ワイルドカードをもちいた検索・置換をよくおこなうので、ワイルドカードの設定をオフにして、あいまい検索をオンにするように記載されています。

●下記のプログラム文の説明

1行目: with selection.find 検索・置換窓の設定のことです。

2行目: 「検索する文字列」の書式設定の解除

3行目: 「置換後の文字列」の書式設定の解除

4行目: 「検索する文字列」の入力文字を削除(空欄を入れるという命令文です)

5行目: 「置換後の文字列」の入力文字を削除

6行目: ワイルドカードのチェックマークを消す

7行目: あいまい検索のチェックマークを入れる

8行目: End With 検索・置換の設定終わり

●プログラム文

    With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = ""
        .Replacement.Text = ""
        .MatchWildcards = False
        .MatchFuzzy = True
    End With

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

2008年7月20日 (日)

選択した文字列をグーグルで検索

選択されている文字列を、グーグルで検索するためのプログラムです。

使い勝手をよくするために、右クリックでマクロが実行されるようにテンプレートに設定しました。

●テンプレートのマクロの説明

このページの下に掲載されているテンプレートファイル「googlesearch1」をダウンロードして、ワードのStartUpフォルダもしくは、templateフォルダにコピーしてご利用ください。

選択された文字列の上にカーソルをあわせて右クリックをします。メニューに「グーグル検索」と表示されるので、そのメニューを選ぶと、インターネットブラウザが自動で立ち上がり、検索結果画面を表示します。

●プログラムの内容

Sub グーグル検索()

Dim word As String
Dim URL As String

word = Selection
URL = "
http://www.google.co.jp/search?q=" & word

ActiveDocument.FollowHyperlink address:=URL, NewWindow:=False, AddHistory:=True

End Sub

「googlesearch1.dot」をダウンロード →googlesearchの最新版へ

Googlemenue

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

プログラム中の改行表示の方法

視認性を高めるために、プログラム言語中にも改行を入れることができます。

プログラム言語中にいれる改行は 改行開始箇所に「_」(アンダーバー)を入力して、その続きは、改行後に続けてください。

以下のMessageは、同じことを意味します。
改行した二つ目の記載例のほうが見やすいですね。

●改行をしない記載例
Message = "キーワードの番号を入力してください。" & vbCr & "1:自動車" & vbCr & "2:建物" & vbCr & "3:飛行機" & vbCr & "ほかのキーワードがある場合は入力してください。"

●改行をする記載例
Message = "キーワードの番号を入力してください。" & vbCr _
                & "1:自動車" & vbCr _
                & "2:建物" & vbCr _
                & "3:飛行機" & vbCr _
               & "ほかのキーワードがある場合は入力してください。"

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

InputBoxやMsgBoxでの改行表示

InputBoxやMsgBoxに記載するメッセージ中に改行を入れることができます。このことで、メッセージの視認性が高まります。

●入力方法
改行箇所で & vbcr & を書くだけです。

●例文
defaultには、入力項目にあらかじめ記載したい文字列・数字を書きます。   

Message = "キーワードの番号を入力してください。" & vbCr & "1:自動車" & vbCr & "2:建物" & vbCr & "3:飛行機" & vbCr & "ほかのキーワードがある場合は入力してください。"
Title = "分野検索"
Default = 1
   
varNumber = InputBox(Message, Title, Default)

Kaigyoinputbox_2

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

InputBox 条件の選択と実行

インプット画面で条件を選んで、その選択された条件に応じて異なる処理をするコードです。

『Wordで実践 やさしくて役に立つ「マクロ」事例集』のP.68やP.104のプログラムに例がのっています。

下記の例文では、あらかじめ用意されたキーワードの中から番号を選んだり、用意されたキーワード以外の言葉を入力すると、それに応じて変数wordに入力されるキーワードがかわる(選択された条件に応じた処理をする)ことになります。

●変数の定義 
varNumberを、文字列・数値のどちらでも使えるVariantとして定義することがポイント

●プログラム
InputBoxに入れるMessage, Title, Defaultの変数を、別書きにしています。
このことで、InputBoxのプログラムの文章がすっきりしますし、同じような命令文があったときに、それぞれの変数の内容を書き換えることで使い回しが簡単にできます。

  Dim varNumber As Variant
  Dim word As String
  Dim Message As String
  Dim Title As String
  Dim Default As String


  Message = "キーワードの番号を入力してください。" & vbCr _
                & "1:自動車" & vbCr _
                & "2:建物" & vbCr _
                & "3:飛行機" & vbCr _
               & "ほかのキーワードがある場合は入力してください。"
    Title = "分野検索"
    Default = 1
   
    varNumber = InputBox(Message, Title, Default)
    If varNumber = "" Then End
   
    If varNumber < 1 Or varNumber > 3 Then
        word = varNumber
    End If
   
    If varNumber >= 1 And varNumber <= 3 Then
        Select Case varNumber
            Case 1
                word = automobile
            Case 2
                word = building
            Case 3
                word = airplane
        End Select
    End If

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

画面の更新の設定

マクロプログラムを実行して、検索や置換を繰り返すと、画面がめまぐるしく変わることがあります。

これを避けるために、マクロを実行中は画面の更新をしないように設定できます。

Application.ScreenUpdating = False (プログラム終了時にtrueに設定)

ワードのVBのヘルプには、下記のように記載されています。

引用始まり。

使用例

次の使用例は、画面の更新機能をオフにし、新しい文書を追加します。文書には 500 行の文字列が追加されます。マクロは、50 行ごとに行を選択し、画面を更新します。

Application.ScreenUpdating = False
Documents.Add
For x = 1 To 500
    With ActiveDocument.Content
        .InsertAfter "This is line " & x & "."
        .InsertParagraphAfter
    End With
If x Mod 50 = 0 Then
    ActiveDocument.Paragraphs(x).Range.Select
    Application.ScreenRefresh
End If
Next x
Application.ScreenUpdating = True
引用終わり。

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

選択解除の記述

検索・置換プログラムで選択されたテキストの選択を解除するときに使っています。

Selection.Collapse Direction:=wdCollapseEnd

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

確認用メッセージボックス

プログラム実行前に、実行を許可するためのメッセージボックスです。

msg = MsgBox("●●●を実行します。準備はよろしいですか?", vbYesNo)
  If msg = vbNo Then End
  If msg = vbYes Then 処理

●用途
下記のような場合に、注意を促すために利用したりしています。

・文書の書式や内容を大幅に変更するプログラムの実行前
・実行に際して、特別な準備をする必要があるプログラムの実行前

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

マクロのおすすめ書籍

ワードマクロに関する書籍の紹介です。

この本だけで、

・豊富な例文をつかって、マクロを体験できます。
・マクロ実行用ボタンをツールバーに追加する方法がわかります。
・マクロ実行用メニューの追加方法がわかります。
・処理の詳細な説明があるので、応用して自力でプログラムを作成できます。

自分もそうでしたが、プログラムの作成が初めての方にとっては、少しレベルが高くとっかかりにくい部分もあると思います。でも、ある程度の理解力がついてくると、この書籍のありがたみを感じられるようになると思います。

このブログでは、この書籍の内容に言及したり、引用したりして説明をしていきたいと思っています。

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

マクロで仕事を楽にするぞ!!

はじめまして。

このブログでは、翻訳や文章の編集に役に立つワードのマクロを紹介したいと思います。

ワードマクロVBAを習い始めたのは、2007年の12月です。

プログラム作成歴は、中学生のときに、雑誌の付録のMSXベーシックのプログラムをパソコンに入力してゲームで遊んでた程度です。自力でプログラムを作ったことはありませんでした。

現在は、ワイルドカードを用いた検索・置換のコードに、分岐処理や繰り返し処理を加えてプログラムを作成しております。案外、いろんなことができますね。

まだまだ初心者ですが、自分のメモ代わりにブログに記入していこうと思っています。

よろしくお願いします。

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

トップページ | 2008年8月 »