• 締切済み

ExcelVBA:同じ文字の数を調べるプログラム

Excelのプログラムで、テキストボックスに例えば「あかさいおあ」という文字があったとき「あ」の文字の数を調べたいとき、Len、Mid、InStrで一文字ずつ調べる方法以外で簡単に作れるプログラムはあるでしょうか? 回答よろしくお願いします。

みんなの回答

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

「あ」を「」に変換しちゃって、文字数の差を求めればどうでしょう?

miya_HN
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBA:特殊文字の判定

    文字で英字や数字を判定するとき、「文字 Like」を使い、「"[A-Z]"」「"[0-9]"」で判定することができますが、特殊文字の場合はどうなるのでしょうか? 例をあげると、例えば、 セル「A1」の文字を調べるのに、「α」「β」「γ」「δ」であるかどうか判定したいのですが、そのような場合、 If Mid(Range("A1"), Len(Range("A1")),1) Like "[α][β][γ][δ]" = True Then このようになるのでしょうか? If Mid(Range("A1"), Len(Range("A1")),1) Like "[α-δ]" = True Then これは使えませんか? 回答よろしくお願いします。

  • ExcelVBA:テキストボックス上のカーソルを動かして選択範囲を指定したときに判定するプログラム

    Excelのプログラムでテキストボックス上のカーソルを動かし、テキストボックスの文字が青くなって、選択範囲を終えたとき(マウスを離したとき)に、範囲を選択したかどうか調べるプログラムを作りたいのですがどのようにすればよいのでしょうか? MouseUpでやってみたのですが、選択しないまま(青くならない)マウスを離すと同じことになってしまうのでこの判定をしたいのですが。 回答よろしくお願いします。

  • テキストボックスに表示できる文字数は

    エクセルのアクティブXのテキストボックスに表示できる文字数は 何文字ですか? エクセル2010です。

  • エクセル 2007/5/23の文字数が9文字としてカウントされないのはなぜ?

    エクセルにて 2007/5/23とセルに書いてあります。 そのセルの文字の数をlen関数で数えると9文字と表示されず、 5文字となりますが、なぜですか? また'2007/5/23とすると、ちゃんと9文字になりますが、 VBAで’を追加して、ちゃんと9文字と表示されるように する方法を教えてください。

  • ExcelVBAのテキストボックスのデータ型

    Excelのプログラムで、テキストボックスなどのオブジェクトで入力するときに数値だけとか、文字だけとかにしたいのですがデータ型を扱うプロパティはないでしょうか? 回答よろしくお願いします。

  • 文字数の取得方法(Active Basic 4)

    タイトルのとおりです。 Active Basicを使ってプログラミングをしているのですが、どうしても文字数の取得方法がわかりません。 命令文「Len()」を使えば文字列の「Byte」はわかりますが、文字数が取得できません。 何か良い方法はありますか? (Active Basic 参考プログラム) Dim Str$ As String Str$ = "abc"    '3文字 計3バイト Print Len(Str$)   '「3」が表示されます Str$ = "やほ~"   '3文字 計6バイト Print Len(Str$)   '「6」が表示されます

  • ExcelVBAで文字列の制御をしたいのですが

    セルに5文字の数字を文字列として取り込む入力規制をしているのですが、現段階では小数点を入力してもチェックにはじかれません。 小数点その他記号等チェックではじきたいので以下のようなマクロを組みました。 Dim A As String  ’値の取得用の変数 Dim i As Integer 'ループカウンタ For i = i To 5 '左からi個の数値を取り出す A = Left(target.Text, i) '取り出した数の右側の文字を検索(小数点があるとすればこの位置) If Len(A) = 2 Then A = Right(A, i) End If If Len(A) = 3 Then A = Right(A, i) End If If Len(A) = 4 Then A = Right(A, i) End If If Len(A) = 5 Then A = Right(A, i) End If '取り出した文字が数値以外ならメッセージを表示 If IsNumeric(A) = False Then Call MsgBox("数値以外が入力されています", vbExclamation) Next これでも何とか希望通りの動きはしたのですが、あまりスマートなプログラムに思えません。 不勉強で申し訳ありませんが、関数で○文字目、ひと文字だけを検索できるもはないのでしょうか? そうすればスマートにいきそうなのですが... このプログラムをもっとスマートな形にできる方法をご存知の方がいらっしゃれば、ご教授お願いします。

  • ExcelVBAでテキストボックスに入力制限をする方法

    Excelのプログラムで、フォームのテキストボックスに数値のみ入力許可したり、文字のみ入力許可したり、特定の文字のみ入力許可にするなど、入力制限を行う方法はどのようにすればよいでしょうか? 回答よろしくお願いします。

  • excelVBAで、Midの引数をLenで指定できる?

    ワークシートSheets1上のセルA1に、次のような文字列があり、 Length 50.0mm この中の、数字の部分だけをユーザーフォームのtextbox1に抜き出したいと思っています。 Length と、単位mmは全ての場合で共通ですが、数字は50.0の場合も5.0の場合もあり、文字数がまちまちです。 textbox1.value=Mid(Sheets("Sheets1").Range("A1").value, 8,Len(Sheets("Sheets1").Range("A1").value-2) のようにMid関数の引数にLen関数を使ったり、 x=Len(Sheets("Sheets1").Range("A1").value textbox1.value=Mid(Sheets("Sheets1").Range("A1").value, 8,x-2) のように変数xを介してみたりしたのですが、mmが表示されてしまいます。 (ちなみにLenを使わずx=13と書くと、mmなしの数値だけがうまく表示されます) VBAはトライ&エラーで使っている状態で、セルの取り扱い(.valueとか.textとか)や変数の宣言はかなり適当です。 この辺りが間違っているんでしょうか?? できればMidとLenを使った解決法、それが無理なら他の方法でも結構ですので、ご教授頂けると助かります。 よろしくお願いします。

  • 文字数による移動

     VisualBasicにおいて、テキストボックス内にたとえば4文字入力されたら、もう一つのテキストボックスに移る(つまりすぐに入力できるようにする)というプログラムは作れるのでしょうか?  例:テキストボックス1に「1542(4桁)」と入力された瞬間にテキストボックス2に移動し、マウスを動かさずにテキストボックス2に入力する。 できるのであればやり方を教えてください。教えてください。

このQ&Aのポイント
  • 【MFC-J7100CDW】を使用してパソコンでA3サイズの印刷をしたいと考えています。どのソフトがおすすめでしょうか?
  • Windows10を使用しているパソコンで【MFC-J7100CDW】を使ってA3サイズの印刷をしたいです。おすすめのソフトはありますか?
  • パソコンの編集ソフトとして、【MFC-J7100CDW】でA3サイズの印刷をする方法を教えてください。
回答を見る