none
機械翻訳を自動化するマクロを組みたい RRS feed

  • 質問

  • Excelの翻訳機能を利用した機械翻訳を自動化したいと考えています。
    しかしマクロを組もうと思った時にその為のコードが全く分かりませんでした。

    どうしたら良いでしょうか。

    ■ 状況
    大きくても200行(レコード)、20列程度のテーブルがあります。
    通常は30~100行(レコード)、10列程度でしょうか。そこまで大量の処理はしません。
    このテーブルの中で任意の範囲(仮にB列)に1セル当たり1~10文(sentence)程度の英文が入っています。
    このB列の英文を翻訳する事を考えています。
    特定の英単語ではなく不特定の英文章なので「置換」ではなく「翻訳」が必要になります。
    とにかくこの任意の範囲が翻訳されていれば良いので、処理方法としてシートやブック丸ごとの処理でも構いません。
    一応今回のミソとしては、上記の様に翻訳対象を含むデータがテーブル状になっている、という点です。
    手動で1つ1つ操作するにはレコード数がそこそこ多くて手間がかかってしまいます。

    有償の翻訳ソフトを買えば一発で解決するのかもしれませんが、、、出来ればフリーな方法でと考えています。


    ■ 問題点

    今回はさっぱり分からない為、最初からつまずいています。

    Application.CommandBars.ExecuteMso "Translate"

    ↑これで翻訳の機能を呼び出すことはできますが、あくまで呼び出しだけなので

    翻訳文をシートに挿入することも、対象セルの制御も出来ていません。


    また、Excelの機械翻訳といっても大元の処理はMS Translatorなので
    こういったマクロ処理自体が推奨されていない気もしています。

    (もしMS TranslatorのAPIを利用するのであれば別途勉強せねば。APIに対しては全くの無知です。)

    ■ 理想

    1. 任意の範囲を選択し
    2. マクロを実行すると
    3. 任意の範囲の右隣にセルが挿入され
    4. 挿入されたセルに翻訳結果が追記される
    といったフローを想定しています。

    ※機械翻訳のため、選択した範囲に翻訳結果を上書きすることはせず、隣に表示して対比させようと考えています。

    しかしこの時、仮にB列を翻訳しようと選択した場合にC列にもデータが入っていることが多いため、上記フローではC列に新規列を挿入して元C列(挿入後はD列)の上書きを回避しています。

    内容は以上になります。どうぞ宜しくお願いします。

    • 編集済み junnny 2014年2月6日 1:14
    2014年2月6日 0:57