• ベストアンサー

海外購入PCでLENB関数を機能させるには?

掲題の件ですがお力を貸していただけますと幸いです。 LENBを使って文字数をカウントしたいのですが、 海外購入パソコンのため全角認識がないのか、 ひらがなや漢字をいれても`1`とカウントしてしまいます。 きちんと半角は1、全角は2としてカウントさせたいのですが 何かいい方法はないでしょうか? このエクセルファイルは人に提出して記入してもらうもののため (提出先の人も海外購入パソコンを使用している可能性大) PCのハード側をいじるのではなく、 エクセル内の関数などで解決したいです。。。 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>ひらがなや漢字をいれても`1`とカウントしてしまいます。 VBAを使うしか手はないと思いますが……。 VBAでも、一般のコード、InstrConv で、Ascii に戻す、vbFromUnicode オプションが利きません。もともと、英語バージョンも、ローカルバージョンですから、たぶん、CODE関数でも取れないはずです。「1」と出ているのは、単に、ワークシート上で「?」になった文字を数えているだけだと思います。ちょうと、以前の#1のmike_gさんのご質問の裏返しのようなものではないでしょうか? 今回の質問は、時々、VBカテゴリなどで出る質問と同質だと思いますが、バイナリにして文字長を数えます。VBAは、本来、Unicodeだけですから、Unicodeの上位桁・下位桁のチェックをすればよいわけです。ワークシート関数では、そういうことは出来ないと思います。VBAは、禁止だとすれば、今回は無理だと思います。 '標準モジュールに貼り付けてください。 Public Function fLenB(arg As Variant)  Dim buf As String  Dim b() As Byte  Dim i As Long, cnt As Long  If TypeName(arg) = "Range" Then   buf = arg.Value  Else   buf = arg  End If  b = buf  For i = LBound(b) To UBound(b)   If b(i) > 0 Then    cnt = cnt + 1   End If  Next i  fLenB = cnt End Function

asdfghtrewq
質問者

お礼

ありがとうございます。 VBAでやってみます。 ありがとうございました。

その他の回答 (2)

noname#194317
noname#194317
回答No.2

LENB関数は日本語版限定の機能なので… なのでやれる可能性があるとしたら、 1)LEFTあるいはRIGHT関数で端から1文字ずつ取り出す。 2)それをCODE関数に入れて文字コードを調べる。 3)CODE関数の戻り値が255以下だったら半角なので文字数+1,そうでなければ+2。 4)上記を全ての文字を調べるまで繰り返す。 という動作をするユーザー定義関数を作るくらいしか手がないんじゃないでしょうか。

asdfghtrewq
質問者

お礼

ありがとうございます。 ただ上記の関数でもただしくcodeがでずでした。。。

noname#204879
noname#204879
回答No.1

当該PCにインストールされている Excel は英語版ですか、それとも、日本語版?

asdfghtrewq
質問者

補足

英語版のexcelです。。。 やはり難しいでしょうか?

関連するQ&A

  • エクセル 関数で全角カタカナを半角にしたい

    エクセル初心者です。人からもらったデータなのですが、住所の記載でカタカナの部分に半角と全角が混ざってしまっています。漢字・ひらがなはすべて全角、カタカナ・数字は半角に統一したいのですが、関数でできますか? 良い方法を教えてください。

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

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

  • LENB 関数

    関数LENBを使用して、作成している条件が、 今まで全角20文字以内であれば、チェック項目○、20文字以上又は、 半角英数が入れば、チェック項目×になるよう関数作ってました。 → =IF(LEN($C$5)*2=LENB($C$5),IF(AND(LENB(C5)>=2,LENB(C5)<=40),"○","×"),"×") 今回 条件を変えたいんです。 全角でも半角英数がはいっても、40バイトであれば、チェック項目○、40バイト超過すれば チェック項目×にするには、 どうしたらいいですか? 教えていただける方、ご指導お願いします。。

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

    エクセル2000を使っています。 会社で住所録作成を引き継ぎましたが、 一つのセルにひらがな、漢字、カタカナ、英数字 が半角・全角ごちゃ混ぜで入っているので 管理がしづらくて困っています。 例えば、 あいうアジアNET株式会社 株式会社ABC123 などなど・・・・ ひらがな・漢字はそのままで、 カタカナを全角、英数字を半角にする方法は ありませんか? 最初にASC関数を使ってみたらカタカナも半角になり、 Phonetic関数を使うと、 カタカナだけ全角になりましたが、 ひらがなまでカタカナになり・・・ JIS関数も試しましたが今度は英数字まで全角になり、 どうしたものかと困っております。 よろしくお願いします。

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

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

  • Excelで、ワークシート内の半角・全角変換

    いつもお世話になっております。 人からもらったファイルをくっつけて、一つの報告書を作っているとします。 すると人によって、半角・全角の基準がバラバラになります。 パソコンに関しては几帳面な私は  ・漢字・ひらがな・カタカナは全角  ・英数字・記号は半角 で統一したいのです。 現在はいちいち直しておりますが、関数などを使用して簡単に変換できる方法は無いでしょうか。 ASC関数だとカタカナまで半角になってしまうので使えないのです。 よろしくご教授願います。

  • セル内の文字で半角2文字で1文字とカウントしたい

    openofficeを利用しています。 セル内の全角と半角が混じった文章から半角2文字で1文字とカウント 全角はそのまま1文字とカウント して文字数を数えることはできますでしょうか? LENBが利用できないので困っています。 よろしくお願いします。

  • PCオフィス2010の漢字変換について

    オフィス2010を使っていますがカタカナ・ひらがなのボタンで全角ひらがなににりますがその状態から半角・全角・漢字のボタンで半角カタカナになるように設定したいですどなたか教えて下さい

  • エクセル 指定した記号や平仮名、漢字などをカウントしていく関数

    エクセルで、指定した記号や平仮名、漢字などをカウントしていく関数はあるのでしょうか?ヘルプで検索したのですが見付けられません。どなたか教えて下さい。

  • Excelでカタカナ文字列をひらがな文字列に変換したい。

    Excelで半角カタカナを全角に変換する関数がありましたが、全角カタカナを全角ひらがなに変換はできるのでしょうか? 『桐』にはそのような関数があったかと思うのですが、Excelではわかりません。 よろしくお願いします。

専門家に質問してみよう