• ベストアンサー

英数字は後ろから何文字目まで?

kigoshiの回答

  • ベストアンサー
  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.3

まず、ご質問の趣旨を一貫して頂きたいと思います。 初めのご質問では 1)エクセルで 2)後側は英数字の文字列は重要なので、赤くしたい という事でした。 それで、そういったコードを書きました。 しかし後の補足によりますと a)ワードに応用 b)後側英数字の文字列を抜き出す c)英数字のみではなく「’」アポストロフィもある というように、当初入っていない条件があるようです。 また、私の方にも勘違いがありました。 英数字は半角で入力されている前提でコードを書きました。 以下、全角英数字とアポストロフィを検知し、文字を赤くするコードです。 変数ptは文字列後ろから調べていき、最初に「全角英数字+アポストロフィでない」 文字が出てきた位置を表します。 rStr.Characters(Start:=pt + 1, Length:=Len(rStr.Value) - pt).Font.ColorIndex = 3の文は、ptの右隣の文字から「全文字数-pt」の文字数分を赤くする、という意味です。 文字列を抜き出す方法や、Word VBAへの応用は別質問を立てられた方がよろしいかと 思います。 Sub narrowRed() Const myRange As String = "A1:A10" Dim rStr As Variant Dim pt As Integer For Each rStr In Range(myRange) For pt = Len(rStr.Value) To 1 Step -1 If (Mid(rStr.Value, pt, 1) < "0") Or (Mid(rStr.Value, pt, 1) > "z") Then If Mid(rStr.Value, pt, 1) <> "’" Then rStr.Characters(Start:=pt + 1, Length:=Len(rStr.Value) - pt).Font.ColorIndex = 3 Exit For End If End If If pt = 1 Then rStr.Characters.Font.ColorIndex = 3 Next Next End Sub

azuma3chom
質問者

お礼

If (Mid(rStr.Value, pt, 1) < "0") Or (Mid(rStr.Value, pt, 1) > "z") Then のコードははじめてみました。 赤くなったのを目視できなかったので(既に赤くなっていた)、 Const myRange As String = "A1:A10"を Const myRange As String = "A1:C100"に変えてみて、実行してみました。見事に、一面が赤くなりました。 ありがとうございました。 派生的な質問なのですけれど、このコードを、Selection Changeイベントにすれば、セルに入力を終えた時点で赤くなるでしょうか。

関連するQ&A

  • Excelで文字の長さを揃えるには

    excel95とExcel2000を使っています。 漢字やひらがな全角カタカナ全角英数字は2バイト、 半角カタカナ英数字は1バイト、 2バイトと1バイトの混在入力して20バイトの長さの文字列を比べると見た目の長さが違う。 同じ20バイトの文字列を見た目を揃える方法を教えてください。

  • EXCEL 文字列操作

    教えてください。 たとえば、エクセルのセルの  AAA555さくらサクラ という文字列から、英数字だけ抜き出す方法を教えてください。 文字列は可変(不規則な長さ)で、文字列中には英数の他にひらがな、 カタカナ、漢字があります。 例の結果として、AAA555を抜き出したいです。

  • 文字列から英数字のみを抽出する関数

    文字列から英数字のみを抽出する関数を教えていただきたいです。 セルの文字列にはひらがな、カタカナ、数字、アルファベット、記号等を含みます。 色々調べてはみたのですが、数字のみを抽出する関数の説明はたくさんありますが、 アルファベットも含むとなると見つかりませんでした。 数字0~9とアルファベット27個の計37個の文字なので、どうにか関数でできると思うのですが。 具体的には下記のようにしたいのです。 ●A列 今日iPhone5をauで購入 最新のNEWSを15時~PCで見る  Moonshotを生み出す「Google X」 ●B列にこう表示したいのです。 iPhone5au NEWS15PC MoonshotGoogleX スペースは残ったままでも結構です。 詳しい方、どうかよろしくお願いいたします。

  • エクセルでセル内の文字をカウントしたい

    エクセルでセル内の文字をカウントしたいです。 例えば A| B| 1|1,2| 2|1,3| 3|2,3| 4|2 | 5|3 | というエクセルでB列の1の数、2の数、3の数をカウントしたいです。 B列の中には数字と数字の間は,が入っています。 困っています!よろしくお願いします!

  • エクセル VBA セル内の文字検索について

    XP microsoft visual basic 6.0 です A1からA10に書かれた文章(平仮名、カタカナ、漢字、数字、記号、含む)の中に 0から始まる半角8桁の数字があれば 取り出し B列に書き出す VBAを用いてこのようなことは可能でしょうか ※8桁の数字は文章内の何文字目にあるか決まっていない ※文章内に0から始まる8桁の数字が複数あることはない、が、0から始まり記号を含む8桁の文字列はある ご教授ください

  • Excelの半角英数字の入力について

    Excelで、あるセル、又は行全体に入力するときに半角、全角の入力にかかわらず、入力したものは必ず半角に変わるようにするにはどうすればいいでしょうか? また、漢字かつ英数字の混合文字列に対して、英数字だけは、全角で入力しても半角に変えてくれるようにするにはどうすればいいでしょうか?

  • Excelアルファベット文字列だけ一括抽出マクロ

    いつもお世話になっております。 Excel2013の A列に、ひらがなカタカナ漢字、英数字、*"「などの記号(半角全角)などが入っている文字列があります。 そこからアルファベットの文字列だけ(数字は不要)を抽出して、結果をBCD・・・列に表示させたいのです(A1からの抽出結果はB1,C1…に表示、A2からの抽出結果はB2, C2…に表示)。 添付の画像ではA2までしか載せていませんが、 実際にはA列には1000くらいエントリーがあり、 それを一括でアルファベットの文字列を抽出したいのです。 ご存じの方、ご教示いただければ幸いですm(_ _)m

  • フォントの高さ・幅・間隔の比率

    CADで文字サイズとして 文字の高さ・幅・文字の間隔が設定できるようになっています。 フォントはメイリオを使用します。 文字はだいたい縦長にみえます。 しかし、「漢字、ひらがな」よりも「半角の英数字、カナ」は縦長にみえます。 文字列としては 「漢字、ひらがな」「半角の英数字、カナ」が混合されたものになります。 こんな場合にフォントの高さに対して幅・文字間隔は どんな比率にすれば「美しく」見えるか悩んでいます。 また、 文字列として半角数字のみの場合も多いので、この場は別に 設定しようかと思います。 自分で色々試してみるまえに 汎用的な数値があれば、それを知りたく質問いたしました。 ご教授をお願いします。

  • excelのセルデータの文字種類によりデータをわける

    excelで1つのセルの中に 漢字、ひらがな、数字、英字、英記号などが入っています。 さてこのなかで漢字だけ、あるいはひらがなだけ、あるいは数字だけを表示したいとします。即ちデータを分離して表示したいとします。 どのようにすればいいのでしょうか。

  • インターネット接続ウィザードのコンピューターの設定で文字入力するとエラーになる

    「インターネット接続ウィーザード」の「コンピューターの設定」のところで、名前をどんな文字で入力しても「有効な名前ではありません」とエラーメッセージが出てしまいます。 半角英数字でも大文字でも全角でも数字でも漢字でもひらがなでもです。 一文字でも複数文字でも、アルファベットと数字を組み合わせても、数字だけでもアルファベットだけでも駄目です。 何がいけないのかわかりません。 再起動かけてやり直しても同じです。 OSはwindows2000proのsp4です。 ブラウザはIE6SP1です。 ちゃんとadministratorでログインしてやってます。 何がいけないのでしょうか。