- ベストアンサー
ハングルを日本語に置換
Excel VBAでハングルを日本語に置換することはできますか? 例えば、 Range("A:A").Replace What:="일본", Replacement:="日本" を行いたいのですが、VBEでハングルを入力できません。 よい方法があれば、お教えください。
- goo-learner
- お礼率93% (28/30)
- Visual Basic
- 回答数2
- ありがとう数8
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Excelのシート上ではユニコードに対応しているので ハングルでも中国でも表示できますが 日本語VBA上ではShift-JIS(ANSI)の文字コードでしか扱えません。 "일본" が"??" になっているかと。 なので入れ物(Cell)ごと渡してしまえば簡単です。 A B 1 検索文字 일본 2 置換文字 日本 3 置換対象 你好吗일본 4 置換結果 你好吗日本 range("b4")=replace(range("b3"),range("b1"),range("b2")) ご参考まで。
その他の回答 (1)
- mitarashi
- ベストアンサー率59% (574/965)
試しにやってみました。ご参考まで。 'Unicodeの文字コードを調べる Sub test() Dim buf As String Dim i As Long buf = Range("A1").Value For i = 1 To Len(buf) Debug.Print Hex(AscW(Mid(buf, i, 1))) Next i End Sub 'C77C 'BCF8 Sub test2() Dim buf As String buf = ChrW(&HC77C) & ChrW(&HBCF8) Range("A1").Value = Replace(Range("A1").Value, buf, "日本") End Sub 'VBEでの表記はやめてセルに入れた値を用いる案 Sub test3() Range("A1").Value = Replace(Range("A1").Value, Range("A2").Value, "日本") End Sub
お礼
詳細なご教示を頂き、有難うございます。 第2の方法でうまくいきました。
関連するQ&A
- 半角全角区別しない場合の置換
エクセルvbaで Cells.Replace What:=str置換前, Replacement:=str置換後, LookAt:=xlPart のように置換するときに 半角でも全角でも置換できるようにするにはどうすればいいですか? Replaceにカーソルを当てF1を押すと ライブラリでVBAとExcelのヘルプがありますが どちらを見ても、半角全角区別しない場合の書き方は書いてなかったため わかりませんでした。
- ベストアンサー
- Excel(エクセル)
- 半角の?を全角の?にVBAで置換する方法
A1に「ありますか?」を入力して、 Sub test1() Range("a1").Value Replace(Range("a1").Value, "?", "?") End Sub なら、ハテナが全角になるのですが Sub test2() Range("a1").Replace What:="?", Replacement:="?", LookAt:=xlPart End Sub だと、??????になってしまいます。 前後のコードの関係で、test2の方法で置換したいのですが、どうすればいいでしょう? Replace関数ではなく、Replaceメソッドで?だけを全角にする方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- EXCEL警告「置換対象のデータが見つかりません」を出ないようにしたい
VB6からEXCELファイルを操作しています。 その中で、置換をやっているのですが、データによっては置換するデータが無い場合があります。 無い場合に、「置換対象のデータが見つかりません。~」というダイヤログボックスが出てしまうのですが、これを出さない方法が有りますでしょうか。 出さない方法がないとすれば、置換対象データがあるかどうかのチェックを先にすればいいのでしょうけど、コードが倍増しそうなものですから。 参考までにコードを付記します。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(filename) Set xlSheet = xlBook.Worksheets("Sheet1") xlSheet.Columns("A:A").Replace What:="1", Replacement:="男" xlSheet.Columns("A:A").Replace What:="2", Replacement:="女" xlSheet.Columns("A:A").Replace What:="9", Replacement:="不明"
- ベストアンサー
- Visual Basic
- Excelの置換で書式が変わる現象の回避策
下記のようなマクロで複数の置換をしています。 Cells.Replace What:="★", Replacement:="☆", MatchCase:=True Cells.Replace What:="◆", Replacement:="◇", MatchCase:=True Cells.Replace What:="■", Replacement:="□", MatchCase:=True ・ ・ ・ セル内で改行して文字サイズや色を変えている箇所では置換後1行目の書式に変わってしまいます。 文字だけを置換をしたいのですがこれを回避する方法はあるのでしょうか教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルのReplaceで使える「?」(ハテナ)は
エクセルのReplaceで使える「?」(ハテナ)は、 ワイルドカードとして藻文字列としても機能するのでしょうか? Sub Sample() Range("a1").Value = "aaa" Range("a1").Replace What:="a?a", Replacement:="aba" Range("a1").Value = "aaa" Range("a1").Replace What:="a?a", Replacement:="aba?" End Sub を実行すると 「?」は、文字1文字のワイルドカードとして機能しつつ、 最後に「?」が付く事から、文字列として?が置換されていますが この区別ってないのでしょうか?
- ベストアンサー
- Excel(エクセル)
- エクセル(マクロ)置換 結合されたセルに対しての置換
こんばんは、 今置換用のマクロをこちらで検索して使ってましたが 使用するエクセルのフォーマットが 1セルに入力されてるのではなく、3つのセルを結合されている物に入力されているもので 下記のマクロだと、正しく置換されておりません。 置換変換用のシートと、置換したいシートがある状態で、 下記のマクロだとなぜ結合されたセル内の文字は置換えできないのでしょうか? 結合されてないセルですと、置換はちゃんとされております。 Sub 置換() With ThisWorkbook If ActiveSheet Is .Worksheets(1) Then Exit Sub For i = 1 To .Worksheets(1).Range("A65536").End(xlUp).Row ActiveSheet.Cells.Replace _ What:=.Worksheets(1).Range("A" & i).Value, _ Replacement:=.Worksheets(1).Range("B" & i).Value, _ LookAt:=xlPart, SearchOrder:=xlByColumns Next End With End Sub 明日の昼までに5000個のファイルを置換えするので これが出来ればなぁと思っております。 大変お手数ですが教えて頂けると助かります では、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 置換のマクロ
先ほど質問させていただいている件なのですが 余りにも自分が記入した内容が分かりにくいので質問形式を変更します。 「置換」をするのに ボタンで簡単にできるよう以下のマクロを記録しました。 Sub Macro1() ActiveWindow.SmallScroll Down:=-15 Range("E7:AC7").Select Selection.Replace What:="2009年度契約", Replacement:="8.24-8.29", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False Range("E14:AC14").Select Selection.Replace What:="2009年度契約", Replacement:="8.24-8.29", LookAt:=xlPart, _ このマクロの「8.24-8.29」の部分を「シート名取得」にしたいのです。出来ないでしょうか? もしくは BOXを出し任意のものを手で入力するようにコメントを出す様には出来ないでしょうか?
- ベストアンサー
- オフィス系ソフト
- 二重引用符の置換処理に関して
エクセルで特定のセルに二重引用符が入力されていた場合、“を““のように置換させたいです。 しかし、下記ソースではエラーが発生してプログラムが動きません。 Columns("J:O").Replace What:="“", Replacement:="““", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False どうすれば正常に置換することが出来るでしょうか? 宜しくお願いします。
- ベストアンサー
- Visual Basic
- EXCEL2002で、VBEの記述のセル参照について
EXCEL2002で、VBEの記述のセル参照について Sub データ置換(1)() With Range("C4:E4") .Replace What:="8038", Replacement:="A4" End With End Sub 上記コードの3行目、右端、 Replacement:="A4" の"A4"を、セル参照にして、"9984"等、可変する4桁の数字を入力して、 "8038"⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒"9984" というように、いつ何時でも、変更可能な『好きな数字』を、マクロボタン一つで変えられるように、編集したいのですが、どのように修正したら良いでしょうか? 引数に関する初歩的な質問ですが、何分、初心者でありまして、優しくお答えお願いします。
- ベストアンサー
- オフィス系ソフト
- 特定の文字でReplaceメソッドが動作しません
Excel2000のVBAで、"-"(マイナス) を "~"(チルダ)に置き換えたいのですが、動作しません。 Selection.Replace What:="-", Replacement:="~" というコードです。 以下のコードは、うまく動作しますが Selection.Replace What:="A", Replacement:="B" Selection.Replace What:="A", Replacement:="~" 以下のコードは、動作しません Selection.Replace What:="-", Replacement:="B" Selection.Replace What:="-", Replacement:="~" どうやら、What:="-" が原因のようなのですが、理由も対処方法もわかりません。 どなたか、ご教授ください。
- 締切済み
- Visual Basic
お礼
早速の明快なご教示を有難うございます。 この方法でうまくゆきました。