VBA + TRANSLATE()でExcelシートを翻訳
VBAと組み込みの=TRANSLATE()関数を使用して、Excelシート全体を自動的に翻訳します。
ワークシート全体(請求書、製品リスト、梱包リストなど)をレイアウトを崩さずに翻訳する必要がある場合、このアプローチが効果的です:
- 元のシートをそのまま保持
- 同じフォーマットで新しい「翻訳済み」シートを作成
- Excelの組み込み
=TRANSLATE()関数を使用して各テキストセルを自動翻訳
=TRANSLATE()はMicrosoft Translatorを使用したクラウドベースのExcel関数です。動作にはインターネット接続が必要です。Microsoft 365用Excel(Mac含む)、Web版Excel、モバイル版で利用可能ですが、一部のビルド/チャネルではまだ利用できない場合があります。
開始前に:Excelに=TRANSLATE()が存在することを確認
任意のセルで試してください:
=TRANSLATE("hello","en","ja")#NAME?が表示される場合、お使いのExcelビルドにはまだこの関数がありません。MicrosoftはMicrosoft 365 / Web / モバイルでサポートされ、サービスベースであると述べています。
Microsoft 365 Insiderチャネル経由で新機能として導入されているため、利用可能性は更新チャネル/ロールアウトによって異なる場合があります。
作成するもの
以下を行うVBAマクロ:
- アクティブシートのコピーを作成
=TRANSLATE()関数を使用してすべてのテキストセルを翻訳- 数値、数式、書式を保持
- 新しいシートにターゲット言語コードで名前を付ける
前提条件
- Microsoft 365サブスクリプション(
=TRANSLATE()関数にはMicrosoft 365が必要) - Windows版またはMac版Excel(Web版はVBAサポートが限定的)
- Excelの設定でマクロを有効化
マクロ有効ブックとしてファイルを保存
- 1Excelファイルを開く
- 2ファイル → 名前を付けて保存を選択
- 3ファイルの種類ドロップダウンからExcelマクロ有効ブック (*.xlsm)を選択
- 4保存をクリック
重要:通常の.xlsxファイルにはマクロを含めることができません。VBAコードを使用するには.xlsmとして保存する必要があります。
VBAエディタを開く
Keyboard Shortcut
Alt + F11(Windows)またはOption + F11(Mac)を押す
別の方法
- 1.開発タブに移動
- 2.Visual Basicをクリック
ヒント:開発タブが表示されない場合は、ファイル → オプション → リボンのユーザー設定で開発にチェックを入れてください。
VBAコードをダウンロードしてインポート
GitHubからVBAマクロを取得
オープンソースリポジトリからTranslateSheet.basファイルをダウンロードしてください。
.basファイルのインポート方法
- 1
TranslateSheet.basファイルをダウンロード - 2VBAエディタでファイル → ファイルのインポート...を選択
- 3ダウンロードした
TranslateSheet.basファイルを選択 - 4モジュールがプロジェクトのModulesフォルダに表示されます
別の方法:GitHubから直接コードをコピーして新しいモジュールに貼り付けることもできます(挿入 → 標準モジュール)。
マクロを実行
- 1翻訳したいシートがアクティブであることを確認
- 2Alt + F8を押してマクロダイアログを開き、TranslateActiveSheetToNewSheetを選択して実行をクリック
- 3ソース言語コードを入力(自動検出の場合は空白のまま)
- 4ターゲット言語コードを入力(例:日本語の場合は「ja」)
- 5新しいシート名を入力するかデフォルトを使用
- 6数式を値に変換するかどうかを選択(はい/いいえ)
注意:翻訳速度はセル数とインターネット接続に依存します。500以上のテキストセルを含むシートは数分かかる場合があります。非常に大きなシート(1000以上のセル)の場合は、小さなバッチに分割することを検討してください。
重要な注意事項
- レート制限:Microsoft Translatorには使用制限があります。数千のセルを翻訳する場合、一時的なエラーが発生する可能性があります。数分待ってから再試行してください。
- 計算の完了を待つ:マクロを実行した後、値に変換する前にすべてのTRANSLATE数式の計算が完了するのを待ってください。作業中はステータスバーに「計算中...」と表示されます。
- 結合セル:マクロは結合セルの書式を保持しますが、結合領域の左上のセルのみがテキストを含みます。結合内の他のセルは空のままになります。
サポートされる言語コード
ソースまたはターゲット言語を求められたときにこれらのコードを使用してください:
| コード | 言語 |
|---|---|
| en | English |
| ja | Japanese |
| zh-CN | Chinese (Simplified) |
| zh-TW | Chinese (Traditional) |
| ko | Korean |
| es | Spanish |
| fr | French |
| de | German |
| it | Italian |
| pt | Portuguese |
| ru | Russian |
| ar | Arabic |
| hi | Hindi |
| vi | Vietnamese |
| th | Thai |
ヒント:TRANSLATE関数でサポートされる言語コードの完全なリストについては、Microsoftの公式ドキュメントをご覧ください。
トラブルシューティング
「TRANSLATE関数が利用できません」
TRANSLATE関数にはMicrosoft 365サブスクリプションが必要です。最新バージョンのExcelがインストールされており、Microsoft 365アカウントにサインインしていることを確認してください。
「マクロが無効になっています」
ファイル → オプション → セキュリティセンター → セキュリティセンターの設定 → マクロの設定で「すべてのマクロを有効にする」または「通知してすべてのマクロを無効にする」を選択してください。
「翻訳が#VALUE!エラーを返す」
これは通常、セルに特殊文字が含まれている場合やネットワークの問題がある場合に発生します。マクロはエラーのあるセルをスキップして翻訳を続行します。
「マクロの実行が遅すぎる」
数千のセルを含む大きなシートは時間がかかる場合があります。データを小さなシートに分割するか、より高速なバッチ処理にはDoc2LangのExcel翻訳サービスをご利用ください。
「翻訳が機能しない」またはセルに#CONNECT!が表示される
TRANSLATE関数にはアクティブなインターネット接続が必要です。ネットワーク接続を確認して再試行してください。企業のファイアウォールがMicrosoft Translatorサービスへのアクセスをブロックしている可能性もあります。
ビデオチュートリアル
ステップバイステップのビデオガイドをご覧ください:
より正確な翻訳が必要ですか?
Doc2LangはAIを活用した翻訳を使用し、コンテキストを考慮してより高い精度を実現し、すべての書式、数式、スタイルを保持します。