Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6755 / 13644 ツリー ←次へ | 前へ→

【42970】セル内文字列を複数に分けて扱う ばっじぉ 06/9/28(木) 11:17 質問[未読]
【42972】Re:セル内文字列を複数に分けて扱う Jaka 06/9/28(木) 11:30 発言[未読]
【42973】Re:セル内文字列を複数に分けて扱う かみちゃん 06/9/28(木) 11:32 発言[未読]
【43170】Re:セル内文字列を複数に分けて扱う ばっじぉ 06/10/4(水) 15:49 お礼[未読]
【43342】Re:セル内文字列を複数に分けて扱う ばっじぉ 06/10/10(火) 16:47 質問[未読]
【43343】Re:セル内文字列を複数に分けて扱う Blue 06/10/10(火) 16:53 回答[未読]
【43344】Re:セル内文字列を複数に分けて扱う ばっじぉ 06/10/10(火) 17:02 お礼[未読]

【42970】セル内文字列を複数に分けて扱う
質問  ばっじぉ  - 06/9/28(木) 11:17 -

引用なし
パスワード
   いつもお世話になっております。ばっじぉです。

セル内の文字列を複数に分けて扱う事はできるのでしょうか?
例)
セルA1に「A B」と入力されている。(文字の間はブランク)
これを、「A」と「B」別々で扱いたい。
  補足…「A B C」など、2文字以上の場合もあり。


よい方法が浮かばず、困っております。
お時間ありましたら、どなたかご教授願います。

【42972】Re:セル内文字列を複数に分けて扱う
発言  Jaka  - 06/9/28(木) 11:30 -

引用なし
パスワード
   注)EXL2000以上

Dim tt As Variant, st as string
st = "A B C"
tt = Split(st, " ")
MsgBox tt(0)
MsgBox tt(1)
MsgBox tt(2)

【42973】Re:セル内文字列を複数に分けて扱う
発言  かみちゃん  - 06/9/28(木) 11:32 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>セル内の文字列を複数に分けて扱う事はできるのでしょうか?
>例)
>セルA1に「A B」と入力されている。(文字の間はブランク)
>これを、「A」と「B」別々で扱いたい。
>  補足…「A B C」など、2文字以上の場合もあり。

一般操作でできます。以下を参考にしてみてください。
http://www.kenzo30.com/ex_kisopoint/onepoint_hensyu7.htm

マクロでしたい場合は、これを「マクロの記録」で記録してみてください。

また、以下のようなコードでもできます。
Sub Test()
 Dim vntData As Variant
 
 vntData = Split(Range("A1").Value, " ")
 Range("A1").Resize(, UBound(vntData) + 1).Value = vntData
End Sub

【43170】Re:セル内文字列を複数に分けて扱う
お礼  ばっじぉ  - 06/10/4(水) 15:49 -

引用なし
パスワード
   ▼jaka さん、かみちゃん さん:
教えていただいた操作、
両方ともで解決できました!

ご教授ありがとうございました。

【43342】Re:セル内文字列を複数に分けて扱う
質問  ばっじぉ  - 06/10/10(火) 16:47 -

引用なし
パスワード
   すいませんが、再度質問させてください。

かみちゃん さんにお教え頂いたのは私がやりたい事とちょっと違って、
「変数内で別々に分けて扱いたい」
というのが希望でしたので、jaka さんにお教え頂いた方法を利用させて頂きました。
言葉足らずですいませんでした。


ここで新しい質問なんですが、
"Split関数で分割された数(配列の添字の最大数)"というのは調べられるものなのでしょうか?
補足で挙げさせていただいたのですが、

●セルA1内の文字数は「A B」の場合もあれば、「A B C」の場合もある

ので、配列の数が異なるとエラーになってしまうので…

方法を探ってはみたのですが、そのような方法が見つからず困っております。
よろしければ、どなたかご教授下さい。

【43343】Re:セル内文字列を複数に分けて扱う
回答  Blue  - 06/10/10(火) 16:53 -

引用なし
パスワード
   >"Split関数で分割された数(配列の添字の最大数)"というのは調べられるものなのでしょうか?
かみちゃんさんのレスにもありますが、配列の上限はUBound関数で取得できます。
(下限はLBound関数)

Dim tt() As String
Dim st As String
Dim i As Integer

st = "A B C"
tt = Split(st, " ")
For i = LBound(tt) To UBound(tt)
  MsgBox tt(i)
Next

【43344】Re:セル内文字列を複数に分けて扱う
お礼  ばっじぉ  - 06/10/10(火) 17:02 -

引用なし
パスワード
   ▼Blue さん:
早速のご回答ありがとうございます。
私の勉強不足ですね…かみちゃんさんのコードをもっとよく調べるべきでした。
かみちゃんさん、すいません(;_;)

ご教授ありがとうございました!

6755 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free