VBAで区切り文字について

解決済みの質問

VBAで区切り文字について

セルに「○○○/△△△/×××_◇◇◇」もしくは「○○○/△△△/×××_◇◇◇」という形式でデータが入力されています。

ユーザが対象セルを選択して、ワークシート上のボタンをクリックすると、各変数に下記のようにVBAで値を代入させたいのですが、
どのようにしたらよろしいのでしょうか。
basyo1 = ○○○
basyo2 = △△△
basyo3 = ◇◇◇

ご教授下さい。

投稿日時 - 2009-04-09 21:05:26

連想キーワード:

QNo.4866477

困ってます

質問者が選んだベストアンサー

Sub try()
Dim v, w
Dim st1 As String, st2 As String

st1 = "○○○/△△△/×××_◇◇◇"
st2 = "○○○/△△△/×××_◇◇◇"

v = Split(Replace(Replace(Replace(st1, "_", " "), "_", " "), "/", " "))
w = Split(Replace(Replace(Replace(st2, "_", " "), "_", " "), "/", " "))

MsgBox st1 & vbLf & v(0) & vbLf & v(1) & vbLf & v(3)
MsgBox st2 & vbLf & w(0) & vbLf & w(1) & vbLf & w(3)

End Sub

basyo1 = v(0)
basyo2 = v(1)
basyo3 = v(2)

とか?

投稿日時 - 2009-04-09 21:15:44

ANo.1

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.3

こんな感じでしょうか。
_と_を/に置換し、SPLIT関数で「/」を区切り文字として分割しています。例はfunctionにしましたので、選択したセルを引数として渡してやってください。

Function fSample(rng As Range)
Dim basyo() As String
Dim sdata As String

sdata = Replace(Replace(rng.Text, "_", "/"), "_", "/")
basyo() = Split(sdata, "/")

basyo1 = basyo(0)
basyo2 = basyo(1)
basyo3 = basyo(3)

End Function

投稿日時 - 2009-04-10 15:53:54

ANo.2

セルA1に対象データが入力されており、
結果をセルB1,B2,B3に表示するものとして、マクロを書きます。
Dim A,B,C
Dim AA,BB

AA= Application.WorksheetFunction.Asc(A1)
BB=Replace(AA,"/","")
A=Len(AA)-Len(BB)
For B=1 To A
C=Instr(BB,"/")
Cells(B,2)=Left(AA,C-1)
AA=Right(AA,Len(AA)-C)
Next B
C=Instr(BB,"_")
CeLLS(A+1,2)=Right(AA,Len(AA)-C)

投稿日時 - 2009-04-10 09:33:11

あわせてチェックしたい
  • EXCEL2010 VBA 変数への代入 ...
  • エクセルVBA「コンボボックスの値をワークシートに代入」 ...
  • [Excel VBA] 行の値を1つの変数に代入したい ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら