半角文字と全角文字の対応表を作成したのですが、疑問に思った文字が3個あります。
作成方法はVbaで StrConv関数 を使用しました。
(1)半角"\"から全角"¥"を取得できない。 逆も同じです。
(2)半角"'"(0x27) <--> 全角"'"(0xFA56)シフトJIS
半角"""(0x22) <--> 全角"""(0xFA57)シフトJIS
となりました
(3) 上記(2)について調べてみたら
 シフトJIS(JIS)でみると
 ED40(7921) から EEFC(7C7E)までと
 FA40(9321) から FC4B(972C)までが
  どう見ても同じ文字が登録されているように思われます。
 10年以上前のN88-BASIC(86)ガイドでは 上記(ED40以降)の範囲を 拡張文字として扱っていますが、IME2000の辞書では
 下記(FA40以降)を 漢字3 として扱っているのと同時に、 ED40からを 漢字2 の最後に含まれています。

 これらはどういうことなのでしょうか。 どなたか教えてください

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

A 回答 (1件)

(1)StrConv関数の仕様らしいです。


 理由は"\"の全角文字は"¥"と"\"の2つあるからのようです。
 「どっちに変換するのかわからんからどっちにも変換せん」ということでしょうか。
 (\マークは英語版キーボードではバックスラッシュになっていますよね)
(2)も同じような理由で " の全角は“ と ”の2つあるからみたいです。
(3)についてはうろ覚えで申し訳ないのですが、片方がNECが独自にPC-9801シリーズに登載したNEC特殊文字、片方がIBMが独自に国内のAT互換機向けに搭載したIBM拡張文字だったと思います。NECは「IBMが採用したから98にも搭載する」といった具合にIBM拡張文字を98文字コードの(違うアドレスに)組み込んでいきました。
MS-WindowsはNECとIBMの両方の特殊文字・拡張文字を組み込んだため同じ文字コードが別の領域に割り当てられることになったそうです。
どっちにせよJIS外ですから、インターネットでは使えませんね……
    • good
    • 0

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

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

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

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

QExcelのしつもんです! 関数を用いて1文字目だけを大文字にした半角文字のやり方をおしえてください

Excelのしつもんです!
関数を用いて1文字目だけを大文字にした半角文字のやり方をおしえてください。
変換のやりかたです!そして、A la-99などと半角で表示されていない数字だけをとりだし半角にして、最初の大文字にしたやつと半角にした数字を合体させる方法をおしえてください!

Aベストアンサー

PROPER関数で、1文字目を大文字、2文字目以降を小文字にできます。
ASC関数で、半角で表示できる全角文字を半角文字に変えることができます。

これを工夫してみましょう。

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

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

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

Aベストアンサー

ご使用のエクセルのバージョンが提示されていないのですが、エクセル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)

Qシフトキーなしで大文字の半角英字を打つ方法

キーボードのシフトキーが壊れてしまい、大文字の半角英字が打てなくて困ってます。メールのパスワードに大文字の半角英字があるんです。全角の場合はコード表があるので大丈夫なんですが・・・。
本当ならキーボードを買い替えるのが一番なんでしょうけど、高いので迷ってます。
シフトキーなしで大文字の半角英字を打つ方法はないでしょうか?
よろしくお願いします。

Aベストアンサー

皆さんWINDOWSで回答されてますけど、カテゴリからいってMACの話ですよね・・?

さすがにCAPS LOCKを使わないでスムーズに・・というのは難しいですが、
とりあえずの一時的な方法でしたら、エディタを使ってはどうでしょうか。

私の知ってるものでは、「ミミカキエディット」というフリーのテキストエディタ(参考URL)ですが、例えば
abcde
と打ち込み、その部分を選択し、マウスで長押しします。
するとサビメニューが出てきて、文字種変換ができ、
小文字→大文字を選択すれば
ABCDE
となりますよ。

パスワードは大抵コピペでも大丈夫です。

どちらにしても不便ですね^^;
とりあえず、これで急場を凌いでみてください。

参考URL:http://www.asahi-net.or.jp/~gf6d-kmym/

Q列ごとに全角英数・全角カナ・半角カナしか入力できないフォーマットをつくりたい

エクセルで基本フォーマットを作り、他の人に配布&入力してもらった後、全てを集計&データベース化する必要があるのですが。

各列に設けた項目により、‘全角英数のみ’‘全角カナのみ’‘半角カナのみ’の入力規則を設けた後、ロックをかけてみたのですが、変換できてしまう…?
全角英数&カナに関しては【=LEN()*2=LENB()】で逃げれたように思うのですが、‘半角カナのみ’の入力設定がわかりません…;;

ちなみに、別の列に入力したものを数式で半角に変換する方法は、今回のフォーマットには使いたくないのですが…??

どなたか、お助けください…**

Aベストアンサー

入力規則の[日本語入力]タブの設定は、
あくまでIMEを自動的に切り替えるだけのものですから、
残念ながら、指定した種類の文字以外の入力を禁止することはできません。

また、「全角英数のみ」「全角カナのみ」「半角カナのみ」を
簡単に判定する方法も、おそらくないと思います。

以下、かなり無理矢理ですが、
データ>入力規則>設定タブ>ユーザー設定>数式で…
--------------------------------------------------------------------
●A案:コード番号で指定する

例えば「半角カナのみ」の場合
(小書き文字,鍵括弧や長音記号など一部の記号を含む)

 =AND(161<=MIN(INDEX(CODE(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),)),MAX(INDEX(CODE(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),))<=223)
 【入力しようとした文字列のすべての文字のコード番号が、161以上223以下であれば許可】

コード番号は、CODE関数で調べることができます。
「半角カナ」161~223
「全角英数」9008~9082
「全角カナ」9505~9590

※「数式はエラーと判断されます。続けますか?」
 というメッセージが出てもそのまま「はい」で続行。
--------------------------------------------------------------------
●B案:許可する文字を全て書き出す

例えば「全角英数のみ」の場合

 =SUMPRODUCT(--ISERROR(FIND(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1),"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")))=0
 【入力しようとした文字列のすべての文字が、指定した文字列の中にあれば許可】
--------------------------------------------------------------------
※いずれもExcel2003で動作確認済
※当然ですが、[日本語入力]タブの設定も併用して、
 IMEを自動的に切り替えないと非常に不便です。
※数式が長いので、直接打ち込むのではなく、
 別の場所に書き込んでから、コピー>Ctrl+Vで貼り付けた方が確実です。

以上ご参考まで。

入力規則の[日本語入力]タブの設定は、
あくまでIMEを自動的に切り替えるだけのものですから、
残念ながら、指定した種類の文字以外の入力を禁止することはできません。

また、「全角英数のみ」「全角カナのみ」「半角カナのみ」を
簡単に判定する方法も、おそらくないと思います。

以下、かなり無理矢理ですが、
データ>入力規則>設定タブ>ユーザー設定>数式で…
--------------------------------------------------------------------
●A案:コード番号で指定する

例えば「半角カナのみ」の...続きを読む

Q英字の半角大文字

@niftyのcombo会員というのに
なりましたが、はじめログインするのに
パスワードを英字の半角大文字で入力しないといけ
ないのですが、設定のしかたが悪いのか
どうしても英字の半角大文字を入力出来ません。
(パスワードを入力するところは変換およびコピーが
できないので はじめに英字の半角大文字が入力出来
ないといけないのですが それができません。)
WIN95を使っているので、MS-IME95
なのですが、設定の仕方を知っている人は
教えてください。

Aベストアンサー

英字半角大文字は、通常はShiftキイを押して入力できます。また、CapsLockキイを押してCapsLockモードにすると大文字入力(Shiftキイを押すと小文字入力)されるようになります。
入力になれるため、メモ帳などで一度試してみるとよく判ると思います。

Q全角・半角混在の文字列から半角文字のみ取り出す

エクセル勉強中です。問題集で理解できないところがあります。
数式がどういう意味をもつのか教えて頂けるとありがたいです。
よろしくお願いします。

画像添付の問題になります。
A列に製品名が入っています。(製品番号:半角文字)(製品名:全角文字)
B列に半角文字の製品番号だけを取り出しなさいというものです。
半角文字の開始位置がバラバラになっているところが問題のポイントになっています。

回答ですが
B2:
=MID(A2,MATCH(1,INDEX(LENB(MID(A2,COLUMN(2:2),1))*1,0),),LEN(A2)*2-LENB(A2))
こちらで半角文字のみ取り出せるようです。回答には数式のみで何故この関数を使うのか?
使うことでどういった結果を導くなどの解説が一切ありません。(ちなみに出版会社の便利技的な問題集です)

MID関数で製品名A2から開始位置を指定して、全角半角をLEN関数LENB関数で半角文字数を
算出して文字列を抽出するという事は理解できます。
ただ、この開始位置の指定の所が理解できません。
数式を分割してみましたが
=MID(A2,COLUMN(2:2),1)の所はどの行も製品名の1文字目ですよね・・・
その値にLENB関数で文字数?
数式の検証で見てみると配列のような結果が次々と現れて・・・
MATCH関数もありますしINDEX関数が何か関係しているような気はしているのですが、
INDEX関数と言えば配列に行番号・列番号と例えば表の該当するセルの位置抽出の
知識しかありません。一つのセルでINDEX関数?

すいません。独学で勉強していてこの程度の知識ですが、この数式の考え方教えてくださる方よろしくお願いします。

エクセル勉強中です。問題集で理解できないところがあります。
数式がどういう意味をもつのか教えて頂けるとありがたいです。
よろしくお願いします。

画像添付の問題になります。
A列に製品名が入っています。(製品番号:半角文字)(製品名:全角文字)
B列に半角文字の製品番号だけを取り出しなさいというものです。
半角文字の開始位置がバラバラになっているところが問題のポイントになっています。

回答ですが
B2:
=MID(A2,MATCH(1,INDEX(LENB(MID(A2,COLUMN(2:2),1))*1,0),),LEN(A2)*2-LENB(A2))
こち...続きを読む

Aベストアンサー

ご質問のような半角文字を抽出するなら、提示された数式は一部非効率でわかりにくいところがありますが、個人的には最も簡単な配列数式になっていると思いますので参考までに検証方法を補足します。

まずB2セルに以下の式を入力してください(半角文字が11文字目までに出現する場合)。

=MID(A2,MATCH(1,INDEX(LENB(MID(A2,COLUMN(A:K),1)),0),),LEN(A2)*2-LENB(A2))

COLUMN関数の部分はROW関数で以下のようにするほうが数式がわかりよいかもしれません。

=MID(A2,MATCH(1,INDEX(LENB(MID(A2,ROW($1:$11),1)),0),),LEN(A2)*2-LENB(A2))

この画面上部の数式バーの数式のCOLUMN(A:K)(またはROW($1:$11))の部分をドラッグして選択しF9キーを押すと,「{1,2,3,4,5,6,7,8,9,10,11}」と表示されます(Escで解除)。

次に、MID(A2,COLUMN(A:K),1)の部分を選択し、F9キーを押すと、「{"お","徳","用","M","G","0","5","K","R","カ","ラ"}」とA2セルの先頭から11文字目までの文字が取得できていることがわかります。

次に、LENB(MID(A2,ROW($1:$11),1))の部分を選択し(INDEXを含む部分はこの配列を範囲に変換しているだけですので、この部分を省略するならCtrl+Shift+Enterで確定する必要があります)、F9キーを押すと、「{2,2,2,1,1,1,1,1,1,2,2}」のように、それぞれの文字の半角、全角が1と2で表示されます。

次にMATCH(1,INDEX(LENB(MID(A2,ROW($1:$11),1)),0),)の部分はMATCH関数(第三引数が0または省略)で1(=半角文字)が最初に出現する場所を調べています(上記の例なら4番目)。

ご質問のような半角文字を抽出するなら、提示された数式は一部非効率でわかりにくいところがありますが、個人的には最も簡単な配列数式になっていると思いますので参考までに検証方法を補足します。

まずB2セルに以下の式を入力してください(半角文字が11文字目までに出現する場合)。

=MID(A2,MATCH(1,INDEX(LENB(MID(A2,COLUMN(A:K),1)),0),),LEN(A2)*2-LENB(A2))

COLUMN関数の部分はROW関数で以下のようにするほうが数式がわかりよいかもしれません。

=MID(A2,MATCH(1,INDEX(LENB(MID(A2,ROW($1:$11),1))...続きを読む

QExcel97で半角小文字で打った文字を半角大文字にする方法はありますか?

海外の部署名を入力していたところ、
半角大文字で入力しなければいけないものを
半角小文字で入力してしまいました。
おまけに単語の頭の部分は大文字で・・・

例)Marketing&Sales(誤)→ MARKETING&SALES(正)

また、半角小文字で入力したものを全角大文字にもしなければなりません・・・

例)Marketing&Sales(誤)→ Marketing&・・・

全部で100個はあります。
全部一から打ち直しするしか方法はないのでしょうか?
一番早い変換方法などはありませんでしょうか?
どなたか教えていただけませんでしょうか?
よろしくお願い致します。

Aベストアンサー

A1セルに文字列があるとして、
全角を半角に→ASC(A1)
半角を全角に→JIS(A1)
先頭文字だけ大文字に→PROPER(A1)
の関数で簡単に変換できますよ。
例:A1セルの(MAKING,CO)を半角、先頭大文字に変えたい場合は→PROPER(ASC(A1))になります。変換後(Making,Co)
エクセルの中では、文字列操作関数にありますので、詳しくはそちらを拝見ください。
セルのコピーなどでうまくいくといいですね。

QExcel 全角数字を半角に

Excelデータに数値とハイフンを全角で入れて送ってきます・・・

例:
今日111-111-111
明日222-222-222

これを入力時に

今日111-111-111
明日222-222-222

の様に半角に自動変換出来れば助かります。
「今日」や「明日」等を削除しても構わないので
可能でしょうか? 方法をわかり易く教えて下さい。

Aベストアンサー

こんにちは。

個人用マクロブックに入れて、ツールボタンにマクロを設定してください。
個人用マクロブックが作られていない場合は、最初に、記録マクロで、「個人用マクロブック」を指定して、セルをクリックすれば作られます。その後、そのマクロを探して、削除して、以下のコードを登録します。

メニュー-表示-ツールバー-コマンド[タブ]
分類-マクロ
ユーザー設定ボタン(にこちゃんマーク)->ドラッグ->ツールバー
選択したボタンの編集(M) -マクロの登録-設定
[にこちゃんマーク]で以外にも、イメージの編集で変更が可能です。


[標準モジュール]
---------------------------------------------

Sub TwoByteCharAltering()
Dim c As Variant
Application.ScreenUpdating = False
On Error GoTo ErrHandler
If WorksheetFunction.CountA(ActiveSheet.Cells) > 0 Then
 For Each c In ActiveSheet.UsedRange.Cells
  If VarType(c.Value) = vbString Then
   c.Value = StrConv(c.Value, vbNarrow)
  End If
 Next c
End If
Application.ScreenUpdating = True
ErrHandler:
 If Err.Number > 0 Then
   MsgBox Err.Number & ": " & Err.Description & vbCrLf & _
   "エラーが発生しました。: " & c.Address
 End If
End Sub

------------------------------------------
もう少し、半角変換の内容が複雑な場合は、またご相談ください。

こんにちは。

個人用マクロブックに入れて、ツールボタンにマクロを設定してください。
個人用マクロブックが作られていない場合は、最初に、記録マクロで、「個人用マクロブック」を指定して、セルをクリックすれば作られます。その後、そのマクロを探して、削除して、以下のコードを登録します。

メニュー-表示-ツールバー-コマンド[タブ]
分類-マクロ
ユーザー設定ボタン(にこちゃんマーク)->ドラッグ->ツールバー
選択したボタンの編集(M) -マクロの登録-設定
[にこちゃんマーク]で以外...続きを読む

Q半角英数字を大文字に変換する方法、初心者です。

HPの設定の過程で英数字の小文字と大文字で出来たパスワードを入れるようになってます。

半角小文字はキーボード左上の「半角/全角 漢字」を押せば入ってると思うんですが
(注:記号を打ち込んでも***の記号で表示されるため分からないのです)
英数字を半角大文字に変換するのはどのようにしたらよいのでしょうか?

打ち込んで記号、英数字を表示されるのであれば出来るんですが… 

質問の内容が少し分かりづらいかもしれませんが宜しくお願いします。

Aベストアンサー

半角英数字の状態で、Shiftを押しながら打ち込めば大文字になりますよ。

Qエクセル 全角から半角への変換

エクセルで作成した住所録(住所と電話番号)の数字が全角と半角がごちゃまぜになってしまっているので半角に全て変換をしたいので教えてください。お願いいたします。

Aベストアンサー

 こんにちは。No.2様の方式をあえて採用してみますとこんな風でしょうか。
Excel2000~2003でのやり方です。もしExcel2007をお持ちの方ですと以下の操作が
異なってしまいますのでその時はごめんなさい(VBAコード自体は有効だと思います)。
 VBAを記述するには Excel のメニューより
  ツール → マクロ → Visual Basic Editor
と選択します。そして「プロジェクト」ウインドウの Microsoft Excel Objects の所で
  右クリック → 挿入 → 標準モジュール
とします。コードのウインドウが開いたら下記のコードをコピペしてください。

'---------ここから-------------
Function ZenToHan(strStr As String) As String

 ZenToHan = StrConv(strStr, vbNarrow)

End Function

Sub test()

 Dim strWk As String
 Dim rgWk As Range
 Dim rgArea As Range

 Set rgArea = Range("B5:C8") 'セル範囲を指定。左記の例はセルB5からC8の範囲
                     'という意味です。B列に住所、C列に電話番号のイメージ

 For Each rgWk In rgArea
  strWk = rgWk.Value
  rgWk.Value = ZenToHan(strWk)
 Next

 Set rgArea = Nothing

End Sub
'----------ここまで------------

 この後一度ファイルを保存しておいてください。そしてExcelのメニューで
  ツール → マクロ → マクロ
として、マクロ名:test を選んで実行します。
結果がおかしければファイルを保存せずに終了して、先ほど保存したファイルを読み込み
なおしてください。

ちょっと煩雑かもしれませんが、VBAでやるならという参考まで...

 こんにちは。No.2様の方式をあえて採用してみますとこんな風でしょうか。
Excel2000~2003でのやり方です。もしExcel2007をお持ちの方ですと以下の操作が
異なってしまいますのでその時はごめんなさい(VBAコード自体は有効だと思います)。
 VBAを記述するには Excel のメニューより
  ツール → マクロ → Visual Basic Editor
と選択します。そして「プロジェクト」ウインドウの Microsoft Excel Objects の所で
  右クリック → 挿入 → 標準モジュール
とします。コードのウインドウが開いたら下記の...続きを読む


人気Q&Aランキング

おすすめ情報