« 2009年9月 | トップページ | 2009年11月 »

2009年10月の7件の記事

2009年10月31日 (土)

Replace関数の例:右クリックでグーグルに活用してみた。

先週のコメントにてKonnoさんから教えていただいたReplace関数
を用いたプログラムです。

以下、ここ1年ほどの、私がつくってきた同じプログラムの改良の過程です。

2008年8月3日に公開した右クリックでグーグルのテンプレート
に掲載されていたプログラムを初代として、現在までに改良した
4世代を紹介します。(初代以降は、本日初公開)

当初、80行かけて書いていた「右クリックでグーグル_ワイルドカード検索」
ですが、いろんな学びをへて、今日書いたプログラムはたった4行です。

ご興味がある方、長いですが見比べてみてください。

無駄がたくさんあったプログラムが、ちょっとした知識で変わっていく
過程がみれますね。

自分でも成長を実感できてうれしいかぎりです。

Konnoさん、どうもありがとうございました。

ちなみに、処理スピードですが、体感スピードは全く変わりません。
それが、VBAの楽しいところですね。

ヘルプを活用して新しい関数を使って”高度な”プログラム
をかけなくても、基礎にのっとって、”エラーのない泥臭い”プログラムを
書けば、結果は同じことが得られるんですね。

パソコンの処理性能が上がったおかげで、このような状態なんだと
思います。

私たち初心者プログラマーにはうれしいことですね。

▼第4世代プログラム 2009年10月31日
ポイント Replace関数の利用(Split関数利用を中止)
Split関数で必要とされていた「半角スペースが選択されていない場合の
エラー処理」が不要になりました。
第3世代で省略した「全角スペース区切り文字列」へも対応します。

結果、25行→4行

Sub 第4世代_グーグル検索_ワイルドカード()

      Dim phrase As String    '複数の単語の塊
      Dim URL As String       '開きたいサイトのURL

      '抽出した単語から検索用のフレーズを作る(半角スペース区切り)
10    phrase = Replace(Selection.Range, " ", "+*+")

      '抽出した単語から検索用のフレーズを作る(全角スペース区切り)
20    phrase = Replace(phrase, " ", "+*+")

30    URL = "http://www.google.co.jp/search?q=%22" & phrase & "%22&lr="
40    ActiveDocument.FollowHyperlink address:=URL, AddHistory:=True

End Sub

▼第3世代プログラム 2009年7月26日
ポイント 100行のSplit関数、120行のUBound関数の利用
区切られた単語の数を数える必要がなくなったので、行数削減
半角スペースで区切られた文字列を検索するようにした
以前は対象としていた「全角スペース区切りの文字列の処理」は、
Split関数使用にあたり省略

結果、45行→25行へ

Sub 第3世代_グーグル検索_ワイルドカード()

      Dim phrase As String    '複数の単語の塊
      Dim URL As String       '開きたいサイトのURL
      Dim SS, SE As Long      '選択した文字列のカーソル位置
      Dim myRange As Range    'レンジオブジェクト
      Dim strWord() As String '半角スペースで区切られた文字列
      Dim i As Integer

10       On Error GoTo vct_グーグル検索_ワイルドカード_Error

20    SS = Selection.Start
30    SE = Selection.End

      'Rangeオブジェクトの設定
40    Set myRange = ActiveDocument.Range

      '選択範囲の最後が改行記号の場合の処理
50    myRange.SetRange Start:=SE - 1, End:=SE

60    If myRange = chr(13) Then
70        SE = SE - 1
80    End If

      '単語の検索(半角・全角スペース以外の文字列を検索します)
90    myRange.SetRange Start:=SS, End:=SE

      '選択したフレーズ中の単語を抽出
      '区切り文字を" "(半角スペース)に設定
100   strWord() = Split(myRange, " ")

      '抽出した単語から検索用のフレーズを作る
110   phrase = strWord(0)

120   For i = 1 To UBound(strWord)
130       phrase = phrase & "+*+" & strWord(i)
140   Next

150   URL = "http://www.google.co.jp/search?q=%22" & phrase & "%22&lr="
160   ActiveDocument.FollowHyperlink address:=URL, AddHistory:=True

170   Set myRange = Nothing

180      On Error GoTo 0
190      Exit Sub

vct_グーグル検索_ワイルドカード_Error:

200   If Err = 9 Then
210       phrase = vbNullString
220       End
230   Else
240       MSGBOX "エラーが発生したため終了します。" & Err
250   End If

End Sub

▼第2世代プログラム 2009年6月21日
ポイント Rangeオブジェクトを利用 考え方は、初代プログラムと同じ。
Selectionオブジェクトにくらべ、プログラム自体の不要な行数が減った。
また、検索ダイアログボックスを初期化する必要がなくなったので、
初代プログラムにあった670行~800行のコードが不要になった。
40行~70行は、選択下文字列の最後が改行マーク(vbCr)の場合の処理。

結果、80行→45行。

Sub 第2世代_グーグル検索_ワイルドカード()

      Dim phrase As String    '複数の単語の塊
      Dim URL As String       '開きたいサイトのURL
      Dim SS, SE As Long      '選択した文字列のカーソル位置
      Dim myRange As Range    'レンジオブジェクト

10    SS = Selection.Start
20    SE = Selection.End

      'Rangeオブジェクトの設定
30    Set myRange = ActiveDocument.Range

      '選択範囲の最後が改行記号の場合の処理
40    myRange.SetRange Start:=SE - 1, End:=SE

50    If myRange = Chr(13) Then
60        SE = SE - 1
70    End If

      '単語の検索(半角・全角スペース以外の文字列を検索します)
80    myRange.SetRange Start:=SS, End:=SS

90    With myRange.Find
100       .Text = "([!  ]{1,})"
110       .Forward = True
120       .Wrap = wdFindStop
130       .MatchByte = True
140       .MatchWildcards = True
150       .Execute
160   End With

      'スペースを選んだ場合はプログラム終了
170   If Not myRange.Find.Found Then
180       MsgBox "スペースで区切られた複数の単語を選択してください。"
190       End
200   End If

      '選択範囲の先頭に単語が含まれない場合にはプログラム終了
210   If myRange.Start <> SS Then
220       MsgBox "スペースで区切られた複数の単語を選択してください。"
230       End
240   End If

      '単語が見つかった場合には、見つかった単語を格納
250   If myRange.Find.Found = True Then phrase = myRange

      '二つめ以降の単語の検索

260   Do
          '次の単語の検索(半角、全角スペース以外の文字列を検索します)
270       myRange.SetRange Start:=myRange.End, End:=myRange.End
280       myRange.Find.Execute
         
290       If myRange.Find.Found = False Then
300           Exit Do
310       Else
              '末尾をそろえるための確認(日本語のとき役に立ちます)
320           If myRange.End > SE Then
330               myRange.End = SE
340           End If
             
350           If myRange.Start >= SE Then
360               Exit Do
370           Else
380               phrase = phrase & "+*+" & myRange
390               myRange.Collapse direction:=wdCollapseEnd
400           End If
410       End If

420   Loop

430   URL = "http://www.google.co.jp/search?q=%22" & phrase & "%22&lr="
440   ActiveDocument.FollowHyperlink address:=URL, AddHistory:=True

450   Set myRange = Nothing

End Sub

▼初代プログラム 2008年8月3日
ポイント Selectionオブジェクトにて、全ての処理を実施。
全角スペースまたは半角スペースで区切られた文字列を
一つずつSelectionで探し出して、フレーズを作っています。

Sub 初代_グーグル検索_ワイルドカード()

      Dim word As String      '選択された文字列内の単語ひとつずつ
      Dim Phrase As String    '複数の単語の塊
      Dim URL As String       '開きたいサイトのURL
      Dim SS, SE As Long          '選択した文字列の最終カレット位置

10    SS = Selection.Start
20    SE = Selection.End

      '最初の単語の検索

          '単語の検索(半角・全角スペース以外の文字列を検索します)
30        With Selection.Find
40            .Text = "([!  ]{1,})"
50            .Replacement.Text = ""
60            .Forward = True
70            .Wrap = wdFindStop
80            .Format = True
90            .MatchCase = False
100           .MatchWholeWord = False
110           .MatchByte = False
120           .MatchAllWordForms = False
130           .MatchSoundsLike = False
140           .MatchFuzzy = False
150           .MatchWildcards = True
160       End With
         
170       Selection.Find.Execute
         
          'スペースを選んだ場合はプログラム終了
180       If Not Selection.Find.Found Then
190           MsgBox "スペースで区切られた複数の単語を選択してください。"
200           End
210       End If
         
          '単語をひとつ選んだ場合にはプログラム終了
220       If Selection.Start <> SS Then
230           Selection.Start = SS
240           Selection.End = SE
250           MsgBox "スペースで区切られた複数の単語を選択してください。"
260           End
270       End If
         
280       If Selection.Find.Found Then Phrase = Selection

      '二つめ以降の単語の検索

290   Do
          '単語の検索(半角、全角スペース以外の文字列を検索します)
300       With Selection.Find
310           .Text = "([!  ]{1,})"
320           .Replacement.Text = ""
330           .Forward = True
340           .Wrap = wdFindStop
350           .Format = True
360           .MatchCase = False
370           .MatchWholeWord = False
380           .MatchByte = False
390           .MatchAllWordForms = False
400           .MatchSoundsLike = False
410           .MatchFuzzy = False
420           .MatchWildcards = True
430       End With
         
440       Selection.Find.Execute
         
450       If Not Selection.Find.Found Then Exit Do
         
460       If Selection.Find.Found Then
         
470           If Selection.End > SE Then
480               Selection.End = SE '末尾をそろえるための確認(日本語のとき役に立ちます)
490           End If
             
500           If Selection.Start = Selection.End Then
510               Selection.Start = SS
520               Selection.End = SE
530               MsgBox "スペースで区切られた複数の単語を選択してください。"
540               End
             
550           Else
560               word = Selection
570               Selection.Collapse direction:=wdCollapseEnd
580               Phrase = Phrase & "+*+" & word
590               Selection.Start = Selection.End
600               Selection.End = SE
             
610           End If
             
620       End If
         
630       If Selection.Start = SE Then Exit Do

640   Loop

650       URL = "http://www.google.co.jp/search?q=%22" & Phrase & "%22&lr="
660       ActiveDocument.FollowHyperlink address:=URL, NewWindow:=False, AddHistory:=True

          '検索窓をデフォルトの設定に変更
670       With Selection.Find
680           .Text = ""
690           .Replacement.Text = ""
700           .Forward = True
710           .Wrap = wdFindStop
720           .Format = True
730           .MatchCase = False
740           .MatchWholeWord = False
750           .MatchByte = False
760           .MatchAllWordForms = False
770           .MatchSoundsLike = False
780           .MatchWildcards = False
790           .MatchFuzzy = True
800       End With

End Sub

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

2009年10月25日 (日)

ユーザーフォームのテキストボックス内で改行文字列を取り出す(その3)

先日の「ユーザーフォームのテキストボックス内で
改行文字列を取り出す(その2)」のつづきです。

http://wordvba.cocolog-nifty.com/blog/2009/10/post-7d52.html

前回、テキストボックス内の文字列中の
改行記号(vbCrLf)を★●★に置換してから
.iniファイルに保存する方法を紹介しました。

今回は、前回と逆の作業の紹介です。

①.iniファイルに保存された文字列中の「★●★」を
「改行記号(vbCrLf)」に置換

②置換された文字列をテキストボックスに表示

上記①と②を実行するマクロです。

▼プログラム
Sub GetTextData()
       
      'データ取得用プログラム

      Dim strWord() As String '★●★で区切られた文字列
      Dim i As Integer
      Dim myData As String '.iniファイルから取得した文字列
      Dim myMessage As String 'テキストボックスに表示用文字列

10    On Error GoTo Errorhandler

      '.iniファイル(ファイル名.ini)から保存済みの文字列を取得
20    myData = System.PrivateProfileString("ファイル名.ini", _
               "textdata", 1)
               
      '取得した文字列が空の場合、vbNullStringとする
30    If Len(myData) = 0 Then
40        myMessage = vbNullString
50    Else
      '取得した文字列が空ではない場合、★●★を改行記号(vbCrLf)に置換する
          '①★●★にて、取得した文字列を分解
60        strWord() = Split(myData, "★●★")
         
          '②分解した文字列の間に改行(vbCrLf)を挿入
70        myMessage = strWord(0)
         
80        For i = 1 To UBound(strWord)
90            myMessage = myMessage & vbCrLf & strWord(i)
100       Next
         
110   End If

JN:

120   TextBox1.Value = myMessage
130   TextBox1.SetFocus

140      On Error GoTo 0
150      Exit Sub

Errorhandler:
         
          '取得した文字列に★●★がない場合
160       If Err = 9 Then
170           myMessage = myData
180           GoTo JN
190       Else
200           MsgBox "エラーが発生しました。終了します。"
210           End
220       End If
         
End Sub

▼プログラムの解説

10行、160行~220行
エラー処理です。
想定しているエラーは、取得した文字列に★●★が
含まれない場合です。

以前、このプログラムを作ったときには、このエラー処理は
必要だと思ったのですが、今実行すると、その必要性が
よくわかりません。。。

ひとまず、書いておいて問題は無いと思うので、そのままに
しました。いい加減で失礼します。

130行 
テキストボックスにフォーカス(カーソル)を移動

次回は、このシリーズの最終回(その4)です。

今までのプログラムをユーザーフォームに書き込んで
一つのプログラムとして作動するものを紹介します。

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

2009年10月19日 (月)

ベクターにテンプレート公開

ようやく、Vector (ベクター)に登録が完了しました。

Vector(ベクター)とは、ソフト登録数国内最大規模の
オンラインソフトウェア流通サイトです。

充実したダウンロードライブラリがあり、パソコンの
無料・有料ソフトが掲載されています。

このベクターに、私のワードマクロを掲載させて
いただくことになりました。

こちらをご覧ください。

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

2009年10月18日 (日)

「特許翻訳まなびの会」の河崎さんにお会いしました。

以前から、このブログを紹介していただいている「特許翻訳まなびの会」
管理者であり特許翻訳者である河崎有美さんに初めてお会いしました。

私が河崎さんをたずねていったとか、仕事の都合で会ったとか
そういう訳ではなく、特許翻訳とかマクロとかそういうものは全く
関係のないイベントで偶然お会いしたのです。

今日は、その偶然の出会いの紹介。

昨日、大阪で行われたセミナーコンテスト(通称:セミコン)
にオブザーバーとして参加してきました。

私のメルマガでは紹介してあったのですが、私は11月7日に
開催される名古屋のセミナーコンテストに出場します。

その下見や勉強もかねて、名古屋のセミナーコンテストに参加する
仲間と大阪のセミナーコンテストを「体験」してきたわけです。

で、今回の大阪セミコンに河崎さんが出場されていたんですね。

偶然の出会いでした。

河崎さんが発表されたセミナーの内容は、特許翻訳に関するもの
ではありません。

「本当の笑顔の取りもどす方法」とのことで、オリジナリティ
あふれる体験・ノウハウや、リラックスした話し方に引き込まれました。

セミコンでは、その出場者のひととなりがすごく発表内容に
あらわれるので、その点で非常に楽しめます。

