Excel VBA質問箱 IV

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

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


58449 / 76732 ←次へ | 前へ→

【23011】Re:ichinoseさんご回答有難うございます。
発言  ichinose  - 05/3/9(水) 21:25 -

引用なし
パスワード
   ▼仔牛 さん:
> ご回答有難うございます。
>概観のイメージは、まさにこの状態なのですが、テキストボックスのチェンジに対応させて、その変更がすぐに反映されるようにするには、どのようにすればいいのでしょうか?

メンバ数が少ないならば、前回のコードをちょっと訂正・追加して

Private rng As Range
Private evflg As Boolean
'==============================================
Private Sub UserForm_Initialize()
  Set rng = mk_sample_data
  evflg = False
  With TextBox1
   .ScrollBars = fmScrollBarsVertical
   .MultiLine = True
   .Text = rng.Cells(1)
   For idx = 2 To rng.Count
    .Text = .Text & vbCrLf & rng.Cells(idx)
    Next
   .SelStart = 0
   End With
  evflg = True
End Sub
'=====================================================
Private Sub TextBox1_Change()
  If evflg = True Then
   With TextBox1
    rng.Value = Application.Transpose(Split(.Text, vbCrLf))
    End With
   End If
End Sub
'=================================================================
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'新しい改行を禁止する
  If Shift = 1 And KeyCode = 13 Then KeyCode = 0
End Sub
'===========================================
Function mk_sample_data() As Range
  Dim data As Variant
  data = Array("a", "b", "c", "d", "e", "f", "g", "h")
  For idx = LBound(data) To UBound(data)
   Cells(idx + 1, 1).Value = String(5, data(idx))
   Next
  Set mk_sample_data = Range(Cells(LBound(data) + 1, 1), Cells(UBound(data) + 1, 1))
End Function

こんな方法で可能ですが、コマンドボタンのクリックでセルに反映の方が
よいのかもしれませんよ!!

> また、サンプルとして入力された文字列をあらかじめ入力し(対象となる範囲を作成して)、事前設定をすませておいた場合だと、どのような形にすればよろしいのでしょうか。
テキストボックスの内容の事前設定は止めたほうが良いと思いますよ!!
指定セル範囲が決まっているなら(例えば、A1からA20)

'=======================================================
Private Sub UserForm_Initialize()
  Set rng = range("a1:a20") 'ここで設定して下さい
  evflg = False
  With TextBox1
   .ScrollBars = fmScrollBarsVertical
   .MultiLine = True
   .Text = rng.Cells(1)
   For idx = 2 To rng.Count
    .Text = .Text & vbCrLf & rng.Cells(idx)
    Next
   .SelStart = 0
   End With
  evflg = True
End Sub

3 hits

【23003】テキストの各行に別々のセルを対応させる 仔牛 05/3/9(水) 19:29 質問
【23006】Re:テキストの各行に別々のセルを対応させる G-Luck 05/3/9(水) 19:44 発言
【23009】Re:テキストの各行に別々のセルを対応させる 仔牛 05/3/9(水) 19:52 質問
【23008】Re:テキストの各行に別々のセルを対応させる ichinose 05/3/9(水) 19:52 発言
【23010】ichinoseさんご回答有難うございます。 仔牛 05/3/9(水) 20:31 質問
【23011】Re:ichinoseさんご回答有難うございます。 ichinose 05/3/9(水) 21:25 発言
【23014】有難うございました。 仔牛 05/3/9(水) 21:44 お礼

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