Excel VBA質問箱 IV

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

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


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

【59715】テキストボックス(マルチライン)の内容をセルにコピー POP 09/1/3(土) 19:33 質問[未読]
【59716】Re:テキストボックス(マルチライン)の内... question 09/1/3(土) 20:52 回答[未読]
【59717】Re:テキストボックス(マルチライン)の内... りん 09/1/3(土) 22:24 回答[未読]
【59718】Re:テキストボックス(マルチライン)の内... POP 09/1/4(日) 3:36 お礼[未読]

【59715】テキストボックス(マルチライン)の内容...
質問  POP  - 09/1/3(土) 19:33 -

引用なし
パスワード
   シート上にあるマルチラインのテキストボックスの内容をセルにコピーする時、テキストボックスの1行目をA1セル、2行目をA2セル、3行目をA3セルというように行でセルをわけてコピーしています。
現在は改行と1行の文字数をもとに文字列を分割してセルに設定しているのですが
もっとかんたんに例えばテキストボックスの2行目だけをセルに貼り付けることなどできるんでしょうか?

手作業で行う場合はSelectionMarginプロパティをTRUEにしておけば2行目の左端をクリックすればその行だけ選択されそのままシートに貼り付けることができるので何か方法がありそうな気がするのですが・・・。

どなたかよろしくお願いします。

【59716】Re:テキストボックス(マルチライン)の...
回答  question  - 09/1/3(土) 20:52 -

引用なし
パスワード
   よくわかりませんが、
  Dim a
  a = Split(TextBox1.Text, vbCrLf)
  If UBound(a) > 0 Then
    Range("A1").value = a(1)
  End If
じゃだめなんですか?

【59717】Re:テキストボックス(マルチライン)の...
回答  りん  - 09/1/3(土) 22:24 -

引用なし
パスワード
   POP さん、こんばんわ。

>現在は改行と1行の文字数をもとに文字列を分割してセルに設定しているのですが
>もっとかんたんに例えばテキストボックスの2行目だけをセルに貼り付けることなどできるんでしょうか?

ボタンをクリックするとアクティブセルに2行目の文字列が入ります。

フォームにテキストボックスとコマンドボタンを配置して、以下のコードを記述します。

Private Sub CommandButton1_Click()
  '
  With TextBox1
   .SetFocus
   If .LineCount > 1 Then '複数行の時のみ
     .CurLine = 1 '2行目
     p1 = .SelStart
     '改行コードで折り返している場合に対応
     If Asc(Mid(.Value, p1 + 1, 1)) = 10 Then NN = 2 Else NN = 1
     '
     If .LineCount > 2 Then
      .CurLine = 2 '3行目
      p2 = .SelStart
     Else
      p2 = Len(.Value)
     End If
     Application.ActiveCell.Value = _
      Application.WorksheetFunction.Clean(Mid(.Value, p1 + NN, p2 - p1))
   End If
  End With
End Sub

こんな感じです。

※試してみたら総当りする必要がなかったので方法を変えました。

【59718】Re:テキストボックス(マルチライン)の...
お礼  POP  - 09/1/4(日) 3:36 -

引用なし
パスワード
   ▼りん さん questionsさん:
 
どうもありがとうございました。
おかげさまで上手くいきました。
今後ともよろしくお願いします。

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