出場者の7名の方々の本気度合いもビリビリ感じて、胸が熱くなる
瞬間が何度もありました。

自分の発表はまだ内容が確定していませんが、この大阪セミコンの
学びをいかして、等身大の自分を表現できる話をしたいと思いました。

ところで。。。

特許用のワードマクロの話で盛り上がれる人はほとんどいないので、
私のマクロに興味を示していただいている河崎さんにお会いできて
うれしかったです。

河崎さんはきさくな方で、いろんなお話をさせていただきました。

懇親会に向かう道、また懇親会で、特にワードマクロの話ばかりさせて
いただきました。少しうっとおしく感じられたかも。。。

「思いがけない出会い」のおまけつきのセミコン視察となりました。

河崎さん、ありがとうございました。

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

2009年10月11日 (日)

ワードの下付き文字の書式情報をテキスト情報に変換するマクロ

今回は、先日のあの手・この手の特許翻訳の秀丸マクロセミナー
での話題に関するものです。

秀丸にて英訳をする場合に、原文のワード文書の書式が
崩れてしまうことがあります。

たとえば、ワード文書では、下付き文字、上付き文字、
太文字などありますが、秀丸に文章をコピーすると
これらの文字の書式がなくなってしまいます。

よって、ワードの文字書式をテキスト情報で維持する
ためのマクロがあると便利だねという話がありました。

▼プログラム内容
今日紹介するのは、下付き文字の書式を<sub>と</sub>のタグで
囲むことで、書式情報をテキスト情報に置換するマクロです。

また、秀丸で翻訳したのちに、ワード文書で再度
下付き文字に変換するマクロもあわせて紹介します。

二つセットでお使いください。

太文字や上付き文字も同様のマクロで実行可能です。

なお、このプログラムの考え方は、特許翻訳者の
水野麻子さんの私塾でワードマクロの授業で習いました。

htmlで使われるタグの記号をうまく使えば、うまく処理できます。

▼プログラム1(下付き文字書式をテキスト情報へ変換)
Sub 下付き文字のテキスト変換()
         
      Dim myRange As Range

10    Application.ScreenUpdating = False

20    Set myRange = ActiveDocument.Range(0, 0)

30    With myRange.Find
40       .Wrap = wdFindStop
50       .Font.Subscript = True
60       .Execute findText:=""
70    End With

80    Do While myRange.Find.Found = True
90        myRange.Font.Subscript = False
100       Selection.SetRange Start:=myRange.End, End:=myRange.End
110       Selection.TypeText Text:="</sub>"
120       Selection.SetRange Start:=myRange.Start, End:=myRange.Start
130       Selection.TypeText Text:="<sub>"
140       myRange.Collapse
150       myRange.Find.Execute
160   Loop

170   Selection.HomeKey unit:=wdStory
180   Application.ScreenUpdating = True

End Sub

▼プログラム2(テキスト情報から、下付き文字書式へ変換)
Sub テキストの下付き文字変換()
         
      Dim myRange As Range

10    Application.ScreenUpdating = False

20    Set myRange = ActiveDocument.Range(0, 0)

30    With myRange.Find
40       .Wrap = wdFindStop
50       .MatchWildcards = True
60       .Execute findText:="[<]sub[>]*[</]sub[>]"
70    End With

80    Do While myRange.Find.Found = True
90        myRange.Font.Subscript = True
100       Selection.SetRange Start:=myRange.End, End:=myRange.End - 6
110       Selection.Delete
120       Selection.SetRange Start:=myRange.Start, End:=myRange.Start + 5
130       Selection.Delete
140       myRange.Collapse
150       myRange.Find.Execute
160   Loop

170   Selection.HomeKey unit:=wdStory
180   Application.ScreenUpdating = True

End Sub

▼プログラム1の解説

20行~70行
下付の任意の文字列を探す命令です。
rangeオブジェクトを使いましたが、selectionオブジェクトでも
同じです。

検索対象のテキストを空欄にして、検索したい書式(今回は下付)
だけを指定すると、指定した書式をもつ任意の文字列を検索
できます。

これは、通常の「検索と置換」ダイアログボックスでの
考え方と同じですね。

80行~160行
下付文字列が見つかった場合に、<sub>と</sub>を前後に
書くための命令です。

▼プログラム2の解説

20行~70行
<sub>と</sub>とで囲まれた文字列を検索する命令です。

検索対象文字列が以下のようになっていることに注目。
findText:="[<]sub[>]*[</]sub[>]"

findText:="<sub>*</sub>"

ではありません。

今回の検索では、「*」を用いて、0以上の任意の文字列を
検索をするために、ワイルドカード検索をしています。

ワイルドカード検索の場合には、ワイルドカード検索で用いる
特殊記号(たとえば、*, ^, [, ], <, >など)を検索の
文字列に利用することができません。

なので、例えば、「<」を検索文字列であることを示すため、
[<]として、前後をスクウェアブラケットで囲んでいるわけです。

ちなみに、[を検索する場合には、[[]というように書きます。

▼工夫
カーソル移動に以下の構文を使いました。

Selection.SetRange Start:=カーソル開始位置, End:=カーソル終了位置

上記のプログラムでは、下付き文字を
ひとつひとつ検索して書き換えをしています。

もう少し工夫すると、同様の文字列を一括置換したり
できるので、処理が早くなるかもしれません。

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

2009年10月10日 (土)

ユーザーフォームのテキストボックス内で改行文字列を取り出す(その2)

先日の「ユーザーフォームのテキストボックス内で
改行文字列を取り出す(その1)」
のつづきです。

ユーザーフォームのテキストボックスでの改行記号は、
vbCrLfであることを前回説明しました。

今回は、このテキストボックス内の文字列を
.iniファイルに保存する方法を紹介します。

これが唯一の方法ではないですが、自分で思いつくままに
作ってみました。

他によい方法をご存じの方は教えてください。
よろしくお願いします。

▼考え方
テキストボックス内の「改行記号」を「別の文字列」に置換して
その置換された文字列全体を.iniファイルに保存します。

保存した文字列を読み込むときには、「別の文字列」を
「改行記号」に置換してからテキストボックスに表示します。

▼具体例
テキストボックス内で改行記号を含む文字列をそのまま.iniファイル
に保存した場合、文字列が.iniファイル内で改行されてしまいます。

すると、保存した文字列を読み出す場合に、改行される前までの
文字列しか読み出せないという現象がおこります。

たとえば、

あいうえお(改行)
かきくけこ

※:上記で(改行)は改行されているという意味であり、
(改行)という文字が表示されているわけではありません。

という文字列がテキストボックス(TextBox1)に書かれていた場合、
TextBox1.Valueで取得できる文字列は

TextBox1.Value = "あいうえお" & vbCrLf & "かきくけこ"

です。

これは前回ご紹介の通りです。

で、このまま.iniファイルの[textdata]という区分のtext1に保存すると、

[textdata]
text1=あいうえお(改行)
かきくけこ

という状態で保存されます。
(保存方法は、こちらをご覧ください)

この保存された文字列を読み出すときには、text1に対応する文字列は
改行までの「あいうえお」の文字列のみとなります。

そこで、この改行記号をとりのぞくために、保存する前に
「置換するプロセス」を組み込んだのが今回紹介するプログラムです。

▼保存する文字列の例
改行記号(vbCrLf)を★●★に置換します。

TextBox1.Value = "あいうえお" & vbCrLf & "かきくけこ"

TextBox1.Value = "あいうえお" & "★●★" & "かきくけこ"

この文字列を.iniファイルの上記と同じtext1に保存すると
以下のようになります。

[textdata]
text1=あいうえお★●★かきくけこ(改行)

これなら、text1から★●★でつなげられた
「あいうえお」と「かきくけこ」とが読み出せますね。

▼プログラム
Sub StoreTextData()

      '保存用のプログラム

      Dim strWord() As String '改行で区切られた文字列
      Dim myTextData As String '保存用文字列
      Dim i As Integer

10       On Error GoTo StoreData_Error

      'テキストボックスに文字が入力されていない場合には
      '保存用文字列は空(vbNullString)とする
20    If Len(TextBox1.Value) = 0 Then
30        myTextData = vbNullString
40    Else
      'テキストボックスに文字列が入力されている場合には
          '改行記号を★●★に置換する
          '①vbCrLfにて、取得した文字列を分解
50        strWord() = Split(TextBox1.Value, vbCrLf)
         
          '②分解した文字列の間に★●★を挿入
60        myTextData = strWord(0)
         
70        For i = 1 To UBound(strWord)
80            myTextData = myTextData & "★●★" & strWord(i)
90        Next

100   End If

JN:

      '保存用文字列を.iniファイルに保存
110   System.PrivateProfileString("ファイル名.ini", _
               "textdata", 1) = myTextData
               
120      On Error GoTo 0
130      Exit Sub

StoreData_Error:
         
          'TextBox1に改行がない場合
140       If Err = 9 Then
150           myTextData = TextBox1.Value
160           GoTo JN
170       Else
180           MsgBox "エラーが発生しました。終了します。"
190           End
200       End If

End Sub

▼解説
上記のプログラムでは、50~90行にて
改行記号(vbCrLf)を★●★に置換しています。

置換のためにSplit関数を用いているのですが、
他にもやり方はありそうです。

苦し紛れで、この方法を思いつきました。

なお、どのような文字列に置換してもいいのですが、
普段は使わない記号をおすすめします。

なぜなら、この保存した文字列を読み込むときに、
この★●★を今度は改行記号に置換しなおして、
テキストボックスに表示させる処理をするからです。

次回、.iniファイルに保存したこの文字列を
再度テキストボックスに表示させるプログラムを
紹介します。

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

2009年10月 3日 (土)

あの手・この手の特許翻訳 (ブログの紹介)

特許翻訳のノウハウを公開しているブログです。

http://www.zoomin.co.jp/patbank/rensai/sugiyama.html

このブログの著者である杉山範雄さんのセミナーに
参加しました。

http://www.zoomin.co.jp/patbank/school/honyakuPCsemi.html

杉山さんは、SimplyTermsという翻訳支援ソフトや
自作の秀丸マクロを用いて、特許翻訳の品質向上と
速度向上とを実践されています。

SimplyTermsというのは、特許翻訳者の井口耕二さんが
開発したフリーソフトであり、俗に言う「上書き翻訳」という手法の
支援ソフトです。

水野麻子さんのCT方式と同じ考え方です。

コンピュータと人間との翻訳作業の役割分担をします。

結果、「人間がすべきところ」に注力することができるので、
品質の向上と速度の向上が両方達成できるわけです。

ちなみに、私は水野麻子さんのCTユーザーなので
上書き翻訳の威力は、日々感謝しながら体験しております。

ワードマクロを習うと、CTソフトの改良ができるので
さらなる業務効率の向上が期待できます。いいですよ。

話がそれましたが、杉山さんのセミナーはすばらしかったです。

ワードマクロ作りは、つくづく、アイディア勝負だと思って
いるのですが、杉山さんの秀丸マクロも、たくさんの
アイディアがつまっていました。

杉山さんのきめ細かな作業フローは、「そこまでやるの?」
みたいな内容もありました。

普通面倒でやらないことも、品質向上のためにされていました
ので、こういうところが差別化の一つなんだなと実感しました。

で、そういう「そこまでやるの?」の作業は、マクロで
実行するので、一瞬です。

すてきな役割分担の関係です。

ブログには、そういう翻訳作業の考え方や、実際の翻訳手法
についても書かれています。

参考にしながら、いい仕事をしたいですね。

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

« 2009年9月 | トップページ | 2009年11月 »