• 締切済み

ワードもしくはエクセルで、ある特定の文章を別の文章に変換する方法。

仕事上、ワードもしくはエクセルを使用して、英語の日程表を日本語に翻訳することがあります。例えば、After Arr, TRF to HTLという文章を、到着後、ホテルへ。というような感じです。毎回、同じような日程表を手書きで日本語に翻訳していますが、前もって、この英語の文章は、この日本語に翻訳するというような設定を行うことによって、マクロか何かで短時間で翻訳(変換)することは可能でしょうか?また何か便利な代替案があれば、ご教授くださいませ。 (エクセルを使用する場合、SHEET1に英語の文章を作成後、マクロのボタンか何か押下することにより、日本語の文章がSHEET2に自動作成できることができれば最高です。)

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

エクセルで自動翻訳は無理ですが、いつも手作業で行っているであろう「After Arr」→「到着後」,「TRF to HTL」→「ホテルへ」という置換を自動的に行うことはマクロで実現可能です。 まず「変換表」という名前のシートを「変換する文章のシートと同じブック」に作成し、A列に変換前の文字列、B列に変換後の文字列を入力してください(何行あってもかまいません) 次にマクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行は変換したいシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択します。 Sub Macro1() Dim ws As Worksheet Dim idx As Long  Application.ScreenUpdating = False  ActiveSheet.Copy after:=ActiveSheet  Set ws = ActiveSheet  With Sheets("変換表")   For idx = 1 To .Cells(65536, 1).End(xlUp).Row    If .Cells(idx, 1) <> "" Then     ws.Cells.Replace What:=.Cells(idx, 1).Value, Replacement:=.Cells(idx, 2).Value, _     LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False    End If   Next idx  End With  Application.ScreenUpdating = True End Sub 今よりは作業が楽になるのではないかと思います また変換表を別ブックにしたいならSheets("変換表")の箇所を WorkBooks("変換表").Sheets("変換表") のようにします。(ただし「変換表.xls」が開いていることが条件)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

#1のmerlionXXです。 実際にはもっとたくさんの翻訳したい文章があるんですよね? だったら、その文章を英文、和文でリストにして一遍に対処しましょう。 LISTという名前のシートを作ってA1からA列に英文を、B1からB列に和文を入れておきます。以下はLIST数4の例ですが、数字を変えれば増やせます。 Sub TEST02() Dim Eng As String, Jpn As String Sheets("Sheet1").Copy After:=Sheets("Sheet1") 'Sheet1をコピー For i = 1 To 4 '(LIST数) Eng = Sheets("LIST").Cells(i, "A").Value 'A列i行目の英文 Jpn = Sheets("LIST").Cells(i, "B").Value 'B列i行目の和文 ActiveSheet.UsedRange.Replace What:=Eng, Replacement:=Jpn, _ LookAt:=xlPart, MatchCase:=False, MatchByte:= _ False 'EngをJpnに置換え Next 'LIST数だけ繰り返し End Sub

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sheet1に英文入力後、メニューの「ツール」、「マクロ」、「マクロ」でTEST01を実行してみてください。 Sub TEST01() Sheets("Sheet1").Copy After:=Sheets("Sheet1") ActiveSheet.UsedRange.Replace What:="After Arr, TRF to HTL", Replacement:="到着後、ホテルへ。", _ LookAt:=xlPart, MatchCase:=False, MatchByte:= _ False End Sub

関連するQ&A