No.3ベストアンサー
- 回答日時:
VBAのほうで解決させてよいのかな?
関数ですと、一回目は出来るような気がします、おそらく、次に出てくる数字は出来ませんね。(以下のような文字列)
>数字はすでに打ち込まれており、全て半角で、仮名も交じった文章です。
(事情により半角カタカナはいれませんが)
ABCDE12345FGHIJK123456LMNOP
処理後:
ABCDE12345FGHIJK123456LMNOP (サイト上では見分けが付きませんが)
という場合に、12345 で、5 を全角にする、123456 は、6 を全角にするという解釈ですか。
以下は、単独のユーザー定義関数だけでも、変換が可能です。
ふつうの関数と同じように、 = ConvertLetter(A1)
で変換されます。
VBEditor を開き、挿入--標準モジュール で、以下のプログラム・ソースを貼り付けてください。
'//
Sub MyTest1()
Dim c As Variant
For Each c In Selection
If c Like "*##*" Then
c.Offset(, 1).Value = ConvertLetter(c.Value)
c.Offset(, 1).Value = c.Offset(, 1).Value '値貼り付け
End If
Next
End Sub
Function ConvertLetter(ByVal strTxt As String) As String
'ユーザー定義関数
Dim Matches As Object
Dim Match As Object
Dim buf As String, rep As String
With CreateObject("VBScript.RegExp")
.Pattern = "\d+"
.Global = True
buf = strTxt
Set Matches = .Execute(buf)
For Each Match In Matches
rep = Left(Match, Len(Match) - 1) & StrConv(Right(Match, 1), vbWide)
buf = Replace(buf, Match, rep, 1, 1)
Next
End With
ConvertLetter = buf
End Function
No.2
- 回答日時:
チェックする文字列を全部とってくる(1行分でも全部でも)
チェックする文字列を左から1文字ずつ切り取り
IF 切り取った文字が数字である then
隣の文字を切り取る
IF 隣の文字が数字でない Then
先に切り取った文字を全角してAに入れる
AにA+隣の文字を入れる
Else '隣の文字が数字である または 空白
AにA+隣の文字を入れる
End IF
Else
AにA+切り取った文字を入れる
End IF
最初にとってきた文字列がなくなったら
完成したAを返してあげる。
みたいにすれば、できると思う。
数字の連続をどうやって判定するか問題かな
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(Microsoft Office) 英数字のみ全角から半角に変換 4 2023/07/28 14:48
- Excel(エクセル) Excel 365 フリーズ 頻発 エクセルのセルの中に日本語の文章を全角半角和文英文数字を混ぜて入 3 2022/12/12 15:09
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) Excelの複数置換はSUBSTITUTEを重ねるしかない? 9 2022/05/08 11:25
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの漢字、カタカナ、...
-
XMLのタグ名の禁則文字
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
2つ以上の連続する空白文字を除去
-
文字の入力で横バー上段、中断...
-
VBAのコマンドボタンの文字列の...
-
文字化け変換方法
-
ソースコードの1行が長いとき...
-
MacOSXのgccのprintfで改行が出...
-
PHPによるIPアドレスマッチ
-
デザインとテキストを分離しま...
-
(から)までの文字列を削除したい
-
VBA ASC関数で変換できない文...
-
fputsで改行できない
-
VB6 TextBoxの先頭が自動改行...
-
テキストボックスに改行を含む...
-
fscanf関数について
-
FORTRAN95の改行について
-
C#の改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
半角記号、全角記号を含む正規...
-
エクセルのCOUNTIFが正しくカウ...
-
XMLのタグ名の禁則文字
-
文字列中の両丸括弧を取り除くV...
-
VBScriptである文字列に半角文...
-
全角英数文字が嫌われる理由を...
-
記号は半角と全角どちらがよい...
-
Excel2002 一桁数字だけ全角に置換
-
エクセルでの漢字、カタカナ、...
-
特定の文字を簡単な操作で半角...
-
Replace関数は文字数の制限ある...
-
VBAで英数字入力チェックしたい。
-
IT企業の技術屋にとって全角英...
-
2つ以上の連続する空白文字を除去
-
全角半角変換 C++/CLI
-
Accessの文字数を調べたい
おすすめ情報