Excel VBA 質問スレッド №1934 (解決済)
文字列より数字以外を削除するマクロがうまく動かない。
投稿者 : syoshinsya 投稿日時 : 2024/06/17(Mon) 18:08:16 OS : 未指定 EXCEL : 未指定
タイトルのマクロを作成しましたが、「1」としか表示されません。
タイトルのマクロを作成しましたが、「1」としか表示されません。
Function numExtract(StringValue As String) As String Dim a As Integer Dim numText As String For a = 1 To Len(StringValue) numText = Mid(StringValue, a, 1) If numText Like "[0-9]" Then: numExtract = numExtract & numText Next a End Function Sub 抽出() Dim wb1 As Worksheet Set wb1 = ActiveWorkbook.Worksheets("sheet1") wb1.Cells(1, 1) = numExtract(wb1.Cells(1, 1)) End Sub
スポンサーリンク
[返信 1] Re : 文字列より数字以外を削除するマクロがうまく動かない。
投稿者 : さんこう 投稿日時 : 2024/06/17(Mon) 18:25:55
>文字列より数字以外を削除するマクロがうまく動かない。
>タイトルのマクロを作成しましたが、「1」としか表示されません。
「うまく動かない」マクロを作成したのでしょうから、希望通りではないのですか。
※どんな動作を期待しているのか不明ですが、それらしく動作するように思います。
>文字列より数字以外を削除するマクロがうまく動かない。
>タイトルのマクロを作成しましたが、「1」としか表示されません。
「うまく動かない」マクロを作成したのでしょうから、希望通りではないのですか。
※どんな動作を期待しているのか不明ですが、それらしく動作するように思います。
[返信 2] Re : 文字列より数字以外を削除するマクロがうまく動かない。
投稿者 : ピロリ 投稿日時 : 2024/06/17(Mon) 18:51:23
■[質問] syoshinsyaさん(2024-06-17 18:08:16)の記事
> タイトルのマクロを作成しましたが、「1」としか表示されません。
例えば、文字列「0a1b」を 文字列「01」と表示したいのに、数値の 1 になってしまうってこと? それなら、
wb1.Cells(1, 1) = numExtract(wb1.Cells(1, 1)) の前に、
wb1.Cells(1, 1).NumberFormatLocal = "@" で、セルの書式を文字列にすれば良いと思います。
ちなみに、下の「:」は必要ないのでは。
If numText Like "[0-9]" Then: numExtract = numExtract & numText
■[質問] syoshinsyaさん(2024-06-17 18:08:16)の記事
> タイトルのマクロを作成しましたが、「1」としか表示されません。
例えば、文字列「0a1b」を 文字列「01」と表示したいのに、数値の 1 になってしまうってこと? それなら、
wb1.Cells(1, 1) = numExtract(wb1.Cells(1, 1)) の前に、
wb1.Cells(1, 1).NumberFormatLocal = "@" で、セルの書式を文字列にすれば良いと思います。
ちなみに、下の「:」は必要ないのでは。
If numText Like "[0-9]" Then: numExtract = numExtract & numText
[返信 3] Re : 文字列より数字以外を削除するマクロがうまく動かない。
投稿者 : syoshinsya 投稿日時 : 2024/06/18(Tue) 22:35:47
アドバイス助かりました。
ありがとうございます。
■[返信 2] ピロリさん(2024-06-17 18:51:23)の記事
> ■[質問] syoshinsyaさん(2024-06-17 18:08:16)の記事
> > タイトルのマクロを作成しましたが、「1」としか表示されません。
> 例えば、文字列「0a1b」を 文字列「01」と表示したいのに、数値の 1 になってしまうってこと? それなら、
> wb1.Cells(1, 1) = numExtract(wb1.Cells(1, 1)) の前に、
> wb1.Cells(1, 1).NumberFormatLocal = "@" で、セルの書式を文字列にすれば良いと思います。
>
> ちなみに、下の「:」は必要ないのでは。
> If numText Like "[0-9]" Then: numExtract = numExtract & numText
>
アドバイス助かりました。
ありがとうございます。
■[返信 2] ピロリさん(2024-06-17 18:51:23)の記事
> ■[質問] syoshinsyaさん(2024-06-17 18:08:16)の記事
> > タイトルのマクロを作成しましたが、「1」としか表示されません。
> 例えば、文字列「0a1b」を 文字列「01」と表示したいのに、数値の 1 になってしまうってこと? それなら、
> wb1.Cells(1, 1) = numExtract(wb1.Cells(1, 1)) の前に、
> wb1.Cells(1, 1).NumberFormatLocal = "@" で、セルの書式を文字列にすれば良いと思います。
>
> ちなみに、下の「:」は必要ないのでは。
> If numText Like "[0-9]" Then: numExtract = numExtract & numText
>
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-02 16:11:01 )