Excel VBA質問箱 IV

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

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


10110 / 13646 ツリー ←次へ | 前へ→

【23612】セル内の文字列の取得方法 あいんすと 05/3/30(水) 13:16 質問[未読]
【23615】Re:セル内の文字列の取得方法 Jaka 05/3/30(水) 13:45 回答[未読]
【23617】Re:セル内の文字列の取得方法 kobasan 05/3/30(水) 14:14 発言[未読]
【23620】Re:セル内の文字列の取得方法 kobasan 05/3/30(水) 16:26 発言[未読]
【23628】Re:セル内の文字列の取得方法 あいんすと 05/3/30(水) 23:48 お礼[未読]

【23612】セル内の文字列の取得方法
質問  あいんすと  - 05/3/30(水) 13:16 -

引用なし
パスワード
   立て続けにすいません。

セル無いにある[]の中にある文字列を取得したいのですが、
文字数がランダムであるため、Rightを使って出来ませんでした。
セルに入力されている文字列を隣のセルに入力する良い方法は
無いでしょうか?
但し、無い場合は"−"と表示したいです。

(変更前)
 |     A     |  B  |
-------------------------------------
1 |○○○○[×××]  |     |
2 |○○○[××]    |     |
3 |○○○○○[]    |     |


(変更後)
 |     A     |  B  |
-------------------------------------
1 |○○○○[×××]  | ××× |
2 |○○○[××]    | ××  |
3 |○○○○○[]    | −   |

【23615】Re:セル内の文字列の取得方法
回答  Jaka  - 05/3/30(水) 13:45 -

引用なし
パスワード
   こんにちは。

=IF(FIND("]",A2,1)-FIND("[",A2,1)=1,"-",MID(A2,FIND("[",A2,1)+1,FIND("]",A2,1)-FIND("[",A2,1)-1))

因みにエラー処理はいれてません。
"[" Or "]"が無いとエラーになります。

【23617】Re:セル内の文字列の取得方法
発言  kobasan  - 05/3/30(水) 14:14 -

引用なし
パスワード
   今日は
別解、VBAでやってみました。
Sub test()
Dim A As Variant, B As Variant
  For Each c In Range("A1", Range("A65536").End(xlUp))
    If c.Text <> "" Then
      A = Split(c.Text, "[")
      B = Split(c.Text, "]")
      If UBound(A) > 0 And UBound(B) > 0 Then
      If Len(A(0)) = Len(B(0)) - 1 Then
        c.Offset(0, 1).Value = "-"
      Else
        c.Offset(0, 1).Value = Right(B(0), Len(A(0)) - 1)
      End If
      End If
    End If
  Next
End Sub

【23620】Re:セル内の文字列の取得方法
発言  kobasan  - 05/3/30(水) 16:26 -

引用なし
パスワード
   ミスを訂正します

>    c.Offset(0, 1).Value = Right(B(0), Len(A(0)) - 1)
のところを
     c.Offset(0, 1).Value = Right(B(0), Len(B(0)) - Len(A(0)) - 1)
にして下さい。

【23628】Re:セル内の文字列の取得方法
お礼  あいんすと  - 05/3/30(水) 23:48 -

引用なし
パスワード
   ▼kobasan さん:
▼Jakaさん:

遅くなりましたが、
回答ありがとうございます。

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