• ベストアンサー

エクセルで別シートから一括置換する方法

エクセル2007で海外工場に展開する量産資料を作っています。 日本語で作成したあとで、中国語、英語、スペイン語などに翻訳して発行するのですが、セル内で使っている単語はほぼ決まっており、別シートに置換の準備しておいて、コマンドボタンを押せば、別の言語に一括置換できないか、と考えています。 当方、エクセルの入門編は一通り終えて、これを機会にマクロやVBCの学習をしようと思っているレベルです。出来だけ簡単な方法でお教えください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! >別シートに置換の準備しておいて・・・ とありますので、↓の画像のようにSheet2に置換のための表を作成しておきます。 元データがSheet1にあるとして・・・ Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 置換() 'この行から Dim i As Long, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") For i = 2 To wS2.Cells(Rows.Count, "A").End(xlUp).Row wS1.Cells.Replace what:=wS2.Cells(i, "A"), replacement:=wS2.Cells(i, "B"), lookat:=xlPart Next i End Sub 'この行まで >コマンドボタンを押せば、別の言語に一括置換できないか、と考えています のようにコマンドボタンで操作したい場合は Sheet1にコマンドボタンを挿入 → コマンドボタン上でダブルクリック → VBE画面に 上記コードの2行目~最後から2行目をそのままコピー&ペーストしても大丈夫だと思います。 ※ 本来であればコマンドボタンを配置したSheetに関しては Sheet名の宣言は不要です。m(_ _)m

dongtsjp
質問者

お礼

すぐにお礼がしたかったのですが、やり方が分からず今日になってしまい申し訳ありませんでした。簡単でわかりやすいアドバイスありがとうございました。

その他の回答 (1)

  • nonamochi
  • ベストアンサー率62% (228/365)
回答No.2

おはようございます 私が行っている方法です 1. 言語シートを作成します。 2. 言語シートのB列以降に各シートで使用する言語を設定します。例:B列-日本語、C列-英語、D列-スペイン語 3. 全てのシートで使用する単語、文章を各列の各行に記入をしていきます。他言語については日本語からの翻訳となります。 4. 表紙となるシートに言語選択ボタンを作ります。 5. 選択した言語に従い言語シートのA列に選択した言語の各行の内容をコピーします。 6. 各シートでは、単純に言語シートのA列該当行を参照する関数を埋め込んでおきます。 言語選択ボタン(リストボックス)にて単純なプログラムが必要ですが、各言語のコピー、参照は全て単純な関数を埋め込むだけです。 言語シートを画像で添付できれば一目で理解できると思いますが、ここの画像は解像度が低すぎるので残念ながら載せても意味の無いものになります。

dongtsjp
質問者

お礼

やり方が分からずお礼が遅れて申し訳ありませんでした。 ありがとうございました。

関連するQ&A