【先着1,000名様!】1,000円分をプレゼント!

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

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

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

A 回答 (3件)

ご使用のエクセルのバージョンが提示されていないのですが、エクセル2007ならネストの制限にかからないので、以下のような数式1つで変換することができます(A2セルにデータがある場合)。



=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(JIS(A2),"0",0),"1",1),"2",2),"3",3),"4",4),"5",5),"6",6),"7",7),"8",8),"9",9)

古いバージョンのエクセルで変換したいなら、B2セルに「=JIS(A2)」
C2セルに以下のような式を入力し、右方向にL列まで、下方向にデータ数分だけオートフィルすればL列に変換後のデータが表示されます。

=SUBSTITUTE(B2,TEXT(COLUMN(A1)-1,"[DBNum3]0"),COLUMN(A1)-1)
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。
これならできそうです!

お礼日時:2010/06/27 08:38

力ずくでやるとしたら次のようにすればよいでしょう。


A1セルから下方にデータがあるとします。入力されている文字列の長さは仮に8文字までとします。
B1セルには次の式を入力してI1セルまでオートフィルドラッグし、その後に下方にもオートフィルドラッグします。

=IF(OR($A1="",LEN($A1)<COLUMN(A1)),"",IF(AND(CODE(MID($A1,COLUMN(A1),1))>=177,CODE(MID($A1,COLUMN(A1),1))<=221),JIS(MID($A1,COLUMN(A1),1)),MID($A1,COLUMN(A1),1)))

J1セルには次の式を入力して下方にオートフィルドラッグします。

=CONCATENATE(B1,C1,D1,E1,F1,G1,H1,I1)

最後にJ列を選択してコピーし、その後にA1セルを選択して「形式を選択して貼り付け」で「値」にチェックをして貼り付けます。 B列からJ列まではその後に削除しても良いですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考にさせていただきます!

お礼日時:2010/06/27 08:39

・Excel VBA


http://www.moug.net/tech/exvba/0140015.htm
http://okwave.jp/qa/q1153932.html

・間にその種のことがラクにできるエディタを挟む
半角カナだけを全角にしたい 英数だけを半角にしたい | 名古屋市・春日井市の出張パソコンサポート日記
http://delightnet.jugem.jp/?eid=4
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
VBAは知識もなくやったことがないので、関数でできればと思っていました。

お礼日時:2010/06/27 08:36

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

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

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

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

QExcel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?

とっても基本的なことで困ってます。
Excelの1つのセルの中に、英数字カタカナがごちゃ混ぜのデータが入っています。英数字は全角の場合もあれば半角の場合もありです。片仮名もしかり。
そのデータを、英数字のみ半角にし、カタカナは全角に修正したいんです。
間違ってASC関数を使ったら、カタカナまで半角になっちゃった・・・・。
本日午後一のミーティングにそろえなきゃいけない資料なんです!
誰かーーー!
助けてーーーー!!

Aベストアンサー

あー大変。
それでは。まず、お使いになっているPCにはWordが入っていますか?
Wordが入っていると前提して、ご説明します。
まず、ASC関数を使って、英数字カタカタを半角にしてしまいます。その後
カタカナを全角にしたいセルをすべて範囲指定をします。そして、コピー。そして、
ワードに貼り付けてください。(そのとき1行あけて2行目に貼り付けてください。)
そして、1行目にカーソルを置いて「ツール」→「オプション」→[文章校正]タブ
右下の「詳細設定」ボタンをクリック。その後、「カタカナ設定」を「全角に統一」を選んで、「OK」ボタンをクリック。そうすると、オプション(ダイアログボックス)に戻りますので、「再チェック」または「チェック実行」ボタンを押します。(バージョンによって呼び方が違います。左下のボタンです)
そうすると、半角カタカナの部分に、波線がつきます。そして、1行目にカーソルを置いて
再度「ツール」→「文章校正」をクリックし、「修正」ボタンで直して行きます。そして、修正が終わったら、また、範囲指定をして、コピーをして、Excelに貼り付けてください。
関数だとちょっときびしいかも?この後で考えてみます。とりあえず、試してください。あとは、マクロのわかる方にお任せします。

あー大変。
それでは。まず、お使いになっているPCにはWordが入っていますか?
Wordが入っていると前提して、ご説明します。
まず、ASC関数を使って、英数字カタカタを半角にしてしまいます。その後
カタカナを全角にしたいセルをすべて範囲指定をします。そして、コピー。そして、
ワードに貼り付けてください。(そのとき1行あけて2行目に貼り付けてください。)
そして、1行目にカーソルを置いて「ツール」→「オプション」→[文章校正]タブ
右下の「詳細設定」ボタンをクリック。その後、「カタカナ設定...続きを読む

Qエクセルでひらがな・漢字はそのままでカタカナを全角・英数字を半角にする方法

エクセル2000を使っています。

会社で住所録作成を引き継ぎましたが、
一つのセルにひらがな、漢字、カタカナ、英数字
が半角・全角ごちゃ混ぜで入っているので
管理がしづらくて困っています。
例えば、

あいうアジアNET株式会社
株式会社ABC123

などなど・・・・

ひらがな・漢字はそのままで、
カタカナを全角、英数字を半角にする方法は
ありませんか?
最初にASC関数を使ってみたらカタカナも半角になり、
Phonetic関数を使うと、
カタカナだけ全角になりましたが、
ひらがなまでカタカナになり・・・
JIS関数も試しましたが今度は英数字まで全角になり、
どうしたものかと困っております。

よろしくお願いします。

Aベストアンサー

No.2です。遅くなりました。修正コード、、というより別物ですがアップします。

実は、以前に類似した質問に回答したことがあります。(参考URL)
今回はBLUEPIXYのコードも参考にさせてもらい、その時のコードに手を加えました。
関数myStrFmtはワークシートでも使えますし、他のプロシージャーでも使えます。

どうでしょうか?

========== 次行からコード ==================================

'***************************************************************
' カタカナは全角化、英数字および記号を半角化するユーザー定義関数
' 引数:文字列 変換対象となる文字列を指定します
' 引数:数字  数字半角化オプション(省略可) 規定値:True
' 引数:記号  記号半角化オプション(省略可) 規定値:False
'***************************************************************
Function myStrFmt(文字列 As String, Optional 数字 As Boolean = True, Optional 記号 As Boolean = False)

  Dim ReplaceList As String
  Dim TargetStr As String
  Dim MAK As String, NUM As String, ALB As String
  Dim i As Long

  '半角化の対象とする文字を全角で定義
  MAK = "!#$%&'()*+-./:;<=>?@[¥]^_{|}。、,,"
  NUM = "01234567890"
  ALB = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  '置換リスト作成
  ReplaceList = NUM & ALB & StrConv(ALB, vbLowerCase)
  If 数字 Then ReplaceList = ReplaceList & NUM
  If 記号 Then ReplaceList = ReplaceList & MAK

  '全角化
  文字列 = StrConv(文字列, vbWide)
  '置換
  For i = 1 To Len(ReplaceList)
    TargetStr = Mid(ReplaceList, i, 1)
    文字列 = Replace(文字列, TargetStr, StrConv(TargetStr, vbNarrow))
  Next i
  myStrFmt = 文字列

End Function

'マクロで関数を使用するサンプル(セルを選択した状態で実行)
Sub サンプル()

  On Error Resume Next
  Dim rngCell As Range
  Application.ScreenUpdating = False
  For Each rngCell In Selection
    If rngCell.Value <> "" Then
      rngCell.Value = myStrFmt(rngCell.Value, True, False)
    End If
  Next rngCell
  Application.ScreenUpdating = True

End Sub

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1100627

No.2です。遅くなりました。修正コード、、というより別物ですがアップします。

実は、以前に類似した質問に回答したことがあります。(参考URL)
今回はBLUEPIXYのコードも参考にさせてもらい、その時のコードに手を加えました。
関数myStrFmtはワークシートでも使えますし、他のプロシージャーでも使えます。

どうでしょうか?

========== 次行からコード ==================================

'***************************************************************
' カタカナは全角化、英数字お...続きを読む

Q「Ms-Excel」の関数「UボードのUのみを半角にしたい」についての質問

Uボード

ASC(A1)
を使って変換するとボードまで半角になってしまいました。Uのみのを半角にする関数を教えてください。
宜しくお願い致します。

Aベストアンサー

こんにちは。

英数字だけの半角化は、結構需要があると思います。しかし、標準の操作、関数ではできないんです。
以下のコード(無駄が多くてお見苦しいのですが)は、以前私が作成した自作関数(EXCEL2000以上)です。
英数字のみを半角化します。オプションで半角化できる記号も半角化します。

使い方は、標準モジュールに貼り付けて使用します。そして、普通の関数のように、

=英数字半角化(A1,True,True)

とセルに書きます。


'***************************************************************
' カタカナを除く、英数字や記号の半角化関数
' 引数:対象 文字列(複数セルを指定するとエラーになる)
' 引数:数字 数字半角化オプション(True / False) 規定値:True
' 引数:記号 記号半角化オプション(True / False) 規定値:False
'***************************************************************
Function 英数字半角化(対象 As String, _
  Optional 数字 As Boolean = True, _
  Optional 記号 As Boolean = False)

  Dim BUF, MAK, NUM, ALB
  Dim i As Long

  '半角化対象文字定義
  MAK = Split("!,#,$,%,&,',(,),*,+,-,.,/,:,;,<,=,>,?,@,[,\,],^,_,{,|,},。,、,,", ",")
  NUM = Split("1,2,3,4,5,6,7,8,9,0", ",")
  ALB = Split("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z", ",")

  '大文字アルファベット置換
  For i = 0 To UBound(ALB)
    対象 = Replace(対象, ALB(i), StrConv(ALB(i), vbNarrow))
  Next i
  '小文字アルファベット置換
  For i = 0 To UBound(ALB)
    対象 = Replace(対象, StrConv(ALB(i), vbLowerCase), StrConv(StrConv(ALB(i), vbLowerCase), vbNarrow))
  Next i

  '数字置換
  If 数字 Then
    For i = 0 To UBound(NUM)
      対象 = Replace(対象, NUM(i), StrConv(NUM(i), vbNarrow))
    Next i
  End If

  '記号置換
  If 記号 Then
    For i = 0 To UBound(MAK)
      対象 = Replace(対象, MAK(i), StrConv(MAK(i), vbNarrow))
    Next i
    対象 = Replace(対象, Chr(-32408), Chr(34)) ' ”の置換
  End If

  英数字半角化 = 対象

End Function

こんにちは。

英数字だけの半角化は、結構需要があると思います。しかし、標準の操作、関数ではできないんです。
以下のコード(無駄が多くてお見苦しいのですが)は、以前私が作成した自作関数(EXCEL2000以上)です。
英数字のみを半角化します。オプションで半角化できる記号も半角化します。

使い方は、標準モジュールに貼り付けて使用します。そして、普通の関数のように、

=英数字半角化(A1,True,True)

とセルに書きます。


'*********************************************************...続きを読む

Qエクセル 全角英文字のみを半角に!

全角英カナを半角にする関数「asc」は知っているのですが、
英文字のみを半角にする方法はありますでしょうか?

※英文字とカタカナが同セル内に存在しているのですが、カタカナは全角のままで、英文字のみを半角にする事を希望しています。

よろしくお願い致します。

Aベストアンサー

ユーザ定義関数を作って利用する方法です。
Alt+F11でVBAの画面を開きます。
「挿入」>「標準モジュール」を選択します。左側の画面にModule1というのができます。
右側の画面に、以下を貼り付けます。

Function ASC_A(str As String) As String
  Dim i As Integer
  For i = 1 To Len(str)
    If Mid(str, i, 1) Like "[a-zA-Z]" Then
      Mid(str, i, 1) = StrConv(Mid(str, i, 1), vbNarrow)
    End If
  Next
  ASC_A = str
End Function

Excelに戻って、任意のセルで =Asc_A(A1) とすると、A1の全角アルファベットだけを半角にします。

QExcel カタカナと英数字の混在セルでカタカナのみ全角にする

同じセルの中に、半角カタカナと英数字が混在しています。
カタカナのみ全角にし、英数字は半角の設定のままにする関数を教えてください。

アイウエABCショウジ(半角カタカナ+半角英数字)
⇒ アイウエABCショウジ(全角カタカナ+半角英数字)

Aベストアンサー

例の通りに半角カタカナと英数字のみが混在しているなら、
少し邪道ですが、
PHONETIC
というフリガナを抽出する関数で代用できます。
半角カタカナは全角カタカナに、半角英数字は半角英数字のままの結果が出ます。

もし、そのセルに平仮名があればカタカナになってしまいますし、
そのセルに「日本とセカイA」と直打ちしたら
「ニホントセカイA」
となってしまいます。

Qカタカナのみを半角から全角に変換したいのですが

VBAについて教えてください。

文字をHPにアップできるように、カタカナのみを半角から全角に変換したいのですが
何か良い方法はありますか?

文字は英字・ひらがな・カタカナ・漢字がランダムに入っています。

例えば

Sub test()
Dim a As String
a = "aaaアアア<>BBB"


End Sub

の状態で。「アアア」のみを全角にするにはどうすればいいでしょうか?
アルファベットは半角のままにしたいです。

Aベストアンサー

 回答No.4です。
 先程挙げたVBAマクロの中に、(試行錯誤を行っていた時に付けたまま、削除し忘れていた)必要のない部分が残っておりました。
 削除し忘れていた部分は、必要が無いというだけで、残したままでも動作上は特に問題は無いと思いますが、一応、不要部分を削除したものも挙げておきます。


Sub Macro01()

Dim a As String '置換前の文字列
Dim b As String '置換後の文字列
Dim i As Integer
a = "aaaアアア<>BBB"

b = a
For i = 31850 To 31936
b = Replace(b, StrConv(Chr(-i), vbNarrow), Chr(-i))
Next i

End Sub



Sub Macro02()

Dim i As Integer
For i = 31850 To 31936
Selection.Replace What:=StrConv(Chr(-i), vbNarrow), Replacement:=Chr(-i)
Next i

End Sub

 回答No.4です。
 先程挙げたVBAマクロの中に、(試行錯誤を行っていた時に付けたまま、削除し忘れていた)必要のない部分が残っておりました。
 削除し忘れていた部分は、必要が無いというだけで、残したままでも動作上は特に問題は無いと思いますが、一応、不要部分を削除したものも挙げておきます。


Sub Macro01()

Dim a As String '置換前の文字列
Dim b As String '置換後の文字列
Dim i As Integer
a = "aaaアアア<>BBB"

b = a
For i = 31850 To 31936
b = Replace(...続きを読む

QEXCELマクロで上書きメッセージ無しで保存する方法

EXCELマクロで上書きメッセージ無しで保存する方法をお願いします
ActiveWorkbook.SaveAs "C:\Documents andSettings\Nakatani\MyDocuments\Book1.xls"
の様にするとすでにファイルがある場合上書きメッセージが出ます
メッセージを出さずに上書きするプログラミングを教えて下さい
宜しくお願いします

Aベストアンサー

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "C:\Documents andSettings\Nakatani\MyDocuments\Book1.xls"
Application.DisplayAlerts = True

Q【Excel】 全角(数字だけ)を半角にしたい

住所の表を整理しているのですが、数字が全角になっているので、半角に変換したいと思い、ASC関数を使ったのですが、カタカナまで半角になってしまいました。
カタカナは全角で、数字だけ半角にしたいのですが。。
数字だけを半角にする方法ってないんでしょうか?

Aベストアンサー

問題は解決済みと思いますが、数字のみ全角→半角にするマクロです。ご参考まで。

Sub MacroR()
Dim idx As Integer, trg As Range
 Set trg = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
 For idx = 0 To 9
  trg.Replace What:=Right(StrConv(str(idx), vbWide), 1), _
   Replacement:=Right(str(idx), 1)
 Next
End Sub

マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はALT+F8を押して、マクロ名を選択します。

QExcelでカタカナ・ひらがな・英数字の抽出

Excelでデータの中から文字種類別にデータを抽出す方法を教えてほしいです。

(例)
   A    B                 C
1  番号  書名               著作名
2  1    ソロモンの偽証 第1部   宮部みゆき
3  2    悪の教典            貴志祐介
4  3    犯罪               フェルディナント・フォン・シーラッハ/酒寄進一
5  4    忘れられた花園        ケイト・モートン/青木純子
6  5    LOVELESS(ラブレス)    桜木紫乃
7  6    Harry Potter          Rowling, J. K.

例えば、上のデータからCの列の中からカタカナ(全角/半角)を探し出し方法はありますか?
データ(フェルディナント・フォン・シーラッハ、ケイト・モートン)だけ抜き出すのではなく
どこのセルにデータがあるのか分かるようにしたいです。

   A    B                 C
4  3    犯罪               フェルディナント・フォン・シーラッハ/酒寄進一
5  4    忘れられた花園        ケイト・モートン/青木純子

のように表示できるようになるのが理想ですが
C4、C5など、データの入っているセルが分かるようになればいいです。

カタカナだけでなく、英語・ひらがな(カタカナ・アルファベットがないもの)でも同様に探せるようにしたいです。
カタカナや英語は全角・半角入り混じっています。
一つセルに全角半角が混在している場合もあります。
B6のようにカタカナや英語が混じっているセルや
C4、C5のようにカタカナと漢字(ひらがな)が混じっているセルもあります。
関数は簡単なのは分かりますが、マクロはさっぱりです。
コードや関数を解説つきで提示していただけると幸いです。

Excelでデータの中から文字種類別にデータを抽出す方法を教えてほしいです。

(例)
   A    B                 C
1  番号  書名               著作名
2  1    ソロモンの偽証 第1部   宮部みゆき
3  2    悪の教典            貴志祐介
4  3    犯罪               フェルディナント・フォン・シーラッハ/酒寄進一
5  4    忘れられた花園        ケイト・モートン/青木純子
6  5...続きを読む

Aベストアンサー

こんばんは!
一例です。

C列セルに全角カタカナ・半角カタカナ・半角アルファベット・全角アルファベットがある場合
その行を非表示のするVBAの一例です。
データは2行目以降にあるとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

尚、行を再表示させる必要があると思いますので、再表示のVBAも一緒に載せておきます。


Sub 対象行非表示() 'この行から
'変数の宣言(i,k,Mは長整数型・strは文字列型)
Dim i As Long, k As Long, M As Long, str As String

'iは2行目からA列の最終行まで(ループ)
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

'kはC列セルの1文字目から最終文字まで(ループ)
For k = 1 To Len(Cells(i, 3))

'C列セルを一文字ずつ変数(str)に置き換える
str = Mid(Cells(i, 3), k, 1)

'もし strが 全角カタカナ・半角カタカナ・半角アルファベット・全角アルファベットの場合は
If str Like "[ア-ン ア-ン A-z A-z]" Then

'Mを一つずつ増やしていく
M = M + 1
End If

'次の文字へ(セル内の最終文字まで)
Next k

'もしMが1以上の場合(全角カタカナ・半角カタカナ・半角及び全角アルファベットがある場合)
If M > 0 Then

'その行を非表示にする
Rows(i).Hidden = True
End If

'Mの値を「0」に!
M = 0

'次の行へ(最終行まで)
Next i
End Sub

Sub 再表示()
Rows.Hidden = False
End Sub 'この行まで

※ コードをコピー&ペーストした場合
>If str Like "[ア-ン ア-ン A-z A-z]" Then
の行の ア-ン が両方とも全角になっているかもしれませんので、
貼り付け後コードを確認してみてください。
もし両方とも全角になっていたら、どちらかの「ア-ン」のカタカナ部を半角にしてください。

※ まず「対象行非表示」のマクロから実行してみてください。

参考になりますかね?m(_ _)m

こんばんは!
一例です。

C列セルに全角カタカナ・半角カタカナ・半角アルファベット・全角アルファベットがある場合
その行を非表示のするVBAの一例です。
データは2行目以降にあるとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

尚、行を再表示させる必要があると思いますので、再表示のVBAも一緒に載せておきます。


Sub 対象行非表示() 'この...続きを読む

Q「Exel」で、指定した列が常に「半角カタカナ」で入力されるようにしたいのですが

「Exel2000」を使っているのですが、セル(又は列)ごとに
入力設定が常に「半角カタカナ」になるよう、指定することは出来るのでしょうか?

「セルの書式設定」の「表示形式」では、数値や日付などの分類はあっても
文字入力の指定が出来るような項目はありませんよね?
他の列は「全角ひらがな」で入力していても、その列に来ると自動的に
半角カタカナで入力されるようにしたいのですが…。

Aベストアンサー

こんにちは

 以下の手順でいかがでしょうか?

1.セルまたは列を選択
2.メニュー[データ]-[入力規則]
3.[日本語入力]タブで[半角カタカナ]を選択
4.Enter

参考URL:http://www2.odn.ne.jp/excel/


人気Q&Aランキング