Excel VBA質問箱 IV

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

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


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

【57765】シート名をユーザーフォームに記入 K 08/9/12(金) 15:31 質問[未読]
【57766】Re:シート名をユーザーフォームに記入 kanabun 08/9/12(金) 16:00 発言[未読]
【57768】Re:シート名をユーザーフォームに記入 K 08/9/12(金) 17:15 質問[未読]
【57769】Re:シート名をユーザーフォームに記入 kanabun 08/9/12(金) 19:17 発言[未読]
【57771】Re:シート名をユーザーフォームに記入 かみちゃん 08/9/12(金) 21:12 発言[未読]

【57765】シート名をユーザーフォームに記入
質問  K  - 08/9/12(金) 15:31 -

引用なし
パスワード
   ユーザーフォームに
Label1からLabel5を作成しました
シートが5枚あり
それぞれ左のシートから順番に
Labelの1から5それぞれに記入したいのですが
以下のような書き方では失敗してしまいました・・・

For i = 1 To 5
Label(i) = Worksheets(i).Name
Next i

【57766】Re:シート名をユーザーフォームに記入
発言  kanabun  - 08/9/12(金) 16:00 -

引用なし
パスワード
   ▼K さん:
おじゃまします。

>以下のような書き方では失敗してしまいました・・・
>
>For i = 1 To 5
>Label(i) = Worksheets(i).Name
>Next i

前のスレッドで教えてもらったことの応用で、
できないですか??

【57768】Re:シート名をユーザーフォームに記入
質問  K  - 08/9/12(金) 17:15 -

引用なし
パスワード
   すみません
質問の内容ですが
LB17 = LB17 + Worksheets(i).Cells(R, 2)
LB18 = LB18 + Worksheets(i).Cells(R, 3)
LB19 = LB19 + Worksheets(i).Cells(R, 4)
これをうまく纏める方法をお聞きしたかったです・・・

【57769】Re:シート名をユーザーフォームに記入
発言  kanabun  - 08/9/12(金) 19:17 -

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

> 質問の内容ですが
> LB17 = LB17 + Worksheets(i).Cells(R, 2)
> LB18 = LB18 + Worksheets(i).Cells(R, 3)
> LB19 = LB19 + Worksheets(i).Cells(R, 4)
> これをうまく纏める方法をお聞きしたかったです・・・

その「LB17」とか 「LB19」というのはラベルコントロール
に付けられた名前ですか?
すでに、そこから、説明がないと他人には分かりません。
もっともラベルであれば、
  LB17.Caption = "あいうえお"
とか、Captionプロパティがつくので、そこから推測もでき
るのですが?

仮に、

> LB17 = LB17 + Worksheets(i).Cells(R, 2)

を、「LB17」というラベルコントロールのCaptionを
現在のCaption に さらに Worksheets(i)のCells(R, 2)の
値(文字列)を追加する、ことだと勝手に解釈するなら、

> LB17 = LB17 + Worksheets(i).Cells(R, 2)
> LB18 = LB18 + Worksheets(i).Cells(R, 3)
> LB19 = LB19 + Worksheets(i).Cells(R, 4)



for i = 1 to 5
  for j = 2 to 4
   With Controls("LB" & (15 + j))
     .Caption = .Caption & _
      Worksheets(i).Cells(R, j).Value
   End With
  next
next

セルの値が数値で、ワークシートで串刺し計算をしたいと
いうことなら、

for i = 1 to 5
  for j = 2 to 4
   With Controls("LB" & (15 + j))
     .Caption = Val(.Caption) + _
      Worksheets(i).Cells(R, j).Value
   End With
  next
next

とかしなければならないでしょうし、
(コード以前に)もっと日本語による 説明が必要ではないでしょうか?

【57771】Re:シート名をユーザーフォームに記入
発言  かみちゃん  - 08/9/12(金) 21:12 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。
すでにkanabunさんから説明が出ていて、ほとんど同じコメントになるのですが、

>LB17 = LB17 + Worksheets(i).Cells(R, 2)
>LB18 = LB18 + Worksheets(i).Cells(R, 3)
>LB19 = LB19 + Worksheets(i).Cells(R, 4)
>これをうまく纏める方法

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=57758;id=excel
でコメントさせていただいたものとほぼ同じことです。

なお、LB17などは、Labelコントロールであるものとしています。

 Dim i As Integer
 Dim j As Integer

 i = 1
 For j = 17 To 19
  Me.Controls("LB" & j).Caption = _
   Me.Controls("LB" & j).Caption + Worksheets(i).Cells(R, j - 15).Value
 Next

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