Excel VBA質問箱 IV

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

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


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

【27433】ラベル上でデータを複数行表示する 中川 05/8/9(火) 11:29 質問[未読]
【27434】Re:ラベル上でデータを複数行表示する Jaka 05/8/9(火) 11:42 回答[未読]
【27435】Re:ラベル上でデータを複数行表示する りん 05/8/9(火) 11:43 回答[未読]
【27443】Re:ラベル上でデータを複数行表示する 中川 05/8/9(火) 15:16 お礼[未読]

【27433】ラベル上でデータを複数行表示する
質問  中川  - 05/8/9(火) 11:29 -

引用なし
パスワード
   ユーザーフォーム上のラベルへ複数項目を表示するため、「format」で指定することで、うまく並べることができました。だが、改行して次のデータを表示することができず困っております。

Private Sub UserForm_Initialize()
  Workbooks.Open Filename:="D:\genryou-f.csv"
  Windows("処理1.xls").Activate
  Worksheets("sheet1").Select
  Open "D:\genryou-f.csv" For Input As #1
  i = 1
  Do While Not EOF(1)
    For j = 1 To 4
      Input #1, genryou(i, j)
    Next j
    i = i + 1
  Loop
  Close #1
  m = 0
  For k = 1 To 5
    Label1.Caption = Format(genryou(k + m, 1), "000") & "  " & _
              Format(genryou(k + m, 2), "&&&&&&&&&&") & "  " & _
              Format(genryou(k + m, 3), "#,##0") & "  " & _
              Format(genryou(k + m, 4), "#,##0") & _
              Chr(13) & Chr(10)
  Next k
End Sub

【27434】Re:ラベル上でデータを複数行表示する
回答  Jaka  - 05/8/9(火) 11:42 -

引用なし
パスワード
   こんにちは。
内容は良く見てませんが
>  For k = 1 To 5
>    Label1.Caption = Format(genryou(k + m, 1), "000") & "  " & _
>              Format(genryou(k + m, 2), "&&&&&&&&&&") & "  " & _
>              Format(genryou(k + m, 3), "#,##0") & "  " & _
>              Format(genryou(k + m, 4), "#,##0") & _
>              Chr(13) & Chr(10)
>  Next k
これだと、Label1.Captionの内容が変数の変化に応じて表示されているだけですよね。
どんどん継ぎ足していきたいんだったら、Label1.Captionの内容の後に継ぎ足さないとダメなんじゃないですか。
こんな風に
    Label1.Caption = Label1.Caption & Format(genryou(k + m, 1), "000") & "  " & _

処理終了後に最後の改行をどうしておくのかわからないけど....。

【27435】Re:ラベル上でデータを複数行表示する
回答  りん E-MAIL  - 05/8/9(火) 11:43 -

引用なし
パスワード
   ▼中川 さん:
>ユーザーフォーム上のラベルへ複数項目を表示するため、「format」で指定することで、うまく並べることができました。だが、改行して次のデータを表示することができず困っております。
>
>Private Sub UserForm_Initialize()
>  Workbooks.Open Filename:="D:\genryou-f.csv"
>  Windows("処理1.xls").Activate
>  Worksheets("sheet1").Select
>  Open "D:\genryou-f.csv" For Input As #1
>  i = 1
>  Do While Not EOF(1)
>    For j = 1 To 4
>      Input #1, genryou(i, j)
>    Next j
>    i = i + 1
>  Loop
>  Close #1
>  m = 0
>  For k = 1 To 5
ここが、文字列を追加するのではなく、上書きになっているので、最終的にk=5の結果が表示されます。
>    Label1.Caption = Format(genryou(k + m, 1), "000") & "  " & _
>              Format(genryou(k + m, 2), "&&&&&&&&&&") & "  " & _
>              Format(genryou(k + m, 3), "#,##0") & "  " & _
>              Format(genryou(k + m, 4), "#,##0") & _
>              Chr(13) & Chr(10)
>  Next k
>End Sub

  For k = 1 To 5
   If k > 1 Then lbc = lbc & Chr(13) & Chr(10) '改行
   lbc = lbc & _
      Format(genryou(k + m, 1), "000") & "  " & _
      Format(genryou(k + m, 2), "&&&&&&&&&&") & "  " & _
      Format(genryou(k + m, 3), "#,##0") & "  " & _
      Format(genryou(k + m, 4), "#,##0")
  Next k
  '
  Label1.Caption = lbc

または、
  With Label1
   For k = 1 To 5
     If k = 1 Then .Caption = "" Else .Caption = .Caption & Chr(13) & Chr(10) '改行
     .Caption = .Caption & _
        Format(genryou(k + m, 1), "000") & "  " & _
        Format(genryou(k + m, 2), "&&&&&&&&&&") & "  " & _
        Format(genryou(k + m, 3), "#,##0") & "  " & _
        Format(genryou(k + m, 4), "#,##0")
   Next k
  End With

こんな感じです。
LabelラベルのCaptionは最初からLabel1とかが入っている可能性があったので、1回目にクリアしています。
5回目の後の改行がいらないようなので、最初にもってきました。必要なら後ろにつけてください。

【27443】Re:ラベル上でデータを複数行表示する
お礼  中川  - 05/8/9(火) 15:16 -

引用なし
パスワード
   Jakaさんと、りんさん
早速お答えいただきありがとうございました。
3・4日かかっていろいろと書物をあたったりしていましたが、どうしてもわからず質問しました。
今、修正したところ、うまく動きました。
ありがとうございました。

お礼の投稿を新規投稿で行いましたので、再度投稿しました。

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