
会社の仕事で、部品リストを会社で決められた英訳に従って翻訳しなければならず困っています;
会社で決められた英訳単語数は350単語あり、EXCELで一覧として与えられました。
そこで、EXCELで自動翻訳させるマクロを教えてくださいm(_ _)m
予め「シート1」のA列に(部品名)、B列に(決められた英訳)を入力しておき。
「シート2」のA列またはC列に部品名が入力されると、それぞれB列・D列に自動で自分の決めた訳に置換させる方法を教えてほしいです。
(例)
「シート1」 「シート2」
| A | B | | A | B | C | D |
1 釦 SWITCH 1 ヒューズ FUSE ランプ LAMP
2 ランプ LAMP 2 ランプ LAMP ヒューズ FUSE
3 ヒューズ FUSE 3 釦 SWITCH ヒューズ FUSE
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
あらかじめ対照表を用意してあるのがSheet1(もしちがっていらた下記のコードの"Sheet1"を修正してください。
)A列またはC列に部品名を入力するのがSheet2だとします。
1. シート(Sheet2)のタブを右クリックして、[コードの表示]。
2. 出てきた白い所に、以下のコードを貼付けます。
'********これより下**********
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 And Target.Column <> 3 Then Exit Sub
Dim myDic As Object
Dim myW
Dim i As Long, c As Range
Set myDic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet1")
myW = .Range("A1", .Cells(Rows.Count, "B").End(xlUp)).Value
End With
For i = 1 To UBound(myW)
myDic(myW(i, 1)) = myW(i, 2)
Next i
For Each c In Target
If myDic.Exists(c.Value) Then
c.Offset(, 1).Value = myDic(c.Value)
End If
Next c
End Sub
'********これより上**********
3.Alt+F11キーでワークシートへもどります。
これでOK
A、C列以外への入力には反応しません。
Sheet1の対照表は何百行あってもOKです。
インターネットの調子が悪く、回答が遅れてすみません><
初日は私の知識不足で理解するまでに時間がかかってしまったのも事実なので
本当に申し訳ないです。
こちらのマクロは私の要望を全てかなえてくれました。
しかも、こちらは貼り付けるだけでそのまま使えました。
EXCELテクニック集という感じで、こういう使い方ができるんだと感動しました。
本当にありがとうございました。迷うことなくベストアンサーです。
No.5
- 回答日時:
ANo3, merlionXXです。
No2のお礼に
「このシートに作る方法だとコピー&ペーストで変換されないようなので、時間があったらボタンを作って実行型のマクロを作ってみようかと思います。」
とお書きですが、わたしのコード(ANo3)ではA列とC列は、複数セルへのコピー&ペーストでも大丈夫なように書いてありなす。
まだおためしにはなってないのでしょうか?
回答が遅くなってしまい申し訳ありませんでした。
会社のインターネット環境が悪く、ベストアンサーの画面に到達できず。
「参考になった」のボタンがやっとでした(汗
今回を機に自宅にもインターネットを引くことにしました。
早期回答に対し、お礼も遅く、回答していただいた皆様にはご迷惑をお掛けしましたm(_ _)m
本当にありがとうございました。
No.4
- 回答日時:
一例です。
シート1をSheet1、シート2をSheet2としています。
(1)Sheet2のシートタブ上で右クリック→コードの表示→以下のコードを貼り付けてシート2のA,C列に入力してみて下さい。
必要ないと思いますが複数セルへの入力も可能としています。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing _
And Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
For Each c In Sheets("Sheet1").Range("A:A")
If c.Value = "" Then Exit Sub
For Each d In Range(Target.Address)
If c.Value = d.Value Then
d.Offset(0, 1).Value = c.Offset(0, 1).Value
End If
Next
Next
End Sub
回答ありがとうございます。
こちらの方法でも問題なく変換されました。
ベストアンサーが複数選べたらこちらにも付けたかったです。
貴重な回答ありがとうございました。
No.2
- 回答日時:
シート「シート2」のシート名タグを右クリック→コードの表示(V)で表示されるコードエリアに以下のコード貼り付けたらで自動的にできます。
下記コード中、「"シート1"」は予め英訳を載せてあるシートのシート名です。シート名が合致していないと「シート2」へのインプット中にエラーが起きます。その場合は、シート名がコードに一致するよう訂正して下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Double
If Target.Count = 1 And Target.Column = 1 Then
If Target.Value <> "" Then
For r = 1 To Sheets("シート1").Range("A65536").End(xlUp).Row
If Sheets("シート1").Cells(r, 1) = Target.Value Then
ActiveCell.Offset(-1, 1).Value = Sheets("シート1").Cells(r, 2) '英訳品名自動記入
Exit Sub
End If
Next r
Else
ActiveCell.Offset(0, 1).ClearContents 'A列データ消去の時B列データも消去
Exit Sub
End If
End If
End Sub
要望通りマクロでの回答ありがとうございます。
会社のエクセルでセルに数式を入れていると、使用者に操作されたときに消されてしまうので
こちらの方法に変更させていただきました。
会社で使っているEXCELは2007なのですが、5行目の
For r = 1 To Sheets("シート1").Range("A65536").End(xlUp).Row
が「複雑すぎて実行できません」とエラーが出てしまったので、とりあえず
For r = 1 To 1000
として使用させて頂いています。
本当は上記の方法の方が下方検索として使い勝手は良かったので残念です。
それと、このシートに作る方法だとコピー&ペーストで変換されないようなので、
時間があったらボタンを作って実行型のマクロを作ってみようかと思います。
この度はありがとうございました。
No.1
- 回答日時:
シート1のA1:B1から、部品名、英訳の一覧があるとする。
シート2のB1、D1に下記の式を入れて下にフィルする。
B1
=IF(A1="","",VLOOKUP(A1,Sheet1!$A$1:$B$3,2,FALSE))
D1
=IF(A1="","",VLOOKUP(C1,Sheet1!$A$1:$B$3,2,FALSE))
回答ありがとうございます。
インターネットの調子が悪くて返信が遅くなり申し訳ありません。
マクロを使わなくてもこの方法で英訳を行うことができました。
会社の作業員によって半角/全角がマチマチで全角に統一させてから行うことで
問題なく行うことが出来ました。
他に使っているデータにも流用できそうなので、使わせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) Excel 計算式を教えて下さい 3 2022/12/15 19:46
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Excel(エクセル) Excelのリストにある文字を含むセルを、複数の色で色付けしたいです 2 2022/08/11 17:39
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) Excel関数 情報引用する方法 4 2022/07/31 20:59
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】1回目の実行後、2...
-
エクセル内に読み込んが画像の...
-
Excelのメニューについて
-
Excelで作成した出欠表から日付...
-
Excel 偶数月の15日(土日祝...
-
Excelの数式について教えてくだ...
-
勤務外時間を出す表が作りたい
-
VLOOKUP FALSEのこと
-
エクセルの数式について教えて...
-
【マクロ】参照渡しについて。...
-
Excel 日付の表示が直せません...
-
Excelの条件付書式について教え...
-
マクロを実行すると、セル範囲...
-
【マクロ】参照渡しとモジュー...
-
【マクロ】シート追加時に同じ...
-
Excelファイルを開くと私だけVA...
-
Excelのデーターバーについて
-
エクセルの設定、特定の列以降...
-
別のシートの指定列の最終行を...
-
エクセル 同じ行の隣り合う数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】重複する同じ行を、...
-
Excelの条件付き書式のコピーと...
-
vba 印刷設定でのカラー印刷と...
-
VBA の単語の意味を教えて下さい。
-
Excel 日付の表示が直せません...
-
エクセル 同じ行の隣り合う数字...
-
エクセル条件付き書式について。
-
エクセルの数式につきまして
-
ファイル名の変更
-
エクセル 数字のみ抽出につて
-
Excelの開始ブックを固定したい...
-
エクセルの数式について教えて...
-
エクセルのセルをクリックする...
-
=INDIRECT(RIGHT(CELL("filenam...
-
エクスプローラーで見ることは...
-
Excelの関数で質問です
-
至急お願いいたします 屋上の備...
-
エクセルでセルに入力する前は...
-
関数を教えて下さい
-
Excel 関数での質問です
おすすめ情報