• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数を配列に格納する時に、二つの条件を指定すること)

VBAで変数を配列に格納する際の条件

このQ&Aのポイント
  • VBAで変数を配列に格納する際には、二つの条件を指定することができますか?
  • VBAで配列に格納する際、指定条件の例を教えてください。
  • VBAのSplit関数を使用して、指定条件に合わせた結果を得る方法について教えてください。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.4

Str = "a,i,u-e-o" tmp = Split(Replace(Str, "-", ","), ",") For i = LBound(tmp) To UBound(tmp) Debug.Print tmp(i) Next i

jkiju9
質問者

お礼

できました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

#1、cjです。 すみません、勘違いで書きすぎました。 #2さん、ご紹介の方法でいくつかありますね。 大変失礼いたしました。

jkiju9
質問者

お礼

いえいえ。とても参考になりました。

すると、全ての回答が全文表示されます。
  • golab
  • ベストアンサー率50% (1/2)
回答No.2

参考URLでSplitに正規表現を使用する方法が紹介されてますね。

参考URL:
http://okwave.jp/qa/q1405463.html
jkiju9
質問者

お礼

正規表現は難しいので勉強します。ありがとうございました。

すると、全ての回答が全文表示されます。
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 Sub Re7759904a()   Dim i As Long   Dim sStr As String   Dim tmp As Variant   sStr = "a,i,u-e-o" ' ' 区切り文字を(置換によって)統一後、配列に格納する   tmp = Split(Replace(sStr, "-", ","), ",")   For i = LBound(tmp) To UBound(tmp)     Debug.Print tmp(i)   Next i End Sub Split()関数のように非ループで実現するには、一旦置換するしかないですね。 > "a,i,u-e-o"を"a,i,u,e,o"にすることはできません。 という限定がどういう意味なのかはわかりませんけれど。 或いはループを考えるにしても、区切り文字を統一した方が結局は効率的です。 また、区切り文字は本来、その文字(記号)が、テキストの中で 区切り文字以外の意味で使われることがない という前提で成り立っていますから、 そういう意味では、既に使われている区切り文字に置換する、ということに 問題があるとは思えません。 もしかしたら、ここに書かれていない条件があるのでしょうか?

jkiju9
質問者

お礼

> "a,i,u-e-o"を"a,i,u,e,o"にすることはできません。 という限定がどういう意味なのかはわかりませんけれど。 なんか自分で読み返しても意味がわかりませんでした笑 すいませんでした。 置換しちゃえばいいんですね! うまく行きました。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A