Excel VBA質問箱 IV

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

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


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

【61480】改行された文字列の、指定行だけを取得 marimoooon 09/5/13(水) 8:41 質問[未読]
【61481】Re:改行された文字列の、指定行だけを取得 つん 09/5/13(水) 9:12 発言[未読]
【61508】Re:改行された文字列の、指定行だけを取得 marimoooon 09/5/14(木) 8:16 発言[未読]
【61511】蛇足ですが・・・ つん 09/5/14(木) 9:46 発言[未読]
【61536】Re:蛇足ですが・・・ marimoooon 09/5/15(金) 8:21 お礼[未読]
【61482】Re:改行された文字列の、指定行だけを取得 Abebobo 09/5/13(水) 9:24 発言[未読]
【61509】Re:改行された文字列の、指定行だけを取得 marimoooon 09/5/14(木) 8:26 お礼[未読]

【61480】改行された文字列の、指定行だけを取得
質問  marimoooon E-MAIL  - 09/5/13(水) 8:41 -

引用なし
パスワード
   はじめてこちらで質問させて頂きます。
宜しくお願いします。

セル内で改行された文字列の、3行目だけを取得する方法がわかりません。
セル内の行数、文字数はバラバラです。

セル内の行数を取得する方法、改行された文字列を1行ずつに分割する方法はみつける事が出来ました。それらを応用してなんとかできないかと思ったのですが、理解が及びませんでした。。。

どなたかご教授頂けませんでしょうか。
宜しくお願い致しますm(._.)m

【61481】Re:改行された文字列の、指定行だけを取得
発言  つん  - 09/5/13(水) 9:12 -

引用なし
パスワード
   ▼marimoooon さん
おはようございます^^

>セル内の行数を取得する方法、改行された文字列を1行ずつに分割する方法はみつける事が出来ました。

どうやって分割されたんですか?
そこまで出来たら、ほぼ出来たと言っていいような気がするんですが・・・

【61482】Re:改行された文字列の、指定行だけを取得
発言  Abebobo  - 09/5/13(水) 9:24 -

引用なし
パスワード
   私は、配列の勉強中です。
『習いながら、慣れろ!』で、配列を使ったサンプルです。

Sub 格闘中()
Dim Tr As Range
Dim v As Variant
Dim i As Long
Dim St As String

Set Tr = Selection    '調べたいセルを
v = Split(Tr.Value, vbLf) 'Splitで配列に格納
i = 0

For i = 0 To UBound(v)  '配列分繰り返し
 St = St & i + 1 & "行目は " & v(i) & vbLf
Next i
MsgBox St
End Sub

【61508】Re:改行された文字列の、指定行だけを取得
発言  marimoooon E-MAIL  - 09/5/14(木) 8:16 -

引用なし
パスワード
   つんさん、おはようございます。返信遅くなりましたm(._.)m
私も分割できたらもう大丈夫!と思ったんですが、コードが理解できず(泣)
分割方法は、下記コードです。


Sub 改行された文字列を1行ずつに分割()
   
  Dim A, B, C
  A = Split(Range("A1"), Chr(10))     '改行したいセル
  B = 0
  For Each C In A
  B = B + 1
  Range("B1").Offset(B - 1, 0).Value = C  '分割した文字列を表示させるセル
  Next

End Sub

【61509】Re:改行された文字列の、指定行だけを取得
お礼  marimoooon  - 09/5/14(木) 8:26 -

引用なし
パスワード
   Abeboboさん、おはようございます。
お蔭様で、問題解決しました! ありがとうございました♪
ちなみに私の望んでいたコードは、下記になります。


Sub 改行された文字列の指定行のみ取得()

  Dim Tr As Range
  Dim v As Variant
  Dim St As String
  
  Set Tr = Selection     '調べたいセルを
  v = Split(Tr.Value, vbLf)  'Splitで配列に格納
  St = v(1)           '[調べたい行数-1]の数字を入力。つまり、1行目なら0、2行目なら1
  MsgBox St

End Sub

【61511】蛇足ですが・・・
発言  つん  - 09/5/14(木) 9:46 -

引用なし
パスワード
   ▼marimoooon さん
おはようございます^^

私も、abeboboさんのやり方でしたらええかな・・と思ってましたが、

>Sub 改行された文字列を1行ずつに分割()
>   
>  Dim A, B, C
>  A = Split(Range("A1"), Chr(10))     '改行したいセル
>  B = 0
>  For Each C In A
>  B = B + 1
>  Range("B1").Offset(B - 1, 0).Value = C  '分割した文字列を表示させるセル
>  Next
>
>End Sub

これでするなら・・・

Sub 改行された文字列を1行ずつに分割()
  
  Dim A As Variant
  Dim B As Long
  Dim C As String
  
  A = Split(Range("A1"), Chr(10))
  
  For B = 0 To UBound(A)
    If B = 2 Then
    '3行目
      Range("B1").Value = A(B)
    End If
  Next B

End Sub

こんな感じかな?

【61536】Re:蛇足ですが・・・
お礼  marimoooon  - 09/5/15(金) 8:21 -

引用なし
パスワード
   つんさん、おはようございます。
私が最初に目指したコードがまさにこれです!
勉強になるご回答、ありがとうございましたm(._.)m

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