アレルギー対策、自宅でできる効果的な方法とは?

エクセルにベトナム語を入力し、
システムにインポートするためにCSV化したところ
Ý nghĩa của このような言葉が ? ngh?a c?a とCSV内で表示されてしまいます

解消する方法ご存知のかたいらっしゃったら、教えてください

(なお、エクセルから「名前を付けて保存」の際に
オプションで「Webオプション」選択し、「ベトナム語」を選択してみましたがだめでした」

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは。



Unicodeでよければ、5年ほど前に作ったものがありますので、CSV化のコードを提供します。
どこかに、ActiveX やフォーム・コントロールのボタンとマクロを設定してください。昔のままですが、Excel 2010で試してみて、Unicodeは、出力しています。(おそらく、97以上なら、どのバージョンでも、可動するはずです。)

'標準モジュール (ActiveX コントロールの場合は、ボタンを設定したシート)
'最初に、出力範囲を選択してから、ボタンなどで実行してください。

'//
Sub CSV_OutputByUnicode()
  Dim rng As Range
  Dim i As Long, j As Long
  Dim Fso As Object
  Dim f As Object
  Dim fName As Variant
  Dim buf As String
  Dim TxtLine As String
  Dim objTxt As Object
  Dim OverWrite As Boolean
  Dim mPath As String
  '出力パス
  mPath = ActiveWorkbook.Path & "\"
  Set rng = Selection
  If ActiveWorkbook.Path = "" Then MsgBox "一旦ファイルを保存してください。", vbExclamation: Exit Sub

  '範囲のチェック(マウスで選択)
  If rng.Cells.Count < 3 Then
    MsgBox "最初に、範囲を選択してください。", vbExclamation
    Exit Sub
  End If
  On Error GoTo ErrHandler
Start:
  Do
    fName = Application.InputBox("出力名を入れてください。", "CSV出力", Type:=2)
    If VarType(fName) = vbBoolean Then Exit Sub
  Loop Until Trim(fName) <> ""
  fName = mPath & fName
  '拡張子のチェック
  If StrComp(Right(fName, 4), ".csv", vbTextCompare) <> 0 Then
    fName = StrConv(fName & ".csv", vbNarrow)
  End If
  'ファイルの上書きチェック
  If Dir(fName) <> "" Then
    If MsgBox("上書きしますか", vbQuestion + vbOKCancel) = vbOK Then
      OverWrite = True
    Else
      GoTo Start
    End If
  End If
  '出力
  Set Fso = CreateObject("Scripting.FileSystemObject")
  Set f = Fso.CreateTextFile(fName, OverWrite, True)
  For i = 1 To rng.Rows.Count
    For j = 1 To rng.Columns.Count
      buf = buf & "," & rng.Cells(i, j).Text
    Next j
    If TxtLine = "" Then
      TxtLine = Mid(buf, 2)
    Else
      TxtLine = TxtLine & vbCrLf & Mid(buf, 2)
    End If
    buf = ""
  Next i
  f.Write (TxtLine & vbCrLf)
  f.Close
ErrHandler:
  If Err.Number > 0 Then
    MsgBox Err.Number & " : " & Err.Description
  Else
    MsgBox fName & vbCrLf & "出力しました。", vbInformation
  End If
  Set objTxt = Nothing
  Set f = Nothing
  Set Fso = Nothing
  Set rng = Nothing
End Sub
'//
    • good
    • 0

日本語エクセルの標準機能では、csvファイルを含むテキストファイルへの保存時には、文字コードをJIS8ビットコードとシフトJISコードに変換してしまう仕様だから無理。


VBAプログラムを書いて独自にユニコードのままテキストファイルへ保存するか、ソフトウェア開発業者にそうしたプログラム開発を発注すれば可能。
    • good
    • 0

エクセルだけでは無理なようです。


とりあえず Excel形式(*.xlsx) 等で保存し、
それを別のソフトで編集する必要がありそうです。
たとえば LibreOffice Calc を使用するとCSV保存時に文字コードを選択できます。
ここで多言語対応の文字コード、たとえば Unicode(UTF-8) を指定すると
外国語を含んだデータも保存できるかと思います。

ただ「システムにインポート」して使用するとのことですが、
そのシステムがインポート可能な文字コードが決まっているかと思います。
そのシステムが、たとえば日本語Windows環境で広く使用される
Shift_JIS, Windows-31J, MS932
などと呼ばれる文字コードのファイルしかインポートできないとすれば、
どうやってもベトナム語を含んだデータは投入できないことになります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで文字化け(ベトナム・日本間)

日本で作られたエクセルのファイル中に日本語の文字があるのですが、
時々文字化けします。

メールに添付されたものをベトナムで受け取っているのですが、文字フォントはあるし、
文字化けが起こらないときがあるし、ということで理由がまったくわかりません。

もしかしたら、エクセルのバージョンが関係あるのかなとも思ったのでしらべたのですが、バージョンは同じでした。

お詳しい方、もしかしたらこんなところに原因があるかもという場所を教えてください。

Aベストアンサー

こんにちは。

OS はいくつか分かりませんが、日本語バージョンだとします。
通信以外でも起こるなら、そして、文字フォントが、MSゴシックかMS明朝だとします。万が一のことですが、それは、直接には、キャッシュがおかしくなっているのですが、その元の原因はハードの故障のことがあります。

もう一つは、通信上だけで起こるのは、なんと言っても、Excel/Wordは、ひとかたまりなのに、データ部分は、それぞれ分かれていますから、通信が安定していなかったり、プロバイダの都合で壊れることがあります。こういうときは、送信側で圧縮してもらえばよいのですが、協力してくれないこともありますし、不慣れなこともあります。

そこで、ストレージ・サーバーを使うことにします。(Yahoo ブリーフケース, Windows Live SkyDriveなど)
といっても、送信側の協力によります。常識的に、1MBを越えるものは、添付しないようにするのですが……。

Qベトナム語のアクセント記号が文字化けで消えます

翻訳会社に勤務している者です。
ベトナム語が分かる方で、コンピュータにも詳しい方に伺いたいのですが、普段パソコンでベトナム語を入力する際には、どのようなフォントをご利用でしょうか。

ベトナム語をグラフィックソフトのイラストレーターで表示させると、アクセント記号が消えてしまい、困っています。

使用フォントはTimes New RomanやArialといったごく一般的なものなのですが、Wordやexcelで表示されるのに、イラストレーターに貼り付けると文字の上のアクセント記号のようなものが消えてしまうのです。

原因・対処法、どちらでも構わないので何か参考になる情報をご存知でしたらぜひご一報ください。

Aベストアンサー

言うまでもないことですが、ベトナム語には特殊な補助記号付き文字があります。aやeなどの母音字の上や下に「?」に似た記号、「´」、「・」などが(時には2つ重なって)付きます。以下、これらをここではベトナム文字と仮称します。

Times New Romanなどにはベトナム文字も収録されていますので、フォントには問題ありません。起因するのはソフトの対応です。例えば一部の葉書ソフト(年賀状ソフト)では、いわゆるJIS漢字以外の漢字を使えません。ラテン文字も、アクセント記号付きのaやe、それにドイツ語特有のウムラウトなども使えません(JIS第1、第2水準以外の文字は文字化けします)。

お使いの「イラストレーター」の詳細は知りませんが、これと同様と思われます。すなわち、JIS漢字以外は使えない、もしくは使える範囲はもっと大きいものの、ドイツ語、フランス語、ポルトガル語などまでの対応で、ベトナム文字には対応させていないからです。たしか、「ホームページ・ビルダー」というソフトも同様で、例えば「l(エル)」に斜線の入った文字(ポーランド語にあり)なども使えません。

したがって、「イラストレーター」というソフトそのものを、別の高級(という表現が妥当かどうか分かりませんが)ソフトに入れ替える以外に、対処法はないと思われます。

言うまでもないことですが、ベトナム語には特殊な補助記号付き文字があります。aやeなどの母音字の上や下に「?」に似た記号、「´」、「・」などが(時には2つ重なって)付きます。以下、これらをここではベトナム文字と仮称します。

Times New Romanなどにはベトナム文字も収録されていますので、フォントには問題ありません。起因するのはソフトの対応です。例えば一部の葉書ソフト(年賀状ソフト)では、いわゆるJIS漢字以外の漢字を使えません。ラテン文字も、アクセント記号付きのaやe、それにドイツ語特...続きを読む

Qベトナム語サイトの文字コード

外国語講座のサイトを作っているのですが、このたび日本語のサイトと同じデザインでベトナム語バージョンを作ることになりました。制作に際して、文字化けが一番の敵になると思うんですが、どのような点に気をつければ良いでしょうか?charsetを何に指定すればいいのかすら分かっていないのですが…。

文章はWordのデータでもらえるんですが、エディタがノートパッドではダメですよね?おすすめのエディタも教えていただけると嬉しいです。

Aベストアンサー

#2です。

> ところで、フォントは何が使えるかご存知でしょうか?今はTimesを使っていますが、せめてもう1つゴシック系のフォントが使えればと思っているのですが…。ご存知でしたら教えてください。

Windows XPで、ゴシック系(sans-serif)の欧文フォントというと、Arialですね。
見たところ、ベトナム語用字母も全て収録されているようです。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

QエクセルVBAの入力文字(unicode)について

VBA初心者ですが宜しくお願いします。
質問ですが、任意のセルにunicodeにしかない文字(?)を、VBAにて変数に入力した際に、"?"になってしまいます。

例:セルA1に"㎥"(立方メートル)が入った文字列、"固体Bの体積は1㎥です。"と入力

 【VBA】

  dim Ac as string

  Ac=cells(1,1).value


上記の場合、変数Acの結果が"固体Bの体積は1?です。"となります。

"?"にならないようにするにはどうしたらいいでしょうか?

Aベストアンサー

こんばんは。

>  dim Ac as string
>
>  Ac=cells(1,1).value

それは、その表示する媒体の問題で、きちんとUnicode では受け取っています。

あえて、VBA上で、変数 Ac を表示するためには、例えば、UserForm のTextBox や Label を使うなりしなければなりません。

例:
UserForm 上のテキストボックスと、ラベルに表示した。

Private Sub CommandButton1_Click()
Dim Ac As String
  Ac = Cells(1, 1).Value
  TextBox1.Text = Ac
  Label1.Caption = Ac
End Sub

Qcsv形式で保存すると文字化けする

excel2003を使用しています。

excelで「木偏に船の右側を組み合わせた『ショウ』」という漢字を含むデータをcsv形式で保存し、開き直すと「?」に変わってしまいます。
文字化けしないように出来ないでしょうか?

自分でも調べてみたのですが解決方法が分からないので、どなたかご教授下さい。
よろしくお願いします。

Aベストアンサー

こんばんは。

Unicode のテキスト出力はありますが、CSV のUnicode 出力はないようですね。

以下をVBEditor の標準モジュールに貼り付けて、Form ツールのボタンなどに付けてあげると良いと思います。なお、Import は、CSVで切り分けてくれないので、ツールの[区切り位置]で、コンマで切ってください。

昔、一度作っただけで、今回は、あまり詳しいところを見ていませんので、まだ不具合があるかもしれません。

もし、マクロがいやでしたら、テキスト (Unicode) で出力して、テキストエディタで、タブコード[\t]を、コンマ[,] に置換してください。Excel 2003 でもあります。

'-------------------------------------------
'Option Explicit

Sub CSV_OutputByUnicode()
  Dim rng As Range
  Dim i As Long, j As Long
  Dim Fso As Object
  Dim f As Object
  Dim fName As Variant
  Dim buf As String
  Dim TxtLine As String
  Dim objTxt As Object
  Dim OverWrite As Boolean
  Dim mPath As String
  '出力パス
  mPath = ActiveWorkbook.Path & "\"
  Set rng = Selection
  
  '範囲のチェック(マウスで選択)
  If rng.Cells.Count < 3 Then
    MsgBox "範囲を選択してください。", vbExclamation
    Exit Sub
  End If
  On Error GoTo ErrHandler
Start:
  Do
    fName = Application.InputBox("出力名を入れてください。", "CSV出力", Type:=2)
    If VarType(fName) = vbBoolean Then Exit Sub
  Loop Until fName <> ""
  fName = mPath & fName
  '拡張子のチェック
  If InStrRev(fName, ".") = 0 Then
    fName = fName & ".csv"
  ElseIf StrConv(Right(fName, InStrRev(fName, ".") + 1), vbNarrow) <> "csv" Then
    fName = Right(fName, InStrRev(fName, ".")) & "csv"
  End If
  'ファイルの上書きチェック
  If Dir(fName) <> "" Then
    If MsgBox("上書きしますか", vbQuestion + vbOKCancel) = vbOK Then
      OverWrite = True
    Else
      GoTo Start
    End If
  End If
  '出力
  Set Fso = CreateObject("Scripting.FileSystemObject")
  Set f = Fso.CreateTextFile(fName, OverWrite, True)
  For i = 1 To rng.Rows.Count
    For j = 1 To rng.Columns.Count
      buf = buf & "," & rng.Cells(i, j).Text
    Next j
    If TxtLine = "" Then
      TxtLine = Mid(buf, 2)
    Else
      TxtLine = TxtLine & vbCrLf & Mid(buf, 2)
    End If
    buf = ""
  Next i
  f.Write (TxtLine & vbCrLf)
  f.Close
ErrHandler:
  If Err.Number > 0 Then
    MsgBox Err.Number & " : " & Err.Description
  Else
    MsgBox fName & vbCrLf & "出力しました。", vbInformation
  End If
  Set objTxt = Nothing
  Set f = Nothing
  Set Fso = Nothing
  Set rng = Nothing
End Sub

こんばんは。

Unicode のテキスト出力はありますが、CSV のUnicode 出力はないようですね。

以下をVBEditor の標準モジュールに貼り付けて、Form ツールのボタンなどに付けてあげると良いと思います。なお、Import は、CSVで切り分けてくれないので、ツールの[区切り位置]で、コンマで切ってください。

昔、一度作っただけで、今回は、あまり詳しいところを見ていませんので、まだ不具合があるかもしれません。

もし、マクロがいやでしたら、テキスト (Unicode) で出力して、テキストエディタで、タブ...続きを読む


人気Q&Aランキング

おすすめ情報