• 締切済み

エクセルについて

エクセルで半角英数字と半角カナが混在したセルの半角カナのみ全角に変換したいのですが可能でしょうか。英数字は半角を維持したいです。 =JIS()でやるとどうもアルファベットや数字まで全角になってしまうようで…

noname#246453
noname#246453

みんなの回答

回答No.5

こんばんは。 >半角カナのみ全角に変換 #4さんのご指摘の通り、「半角カタカナの濁点や半濁点」は、1文字ですが、全角では、元字を含めて1文字になるので、1文字ずつの変換はできません。 '// Sub Test01() '実行マクロ Dim c As Range For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))  If c.Value <> "" Then   c.Value = WordWider(c.Value)  End If Next c End Sub Function WordWider(wd As Variant) '半角カナだけを全角する関数   Dim Matches As Object   Dim Match As Object   Dim buf As String   If Len(wd) > 0 Then    buf = wd   Else    Exit Function   End If   With CreateObject("vbscript.regexp")     .Global = True     .Ignorecase = False     .Pattern = "([\uFF66-\uFF9f]+)" ''半角カナ-正規表現パターン     Set Matches = .Execute(buf)     For Each Match In Matches       buf = Replace(buf, Match, StrConv(Match, vbWide))     Next   End With   WordWider = buf End Function なお、上記の関数だけ取り出して、 =WordWider(A1) とも出来ますが、その都度、計算してしますので、アプリの負荷が大きくなります。関数の場合は、コピーして値貼り付けして、定数文字にしたほうがよいです。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

回答No.2の代案がありました。 C1の数式を次のように置き換えると良いかも知れません。 =IF(MID($B1,COLUMN()-2,1)<"ア",ASC(MID($B1,COLUMN()-2,1)&D1),MID($B1,COLUMN()-2,1)&D1) C1セルを必要数右へコピーすればC1セルに目的の文字列が現れます。 尚、IF関数の論理式を厳密にするときは次のように論理式を置き換えてください。 MID($B1,COLUMN()-2,1)<"ア"      ↓ CODE(ASC(MID($B1,COLUMN()-2,1)))<128 蛇足ですが、元の文字列を全て全角文字に置き換える理由は半角カタカナの濁点や半濁点の有無で文字位置に誤差が生ずるためです。 A2ギグasゲ98ゴB3 (文字数=16) A2ギグasゲ98ゴB3 (文字数=12)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>エクセルで半角英数字と半角カナが混在したセルの半角カナのみ全角に変換したいのですが可能でしょうか。 関数では文字列全体を一挙に半角カタカナだけを全角カタカナに変換することは無理のようです。 作業用のテーブルを使って1文字ずつ置き換えることは可能です。 但し、半角英数と半角カタカナが混在している場合は1度全てを全角に変換して英数のみ半角に変換する方法になります。 A1セルに半角英数と半角カタカナが混在した文字列があるとき次の手順で希望通りの処理が出来ました。 1.B1セルに =JIS(A1) として全ての文字列を全角に変換します。 2.C1セルに下記の数式を設定して必要数を右にコピーします。 =IF(LEN(B1)>=COLUMN(A1),IF(MID(B1,COLUMN()-2,1)<"ア",LEFT(B1,COLUMN(A1)-1)&ASC(MID(B1,COLUMN(A1),1))&RIGHT(B1,LEN(B1)-COLUMN(A1)),B1),B1) 貼付画像はExcel 2013で検証した結果です。 D列からY列までは非表示にしてありますがC列の数式をZ列までコピーしています。

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

こんばんは! VBAになりますが、一例です。 データはA列の1行目からあり、B列に表示するとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, str As String For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row For k = 1 To Len(Cells(i, "A")) str = Mid(Cells(i, "A"), k, 1) If str Like "[ヲ-ン]" Then Cells(i, "B") = Cells(i, "B") & StrConv(str, vbWide) Else Cells(i, "B") = Cells(i, "B") & str End If Next k Next i End Sub 'この行まで ※ コード内の「ヲ」と「ン」は半角で入力していますが、おそらく全角表示になると思います。 上記コードをコピー&ペースト後、半角に訂正してマクロを実行してください。m(_ _)m

  • usami33
  • ベストアンサー率36% (808/2210)
回答No.1

同じ質問が過去にありましたよ http://okwave.jp/qa/q478209.html

関連するQ&A

  • エクセル2003でセル内の文字のうち、半角カナ文字だけを全角かなに変換

    エクセル2003でセル内の文字のうち、半角カナ文字だけを全角かなに変換する方法 数字や英文字は半角のまま残して、読みにくい半角カナだけを全角かなに変える方法はあるでしょうか? JIS()ですと、すべての文字が全角に変わってしまいます。 詳しい方、どうかよろしくお願い致します。

  • エクセルで英数字を半角にするマクロ

    すでにデータが入力されたエクセルで、全角の英数字を半角にするマクロを探しています。 条件があり、なかなか合う物がなく、質問させて頂きました。 条件は ・アルファベット→半角 ・数字→半角 ・カタカナ→全角 ・伸ばし棒(例えば「データ」の「ー」)→全角 ・同一セルに上書きで変換 下の2点はできたら半角になると嬉しいです。 ・ナカグロ→半角 ・<>→半角 よろしくお願い致します。

  • 英数文字を半角に、カナを全角に変換したい(Excel関数)

    Excel関数で、英数カナ文字混在したセルに対して 英数は半角に、カナ文字は全角に変換したいのですが なにかいい方法はないでしょうか? JIS関数、ASC関数では上手くできません。 当方はエクセル駆け出しです。VBAとかを使えば上手くいくのでしょうか?よろしくご教授願います。

  • Excelで半角カナのみを全角に変換したい

    EXCELで、半角カナのみを全角に変換する方法はありますか? JISという関数がありますが、これは英数まで全角に変換されてしまいます。

  • エクセル_関数_半角カナを全角にしたいのですが。

    お尋ねします。 半角カナを全角カナに変換しようと、エクセル関数のJISを使いました。 ところが、1つのセルに255文字までなら正常に変換ができるのですが、256文字以上になると、#VALUEでエラーとなります。 昔のバージョンが低いエクセルでは、1つのセルに255文字までしか入らなかった記憶があるのですが、エクセル2007では、一つのセルに255文字以上登録しているセルもあり、文字が途中で切れているようには見えません。 関数LENを使って調べてみますと、300文字入ったセルもあります。 しかし、その300文字入ったセルを関数の引数とした場合に上記のようなエラーになってしまいます。 「255文字以上のセルは分割してすればいいじゃないか」とのお声もあるかとともいますが、分割はせずに半角カナの入ったセルを全角カナに置き換えることはできないでしょうか。 よろしくお願いします。

  • エクセル:半角カナを全角に、半角英数はそのままに。

    エクセル:半角カナを全角に、半角英数はそのままに。 ひらがな・漢字・半角カナ・半角英数が混じったセルが縦に沢山あります。 半角カナだけを全角にし、半角英数はそのままにしたいのですが、JISでは全て全角になってしまいます。 どなたか良い関数を教えてください。

  • コード変換ライブラリについて

    この度、Windowsの開発で、コード変換を行うことになりました。 変換内容は、 1.半角カナを全角カナに変換 2.半角英数字を全角英数字に変換 3.全角カナ(カタカナ)を全角ひらがなに変換 の3パターンです。 漢字コードはシフトJISのみです。 上記変換を行うためのライブラリを探しております。 ご存じのかたおりましたら、教えていただけませんでしょうか。開発環境はVC++.NETですが、UNIX等で動作しているものでもかまいません。

  • EXCEL 「ASC」関数  英数字の全角を半角に変換するよい方法があれば教えてください

    EXCELで入力しているデータをフィルターを使用して検索できる データベースにしたいのですが、以前からの入力しているデータの英数字が全角、半角が混在していてます。 フィルター検索の際に全角で入力すると半角入力のものがヒットしないので不便で、英数字の半角統一にしたいと考えています。 ASC関数を使用して英数字の全角→半角を行なうこと考えたのですが ASC関数ですとカタカタも半角カタカナに変換されるので 英数字だけを全角→半角にする関数や方法などあれば教えてください。 入力データは 漢字、ひらがな、カタカナ、英数字が混在しています。 希望 全角→漢字、ひらがな、カタカナ 半角→英数字 宜しくお願い致します。

  • 半角カナを全角カナに変換したい

    表題の通りです。 先輩から引き継いだエクセルのデータが、全角カナと半角カナとの両方を、使い分けなどではなく使用しているものだったので、半角カナを全部、全角カナに変換したいと考えています。 置換機能で50音全部を置換するのは大変ですので、一度に変換する良い方法があれば教えてください。 また、全角アルファベットを、普通の英字(半角アルファベット?)にも変換したいと思っています。

  • エクセルで数字の変換

    エクセル2000です。 ひとつのセルの中に、たとえば「2009年は第1、第5営業部の24名」という文字列があったとします。これを半角一桁の数字のみに限定して全角の数字に変換する方法はないでしょうか? JIS関数だとすべてが全角になってしまいます。 関数でもVBAでもかまいません。 「2009年は第1、第5営業部の24名」と変換したいのです。 対象が何百もあるので困っています。 よろしくお願いします。

専門家に質問してみよう