マンガでよめる痔のこと・薬のこと

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

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

A 回答 (3件)

あー大変。


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

回答ありがとうございました!#1の方に書いたような理由で、お礼が遅れてしまいました。申し訳ありませんでした。
なるほど。Wordを使うとは・・・。言われてみれば、Wordは英数字とカタカナを判別してくれるんですよね。
教えていただいた方法で、なんとか四苦八苦しながらですが、データをまともにすることができました。
この方法は友達も「なるほど」と感心しきりでした。
ありがとうございました。

お礼日時:2003/02/23 01:05

今ごろ遅いと思うけど、


今後またそんなことがあるかもしれないので一応書いておきます。
A1のセルに元のデータが入っていると仮定します。
作業セル(B1)に=asc(A1)と入力→すべてが半角になります
B1のデータをコピーし、作業セル(C1)に値のみを貼り付ける
作業セル(D1)に=Phonetic(C1)と入力
*このときC1(フリガナの元になるセル)は、書式→ふりがな→設定で
全角カタカナにしておきます
D1のデータをコピーし、A1に値のみを貼り付ける。
これでカタカナは全角、英数は半角になるはずです。


この質問にもっと早く気付ければよかったのですが・・・。
すみません
    • good
    • 17
この回答へのお礼

すごい!!
こんな便利な方法があったなんて!!夢のようです!
実際の処理はもう終わってしまったのですが、私の「Excel勉強ノート」に書いておきます!
わざわざ回答くださってありがとうございました!!
うれしいです。

お礼日時:2003/02/23 01:07

http://www.morgan.co.jp/kiso/kiso_ex03.htm

こちらのマクロを利用されてみてはいかがですか?
ただし、私個人としては使用したことがありません(爆)

参考URL:http://www.morgan.co.jp/kiso/kiso_ex03.htm
    • good
    • 0
この回答へのお礼

早速のお返事、ありがとうございました。
当日は大変忙しく、すぐにお返事を差し上げることも出来ませんでした。お礼が遅れてすみませんでした。
恥ずかしながら、私は全然パソコンに弱く、特にExcelは全然ダメなんです。マクロも使ったことがなくて、教えていただいたサイトは拝見しましたが、ちょっと使いこなせそうなので、諦めてしまいました。
でも、素早いお返事をいただけたことに、大変感謝しています。
ありがとうございました。

お礼日時:2003/02/23 01:02

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

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【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を押して、マクロ名を選択します。

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でカタカナ・ひらがな・英数字の抽出

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カタカナのみを半角から全角に変換したいのですが

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(...続きを読む

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

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

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

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

Aベストアンサー

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

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

Qエクセルで英数のみを半角に変換するマクロ

エクセル2003を使っています
エクセルで英数のみを半角に変換するマクロの作り方を教えてください。
予め複数のセルを選択しておいて、それらに含まれる文字列の英数のみを半角に(カタカナは全角のまま)変換したいのです。
以前他のサイトで同様の機能のユーザー関数の作り方は見つけたのですが、マクロにする方法がわかりません。
よろしくお願いします。

Aベストアンサー

こんにちは。

まず、#3 のコードでバグ修正します。TextCompare ではマズかったです...

    SourceText = Replace$(SourceText, _
               M.Value, _
               StrConv(M.Value, ConvMode), _
               Compare:=vbTextCompare)
     ↓
    SourceText = Replace$(SourceText, _
               M.Value, _
               StrConv(M.Value, ConvMode))

次に...

> 英数、日本語、半角全角・大文字小文字が入り乱れていて、同じ曲でも
> 表記方法がバラバラなため、その表記を統一したいのです。

このような質問の核心部分は最初に提示すべきでしたね...

> それらに含まれる文字列の英数のみを半角に(カタカナは全角のまま)
> 変換したいのです。

目的が提示されると、これは手段の一部でしかなくなってしまいました。
何をしたいのか? を最初に明示しないと不要に補足+再回答を繰り返すこと
になります。

で実現方法ですが...

Sub Sample()
  ' 半角化できるものは全て半角化する+アルファベットは一度大文字へ
  Call RegStrConvRng(Selection, ".*", vbNarrow + vbUpperCase)
  ’半角カナは全て全角へ
  Call RegStrConvRng(Selection, "[\uff66-\uff9f]+", vbWide)
  ' 半角アルファベットの頭のみ大文字へ
  Call RegStrConvRng(Selection, "[A-z']+", vbProperCase)
End Sub

これで次のように変換されます。一応希望どおりですか?

i can’t speak english.
 ↓
I Can't Speak English.

ちなみに、頭のみ大文字は、単語の頭を大文字、それに続く文字を小文字
です。つまり、

this is a pen. → This Is A Pen.

です。これを This is a pen. にしたいというなら、正規表現のパターンの
設定次第で可能ですが、今回のご質問趣旨からはずれますからご自分で
お調べ下さい。

こんにちは。

まず、#3 のコードでバグ修正します。TextCompare ではマズかったです...

    SourceText = Replace$(SourceText, _
               M.Value, _
               StrConv(M.Value, ConvMode), _
               Compare:=vbTextCompare)
     ↓
    SourceText = Replace$(SourceText, _
               M.Value, _
               StrConv(M.Value, ConvMode))

次に...

> 英数、日本語...続きを読む

QExcel2007でカタカナの文字のみを抽出、表示するには?

表題のとおりExcel2007でカタカナの文字のみを抽出し、となりのセルに表示する方法を探しています。

具体的には、

      A列             B列
意識がモウロウとしている。  モウロウ
カミシモを脱いで談笑する。  カミシモ

といった感じで表示させたいのですが、可能でしょうか。
また、同様に半角文字のみをとなりのセルに表示させる方法も探しています。
なるべく早くご教授くだされば幸いです。

Aベストアンサー

たとえば、半角文字を抽出するなら以下のような数式がわかりよいかもしれません。

=MID(A1,MIN(INDEX((MID(A1,ROW($A$1:$A$100),1)=MID(JIS(A1),ROW($A$1:$A$100),1))*100+ROW($A$1:$A$100),)),LENB(JIS(A1))-LENB(A1))

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング