No.4ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。> 漢字やひらがななども混在した400文字程度の文章が入っています。
この用途だと、関数では無理ですね。また、Excel の検索機能は正規表現が
使えませんので、必然的に VBA で処理することになります。
お試し下さい。
【 手順 】
1. Excel 画面で[ALT]+[F11] キー押す
--> Visual Basic Editor(以下 VBE )起動
2. VBE メニューで [挿入]-[標準モジュール]クリック
3. 2.で開いたホワイトスペースに下記のコードをコピー&ペースト
4. VBE 閉じる
5. Excel 画面に戻り、処理を施すセルを選択
6. [ALT]+[F8] で実行
'------- ↓以下コード ---------------
Option Explicit
Sub Sample()
'------------------------------------------------------------------
' @Description : 3文字以上連続する数字または英字を全角化
'------------------------------------------------------------------
If UCase$(TypeName(Selection)) <> "RANGE" Then Exit Sub
Dim RE As Object ' RegExp
Dim MC As Object ' MatchCollection
Dim M As Object ' Match
Dim rngTarget As Range
Dim C As Range
Dim strSource As String
Dim lngPos As Long
'ここで指定した内容が全角化されます
Const cnsPATTERN = "(\d{3,}|[a-zA-Z]{3,})"
Application.ScreenUpdating = False
Set RE = CreateObject("VBScript.RegExp")
With RE
.Pattern = cnsPATTERN
.IgnoreCase = False
.Global = True
End With
Set rngTarget = Intersect(Selection, ActiveSheet.UsedRange)
For Each C In rngTarget
If C.Value <> vbNullString And Not C.HasFormula Then
strSource = C.Text
Set MC = RE.Execute(strSource)
If Not MC Is Nothing Then
For Each M In MC
lngPos = InStr(strSource, M.Value)
Mid$(strSource, lngPos, Len(M.Value)) _
= StrConv(M.Value, vbWide)
Next M
Set MC = Nothing
C.Cells(1, 1).Value = strSource
End If
End If
Next C
Set rngTarget = Nothing
Set RE = Nothing
End Sub
No.5
- 回答日時:
●3桁以上の半角数字を全角にする。
アクティブセルの3桁以上の数字を全角にする
----------------------------------------------------------------
Public Sub num2zen()
'3文字以上の数字部分の全角文字への置換
Dim objRegExp, objMatches, objMatch
Dim str
str = ActiveCell.value
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Pattern = "(\d{3,})"
objRegExp.Global = True
Set objMatches = objRegExp.Execute(str)
For Each objMatch In objMatches
str = Replace(str, objMatch.value, StrConv(objMatch.value, vbWide), 1, 1)
Next
ActiveCell.value = str
End Sub
----------------------------------------------------------------
●3文字以上の半角英字を全角にする。
objRegExp.Pattern = "(\d{3,})"
を
objRegExp.Pattern = "([A-Za-z]{3,})"
に変更
No.3
- 回答日時:
私も昨日偶然初めて知ったのですが(恥?)
標準キーボードならスペースキーの横に
「変換」ってキーがありますよね。
選択しておいてこのキーをたたくだけです。
目的のものが選び放題です。
これでよかったのでしょうか?
No.2
- 回答日時:
書式で出来るのは数字だけですが
「セルの書式設定」「表示形式」を「ユーザー定義」で
「[>99][DBNUM3]0;[<-99][DBNUM3]0;0」
別セルで数式でいいなら
=IF(LEN(IF(ISNUMBER(A1),ABS(A1),A1))>2,JIS(A1),A1)
この回答への補足
説明不足であったようで申し訳ありません。
各セルには数字のみや英字のみが入っているのではなくて、
400文字程度の文章が入っています。
その文章中に含まれる英字と数字に対して、
処理をかけたいと思っております。
No.1
- 回答日時:
半角→全角変換はJIS関数で可能ですが
>●3桁以上の半角数字を全角にする。
>●3文字以上の半角英字を全角にする。
とはどういう意味でしょうか? 連続した場合に処理する? 全角半角混在の時はどうする? また2桁以下の場合はどうなるのでしょうか。
補足で事例を掲げていただければ回答できるかもしれません
この回答への補足
説明が足りなかったようで申し訳ありません。
B列の各セルには、英字のみや数字のみでなく、
漢字やひらがななども混在した400文字程度の文章が入っています。
その文章中に英字や数字などが複数含まれています。
半角数字と半角英字が連続して3文字以上続いた場合に、
その3文字以上の半角数字と半角英字を全角にしたいです。
連続した数字と英字は、全角半角が混在することはありません。
必ずどちらかに統一されています。
2桁以下の場合は、何も処理をしません。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
COBOL・全角判定
-
Accessでのグループ化で全角・...
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
Visual Studioで ユニコード "...
-
「 _ _ 」の正式名称を...
-
[VBScript]バイト長の判定
-
明細書の英数字の全角・半角に...
-
全角/半角キーをSendkeys関数で...
-
プログラミングでは、半角括弧...
-
エクセルの検索が正しくできな...
-
UWSC教えて
-
Excel関数またはVBAでの質問に...
-
COBOLでの全角文字の判定をした...
-
IEからEdgeへの移行に伴うIMEの...
-
エクセルにMicrosoft Barcode C...
-
差し込み印刷について教えてく...
-
.NET3.5におけるキーボードの「...
-
エクセルでの”々”の扱い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
全角英数字って全角の英字と全...
-
IEからEdgeへの移行に伴うIMEの...
-
全角英数字の必要性が理解できない
-
VBA 文字に半角が含まれて...
-
COBOL・全角判定
-
エクセルにMicrosoft Barcode C...
-
メモ帳の段落の揃え方
-
VBで、String型のデータが、...
-
プログラミングでは、半角括弧...
-
word差し込み印刷 半角カタカ...
-
ダブルコーテーションの置換
-
VB.net、テキストボックス入力...
-
封筒の宛先で縦書きの書き方
-
.NET3.5におけるキーボードの「...
-
コマンドプロンプト 全角を含ん...
-
char型全角数字から、int型半角...
-
C言語のコンパイルエラーなん...
-
いまスマホからカードの申込み...
おすすめ情報