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の設定でマクロを有効化
1

マクロ有効ブックとしてファイルを保存

  1. 1Excelファイルを開く
  2. 2ファイル → 名前を付けて保存を選択
  3. 3ファイルの種類ドロップダウンからExcelマクロ有効ブック (*.xlsm)を選択
  4. 4保存をクリック

重要:通常の.xlsxファイルにはマクロを含めることができません。VBAコードを使用するには.xlsmとして保存する必要があります。

2

VBAエディタを開く

Keyboard Shortcut

Alt + F11(Windows)またはOption + F11(Mac)を押す

別の方法

  1. 1.開発タブに移動
  2. 2.Visual Basicをクリック

ヒント:開発タブが表示されない場合は、ファイル → オプション → リボンのユーザー設定で開発にチェックを入れてください。

3

VBAコードをダウンロードしてインポート

GitHubからVBAマクロを取得

オープンソースリポジトリからTranslateSheet.basファイルをダウンロードしてください。

.basファイルのインポート方法

  1. 1TranslateSheet.basファイルをダウンロード
  2. 2VBAエディタでファイル → ファイルのインポート...を選択
  3. 3ダウンロードしたTranslateSheet.basファイルを選択
  4. 4モジュールがプロジェクトのModulesフォルダに表示されます

別の方法:GitHubから直接コードをコピーして新しいモジュールに貼り付けることもできます(挿入 → 標準モジュール)。

4

マクロを実行

  1. 1翻訳したいシートがアクティブであることを確認
  2. 2Alt + F8を押してマクロダイアログを開き、TranslateActiveSheetToNewSheetを選択して実行をクリック
  3. 3ソース言語コードを入力(自動検出の場合は空白のまま)
  4. 4ターゲット言語コードを入力(例:日本語の場合は「ja」)
  5. 5新しいシート名を入力するかデフォルトを使用
  6. 6数式を値に変換するかどうかを選択(はい/いいえ)

注意:翻訳速度はセル数とインターネット接続に依存します。500以上のテキストセルを含むシートは数分かかる場合があります。非常に大きなシート(1000以上のセル)の場合は、小さなバッチに分割することを検討してください。

重要な注意事項

  • レート制限:Microsoft Translatorには使用制限があります。数千のセルを翻訳する場合、一時的なエラーが発生する可能性があります。数分待ってから再試行してください。
  • 計算の完了を待つ:マクロを実行した後、値に変換する前にすべてのTRANSLATE数式の計算が完了するのを待ってください。作業中はステータスバーに「計算中...」と表示されます。
  • 結合セル:マクロは結合セルの書式を保持しますが、結合領域の左上のセルのみがテキストを含みます。結合内の他のセルは空のままになります。

サポートされる言語コード

ソースまたはターゲット言語を求められたときにこれらのコードを使用してください:

コード言語
enEnglish
jaJapanese
zh-CNChinese (Simplified)
zh-TWChinese (Traditional)
koKorean
esSpanish
frFrench
deGerman
itItalian
ptPortuguese
ruRussian
arArabic
hiHindi
viVietnamese
thThai

ヒント:TRANSLATE関数でサポートされる言語コードの完全なリストについては、Microsoftの公式ドキュメントをご覧ください。

トラブルシューティング

「TRANSLATE関数が利用できません」

TRANSLATE関数にはMicrosoft 365サブスクリプションが必要です。最新バージョンのExcelがインストールされており、Microsoft 365アカウントにサインインしていることを確認してください。

「マクロが無効になっています」

ファイル → オプション → セキュリティセンター → セキュリティセンターの設定 → マクロの設定で「すべてのマクロを有効にする」または「通知してすべてのマクロを無効にする」を選択してください。

「翻訳が#VALUE!エラーを返す」

これは通常、セルに特殊文字が含まれている場合やネットワークの問題がある場合に発生します。マクロはエラーのあるセルをスキップして翻訳を続行します。

「マクロの実行が遅すぎる」

数千のセルを含む大きなシートは時間がかかる場合があります。データを小さなシートに分割するか、より高速なバッチ処理にはDoc2LangのExcel翻訳サービスをご利用ください。

「翻訳が機能しない」またはセルに#CONNECT!が表示される

TRANSLATE関数にはアクティブなインターネット接続が必要です。ネットワーク接続を確認して再試行してください。企業のファイアウォールがMicrosoft Translatorサービスへのアクセスをブロックしている可能性もあります。

ビデオチュートリアル

ステップバイステップのビデオガイドをご覧ください:

より正確な翻訳が必要ですか?

Doc2LangはAIを活用した翻訳を使用し、コンテキストを考慮してより高い精度を実現し、すべての書式、数式、スタイルを保持します。