例えば、
【nike-outlet国内正規品】abc1234 001 44サイズ T-shirt スプリング SV-1A cotton cloth コットン 生地
という文字列の場合、
「abc1234 001 44 SV-1A」を抽出したいです。
ネットで検索したところ、以下のような回答を見つけましたが、
最後の「=myf(A1)のように計算する。」の操作方法が分かりません。
=myf(A1)の操作方法、または新しい方法(マクロ)でも構いませんのでご教授願います。
---------------------------
手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
public function myf(a) as string
dim i as long
for i = 1 to len(a)
if mid(a,i,1) like "[0-9a-zA-Z ]" then
myf = myf & mid(a,i,1)
end if
next i
end function
ファイルメニューから終了してエクセルに戻る
任意のセルに元の言葉を記入し、
=myf(A1)
のように計算する。
-------------------------------------
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>=myf(A1)のように計算する。
」の操作方法が分かりません。単に、組み込み関数で例えば
=Len(A1)
とすると同じように、ユーザー定義関数も扱います。
=myf(A1)
ただし、そのユーザー定義関数ではうまくだせないだろうと思います。
かと言って、以下でもうまくいくとは限りません。
このピックアップの仕方は、区切れになる部分にすべてスペースを入れ、
その隙間で、Split関数で配列で、文字列と記号に分解し、数字が入っている単語・記号と、数字サイズが入ってたら、数字だけを取るように出来ています。
しかし、一つの例だけで、全体を処理できるのを作るのはマレだと思います。
もっと多くの例からみないと正確なものは作れません。
'// 標準モジュール
Function PickupWords(ByVal enter_text As Variant)
Dim arr
Dim buf As String, obuf As String
Dim i As Long
buf = Replace(enter_text, "】", "】" & Space(1))
buf = Replace(buf, Space(1), Space(1), , , vbTextCompare)
arr = Split(buf, Space(1))
For i = 0 To UBound(arr)
If arr(i) Like "*[0-90-9]*[ァ-ヶ]*" Then '数字とカタカナ
obuf = obuf & " " & Val(arr(i))
ElseIf arr(i) Like "*[0-9]*" Then
obuf = obuf & " " & arr(i)
End If
Next i
PickupWords = Mid(obuf, 2)
End Function
No.1
- 回答日時:
ご提示の例では、myf()というユーザー関数を作り、それをどのシートでも使えるようにしています。
なので、セルA1に以下の文字を入力
【nike-outlet国内正規品】abc1234 001 44サイズ T-shirt スプリング SV-1A cotton cloth コットン 生地
適当なセル(例えばB1)に=myf(A1)とすれば、B1セルに抽出した結果が表示されます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Sub 分けてソートして貼り付ける() Dim srcSheet As Worksheet Dim 6 2023/08/04 19:57
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヘッダー
-
エクセルの使い方 1日=7時間45...
-
エクセルで 足し算や割り算の...
-
エクセルで、時間の計算をした...
-
IF関数で、時間を条件にしたい...
-
エクセル・計算式をテキストデ...
-
数式の計算結果により表示され...
-
エクセルでの時間計算(2時間30...
-
計算結果が「0」のセルだけを「...
-
EXCELの関数に関する質問です
-
エクセルで数値を50単位で切...
-
TEXTCALCの使い方
-
エクセル 月数を0.5ヶ月単位で...
-
Excel(エクセル)でフィルター...
-
Excel 関数? 文字列に...
-
excel 参照しているセルに色が...
-
AかBに入力があった時Cに反映、...
-
エクセルで比率を計算
-
エクセル 1万時間を越える際の...
-
エクセルで足し算と掛算を混ぜ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヘッダー
-
エクセルの使い方 1日=7時間45...
-
IF関数で、時間を条件にしたい...
-
EXCELの関数に関する質問です
-
エクセルで 足し算や割り算の...
-
エクセルで、時間の計算をした...
-
計算結果が「0」のセルだけを「...
-
TEXTCALCの使い方
-
エクセルでの時間計算(2時間30...
-
エクセル・計算式をテキストデ...
-
数式の計算結果により表示され...
-
Excelの計算式内の文字列の一括...
-
エクセルの計算結果が0になって...
-
多項式の計算
-
AかBに入力があった時Cに反映、...
-
エクセル 1万時間を越える際の...
-
Excel 関数? 文字列に...
-
エクセル 月数を0.5ヶ月単位で...
-
エクセルで足し算と掛算を混ぜ...
-
エクセルで数値を50単位で切...
おすすめ情報