本記事ではVBAで自動翻訳ツールの簡単な作り方を解説していきます。
結構便利なので、ぜひ使ってみてください。
※処理が遅い場合は30行目の待機時間を限界まで縮めてみてください。
自動翻訳ツールで一括変換する【Google翻訳】
ここでは「複数の英文を日本語に変換する」という内容でやってみます。
下が今回読み込みと書き込みで使う表になります。
そして、下がGoogle翻訳を使った翻訳コードになります。※今回はIEを使う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Sub sample1() Dim ws As Worksheet Set ws = Sheets("Sheet1") ' --- IEを表示(起動)する Dim objIE As Object Set objIE = CreateObject("Internetexplorer.Application") ' IEオブジェクト ' --- ワークシート関数を使う準備 Dim excelApp As Object Set excelApp = CreateObject("Excel.application") ' --- 翻訳処理 Dim urlEncode As String ' 文字列をURLエンコード化した値 Dim url_TranslationPage As String ' 翻訳ページのURL Dim translationVal As String ' 翻訳された文字列 Dim pageSentences As Object ' ワークシートの翻訳対象列の最終行を取得する Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Dim i As Long For i = 2 To lastRow urlEncode = excelApp.WorksheetFunction.EncodeURL(ws.Cells(i, 1)) url_TranslationPage = "https://translate.google.co.jp/?sl=en&tl=ja&text=" & urlEncode & "&op=translate" objIE.Navigate url_TranslationPage Application.Wait Now() + TimeValue("00:00:05") ' ページ表示するまでの待機時間 Set pageSentences = objIE.Document.getElementsByClassName("JLqJ4b ChMk0b") translationVal = Mid(pageSentences(0).innerText, 1, InStr(pageSentences(0).innerText, vbCrLf)) ws.Cells(i, 3).Value = translationVal Next i Set excelApp = Nothing Set pageSentences = Nothing ' --- IEを閉じる objIE.Quit Set objIE = Nothing End Sub |
Google翻訳の翻訳時にはURLに翻訳対象の文字列を組み込んでいます。
そして、今回は英語から日本語に変えるため、「https://translate.google.co.jp/?hl=en&sl=ja&tl=ja&text=」というURLになっています。
※日本語→英語の場合は「?sl=ja&tl=en&text=」となる。
そのURLに組み込まれた文字列が翻訳され、画面右に表示されます。
なので、上のコードでは「URLに翻訳対象文字列を組み込み、翻訳後の文字列を取得し、シートに書き込む」といった内容になっています。
8行目:IEをインスタンス化(コード上で使えるようにする)
12行目:ワークシートのEncodeURL関数を使う準備
26行目:シートA列の和訳対象をURLに組み込めるようにURLエンコード化を行う
27行目:翻訳対象を組み込んだGoogle翻訳のURLを作成
28行目:Google翻訳にアクセスして翻訳する
32行目:Google翻訳ページを構成するHTMLで翻訳後の文字列が表示されている箇所の値を全て取得する(class=”JLqJ4b ChMk0b”)
33行目:翻訳後の文字列を取得する※文字列クリック時に表示される値まで取得してしまうので、Mid関数で必要な部分だけ抜き出している。
34行目:シートに和訳を書き込む
上のコードを実行すると下のような結果が得られます。
翻訳機能がイマイチなので、不自然な和訳になってしまっていますが、Google翻訳の翻訳後の文字列を取得することができました。
これで自動翻訳ツールの完成になります。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク