Excelに貼り付けた外国語をDeepLで一括翻訳(連続翻訳)するアプリケーション(DeepLのAPI不使用)

# Simple Translator(外国語翻訳ツール)

![jobs.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/91b0f7f6-101e-d155-427b-9cbd5eca7373.gif)

### GitHubの日本語ページはこちら

https://github.com/masatofujiki/SimpleTranslator/blob/main/README_JA.md

# 概要

WEBの記事などに記載された外国語(英語、中国語、ドイツ語、フランス語など)をコピーしてExcelシートの決められた場所に貼り付けてから「整形ボタン」を押して空白などを取り除いた後、「翻訳ボタン」を押すと、プログレスバーが表示されDeepLでの翻訳を開始し、翻訳が終了するとHTML文書を作成し、ブラウザで表示します。作成されたHTML文書はそのまま印刷するのも、PDFに変換するのも自由です。
「翻訳ボタン(シート)」を押したときはシートを追加し、追加したシートに翻訳結果を表示します。これはデバッグ用です。Excelシートはセルの文字数が多いと印刷時に文字が見切れるのでお勧めしませんが、簡易的な表示として残しています。

※翻訳が止まってしまった時やおかしくなった場合、黒いプロンプト画面を落としてからやり直してください。
※古いExcel(Excel 2010など)に対応しました。
※Word抜きでも翻訳できるようになりました。
※中国語などを翻訳するとき、翻訳結果が取得できず空欄になる場合があります。空欄部分を翻訳後に手動で修正できるようにするかどうか考え中です。手動修正できた方が良いならコメントください。ただし、プログラミングが本業ではないので時間がかかるかもしれません。

### 技術的に工夫した点

https://qiita.com/generalfujiki/items/009a9a1cc7e779e6dc12

# 課題

Selenium BasicとExcelを利用して、以下の外国語翻訳を行うツールを作成しましたが、2つの課題がありました。

https://github.com/masatofujiki/SimpleTranslator/blob/main/README_JA_OLD.md

第1の課題はSelenium Basicを動かすための.Net Framework3のインストールのハードルが高いということです。Selenium Basicの稼働には.Net Framework3のインストールを必要としますが新しいPCではレジストリを変更しないと.Net Framework3をインストールできないこともあり、.Net Framework3のインストールだけでも手間が掛かります。

第2の課題は数ヶ月に1度Google Chromeが更新され、Web Driverを更新せずに使うとエラーが出ることです。Google Chromeの更新があると、Google Chromeのバージョンに合わせたWeb Driverの実行ファイルを取得して所定の位置にコピーアンドペーストする作業が煩わしいです。

# 従来からの変更点

### (1)Selenium Basicのインストールを不要にした

上記第1の課題の通り、以前はSelenium Basicを使用してWeb Driverを動かし一括(連続)でDeepL翻訳していました。しかし、Selenium Basicはインストールする必要があり、ソフトウエアのインストールに制限のある職場ではSelenium Basicが使えません。どうにかしてSelenium BasicをインストールしないでWeb Driverが使えないか困っていたところ、以下の記事を見つけました。こちらの「TinySeleniumVBA」を使用したところ、Selenium BasicをインストールせずにWeb Driverを動作させることができました。ありがとうございます。

https://qiita.com/uezo/items/66e20b064ffd5f239b9a

### (2)Web Driverの更新を不要にした
上記第2の課題の通り、Web Driverが更新されると、更新されたWeb Driverをダウンロードして以前のWeb Driverを上書きしなければいけませんでした。Web Driverが更新されたときにユーザがWeb Driverを更新する作業は煩わしく面倒なので困っていたところ、以下の記事を見つけました。こちらの「WebDriverManager-for-VBA」を使用したところ、毎回Web Driverを更新するため、ユーザがWeb Driverを上書き更新する必要がなくなりました。ありがとうございます。

https://qiita.com/yamato1413/items/4b982aee46f28358fd39

# 必要なもの

### OS

- Microsoft Windows 10 または Microsoft Windows 11

### ソフトウェア

- Google Chrome
- Microsoft Excel 2010、Microsoft Excel 2016、Microsoft Excel 2019（Excel 2013、Excel 2021 は未確認）
- Chrome Driver

# 使い方

- [SimpleTranslator の zip ファイル][b]← クリックしてダウンロードします。
- 上記 1.でダウンロードした zip ファイルを解凍し、SimpleTranslator フォルダ内の SimpleTranslator.xlsm を開きます。
- 言語選択コンボボックスを選択します。
   ![img001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/c2fa222e-510e-6d6f-6e9e-51c84925cac5.png)
- 翻訳先の言語を選択します。
   ![img002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/948e008f-2fde-c6df-1f85-02c537c75429.png)
- 表示順を「翻訳文 → 原文」「原文 → 翻訳文」のどちらにするかのラジオボタンを選択します。
   ![img003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/0248c380-ce11-1721-514b-326b33e05c0f.png)
- [サンプルページ][c]に表示された英文をマウスでなぞってコピーします。
   ![img004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/2fd6e7f0-2dc9-5b0c-03fd-6e8185791f96.png)
- Excel のシート A2 で右クリックし、「貼り付けのオプション」で左から 2 番目のアイコンを選びます。
   ![img005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/d5131623-3cf2-b319-7f8e-8a314045683d.png)
- 空白行を詰めるための「整形ボタン」を押します。
   ![img006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/dee4d9a2-62c3-6d6a-b5d9-512a510c6f0b.png)
- 「翻訳(HTML)ボタン」を押します。
   ![img007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/4afd3998-db45-b4dd-bded-7a284ff3497a.png)
- 「名前を付けて保存」ダイアログが表示されます。
   ![img008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/0bcd0938-129a-d208-337c-2fdf68bef0f1.png)
- 名前を入力し保存します。ここでは「sample」と入力し「保存ボタン」を押します。
   ![img009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/0cd85b82-4404-0842-8339-872a622d51df.png)
- 翻訳が開始され、プログレスバーが表示されるのでしばらく待ちます。
   ![img010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/138d4bf8-6014-312d-5045-cf24899e19fb.png)
- 翻訳が完成するとブラウザが立ち上がり翻訳結果が出力されます。
   ![img011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/dd0f6476-9a84-8d07-3223-c7965f7d8d06.png)
- 翻訳結果は HTML の形式でアプリケーションと同じ場所のディレクトリに作成されます。

[b]: https://github.com/masatofujiki/SimpleTranslator/archive/refs/tags/v1.3.1.zip
[c]: https://www3.nhk.or.jp/nhkworld/en/news/backstories/1622/