Excel VBA質問箱 IV

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

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


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

【40804】ラベルの文字について tk 06/7/24(月) 14:30 質問[未読]
【40820】Re:ラベルの文字について ichinose 06/7/24(月) 18:34 発言[未読]
【40852】Re:ラベルの文字について hori 06/7/25(火) 10:56 質問[未読]
【40854】Re:ラベルの文字について tk 06/7/25(火) 11:28 質問[未読]
【40873】Re:ラベルの文字について tk 06/7/25(火) 16:25 質問[未読]
【40893】Re:ラベルの文字について ichinose 06/7/25(火) 19:54 発言[未読]
【40896】Re:ラベルの文字について 追伸 ichinose 06/7/25(火) 20:21 発言[未読]
【40899】Re:ラベルの文字についての追伸2 ichinose 06/7/25(火) 21:44 発言[未読]
【40911】ラベルの文字について tk 06/7/26(水) 8:14 質問[未読]
【40908】Re:ラベルの文字について hori 06/7/26(水) 1:04 お礼[未読]
【40912】ラベルの文字について tk 06/7/26(水) 8:16 質問[未読]
【40927】Re:ラベルの文字について tk 06/7/26(水) 13:41 お礼[未読]

【40804】ラベルの文字について
質問  tk  - 06/7/24(月) 14:30 -

引用なし
パスワード
   ラベルの文字について質問させて頂きます。
フォームである作業を行い、ボタンをクリックしてシートへ更新をしているのですが、この時に、フォーム上にラベルを貼り付けとき、ラベルの中に『登録中・・・』という文字を左から右へスクロール(繰り返し)させ、登録作業が終わった時点で文字が消えるという事をやってみたいのですが、こんなことって可能な事なのでしょうか?
もし、できるのであれば、是非おしえていただきたいのですが。
よろしくお願い致します。

【40820】Re:ラベルの文字について
発言  ichinose  - 06/7/24(月) 18:34 -

引用なし
パスワード
   ▼tk さん:
こんにちは。再送です。
>ラベルの文字について質問させて頂きます。
>フォームである作業を行い、ボタンをクリックしてシートへ更新をしているのですが、この時に、フォーム上にラベルを貼り付けとき、ラベルの中に『登録中・・・』という文字を左から右へスクロール(繰り返し)させ、登録作業が終わった時点で文字が消えるという事をやってみたいのですが、こんなことって可能な事なのでしょうか?

左から右へスクロール(繰り返し)ではなく、右から左へではないですか?

例えば、ユーザーフォーム(Userform1)に
  Label1---------------ラベル 文字表示用
  Commandbutton1-------ボタン 文字表示開始ボタン
  Commandbutton2-------ボタン 文字表示中止ボタン

を配置してください。

標準モジュールに
'===========================================================
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private d_str As String
Private d_idx As Long
Private d_lbl As MSForms.Label
Private d_int As Long
Private d_len As Long
Private d_jdx As Long
'======================================================================
Sub disp_open(ByVal lbl As MSForms.Label, ByVal disp_str As String, Optional ByVal interval As Long = 100)
  Dim wk As Double
  Set d_lbl = lbl
  d_str = disp_str & String(Len(disp_str), " ")
  With d_lbl
    wk = .ForeColor
    .ForeColor = .BackColor
    .TextAlign = fmTextAlignRight
    .Caption = disp_str
    .Font.Name = "MS 明朝"
    .Font.Size = 24
    .AutoSize = True
    DoEvents
    .AutoSize = False
    .Caption = ""
    .ForeColor = wk
    .Height = 24
    End With
  d_idx = 1
  d_jdx = 1
  d_int = interval
  d_len = Len(disp_str)
End Sub
'===============================================================
Sub disp_proc()
  Dim mystr As String
  If d_jdx > d_len Then
    d_idx = 1
    d_lbl.Caption = ""
    d_jdx = 1
    End If
  If d_idx > d_len Then
    d_jdx = d_jdx + 1
    d_idx = d_len
    End If
  mystr = Mid(d_str, d_jdx, d_idx)
  d_lbl.Caption = mystr
  d_idx = d_idx + 1
  Sleep d_int
End Sub
'==================================================================
Sub disp_close()
  d_str = ""
  d_idx = 0
  d_lbl.Caption = ""
  Set d_lbl = Nothing
End Sub

'↑これを標準モジュールに置く是非の判断は難しいですが・・・。
'クラスモジュールに置くのも良いと思います。
別の標準モジュールに
'=====================================================
sub main()
  userform1.show
end sub


UserForm1のモジュールに

'======================================================
Private d_flg As Long
'======================================================
Private Sub CommandButton1_Click()
  Call disp_open(Label1, "処 理 中", 300)
  d_flg = 1
  Do While d_flg = 1
    '本来の処理コード
    Call disp_proc
    DoEvents
    Loop
 
  Call disp_close
  Label1.Caption = ""
End Sub
'========================================================
Private Sub CommandButton2_Click()
  d_flg = 0
End Sub


として、

mainを実行してみてください。
Userform1が表示されます。
Commandbutton1をクリックしてください。
「処 理 中」というメッセージが繰り返し流れます。

表示の中止は、Commandbutton2をクリックしてください。
(Userform1を閉じる前にストップさせてください)


尚、Label1は、メッセージが表示させるのに十分な幅を確保してください。

試してみてください

【40852】Re:ラベルの文字について
質問  hori  - 06/7/25(火) 10:56 -

引用なし
パスワード
   ▼ichinose さん:
横から失礼します
はじめましてhoriと申します。
今回のスレッドに興味をもち実行してみましたichinoseさんの
コードのまま実行すると動作しました。しかし
作業コードを記入したところ(印刷範囲設定)
コンパイルエラーloopに対するDoがありません
と出ました VBAは超初心者なので
対処の方法指導お願いします。
下記に書き込んだコードを記入します。
Private Sub CommandButton1_Click()
  Call disp_open(Label1, "処理中しばらくお待ちください", 200)
  d_flg = 1
  Do While d_flg = 1
    '本来の処理コード
  Range("A1:G95").Select
  Range("G95").Activate
  ActiveSheet.PageSetup.PrintArea = "$A$1:$G$95"
  With ActiveSheet.PageSetup
    .PrintTitleRows = "$1:$2"
  End With
  ActiveSheet.PageSetup.PrintArea = "$A$1:$G$95"
  With ActiveSheet.PageSetup
    .RightHeader = "&""MS P明朝,標準""&9P-&P"
    .CenterFooter = "&""MS P明朝,標準""&8株式会社"
    .PrintHeadings = False
    .PrintGridlines = False
    .PrintComments = xlPrintNoComments
    .PrintQuality = 600
    .CenterHorizontally = False
    .CenterVertically = False
    .Orientation = xlPortrait
    .Draft = False
    .PaperSize = xlPaperA4
    .FirstPageNumber = xlAutomatic
    .Order = xlDownThenOver
    .BlackAndWhite = False
    .PrintErrors = xlPrintErrorsDisplayed
    Call disp_proc
    DoEvents
    Loop

  Call disp_close
  Label1.Caption = ""
End Sub
上記A4版縦の印刷範囲のコードの設定です
ちなみにA3の印刷の必要もあるので下記にコードを書きます
出来ればコマンドボタンでA4とA3のふたつボタンを作成して
出来るように考えています。
それと作業の終了時CommandButton2を
クリックするのではなく
MsgBox等で終了しましたなどの表示を
出せるようにできませんか
A3横設定

Private Sub CommandButton2_Click()
'
' 内訳印刷A3横 Macro
'

'
  Range("A1:L95").Select
  Range("L95").Activate
  ActiveSheet.PageSetup.PrintArea = "$A$1:$L$95"
  With ActiveSheet.PageSetup
    .PrintTitleRows = "$1:$2"
  End With
  ActiveSheet.PageSetup.PrintArea = "$A$1:$L$95"
  With ActiveSheet.PageSetup
    .RightHeader = "&""MS P明朝,標準""&9P-&P"
    .CenterFooter = "&""MS P明朝,標準""&8株式会社"
    .PrintHeadings = False
    .PrintGridlines = False
    .PrintComments = xlPrintNoComments
    .PrintQuality = 600
    .CenterHorizontally = False
    .CenterVertically = False
    .Orientation = xlLandscape
    .Draft = False
    .PaperSize = xlPaperA3
    .FirstPageNumber = xlAutomatic
    .Order = xlDownThenOver
    .BlackAndWhite = False
    .PrintErrors = xlPrintErrorsDisplayed
  End With
  Application.Goto Reference:="R1C1"
  Hide
End Sub
以上です よろしくお願いします

【40854】Re:ラベルの文字について
質問  tk  - 06/7/25(火) 11:28 -

引用なし
パスワード
   おはようございます。昨日はありがとうございました。
さっそく試させていただきました。
希望通りの動作でした。
これを、今自分が行っている作業に組み込みたいのですがどうも上手くいきません。
内容としては、フォーム上で登録のボタンをクリックしたら下記のように、progressbarを表示させその後、ある作業(動作)を行い、終了後、メッセージボックスが表示されます。
progressbarは実際の動作に平行して動くものではなく、ただのもどきです。
このときに、教えていただいた内容をprogressbarと同時進行させ(文字のスクロール)、メッセージボックスが表示される前にスクロールの文字が消える、ということがしたいのですが、どこにどのように組み込めばよいのかわかりません。
いろいろ試したのですがどうも上手くいきません。
なにとぞお力をお貸し下さい。

ProgressBar1.Max = 18000
 For i = 1 To 18000
   ProgressBar1.Value = ProgressBar1.Value + 1
   Label110.Caption = Int(i * 1 / 180) & "%"
   Frame4.Repaint
 Next i
   ProgressBar1.Value = 0

     ・・・作業・・・・

 MsgBox Me.ComboBox1.Value & "月の更新が終了しました。"

 Frame4.Label110.Caption = ""

【40873】Re:ラベルの文字について
質問  tk  - 06/7/25(火) 16:25 -

引用なし
パスワード
   昨日は大変ありがとうございました。
>さっそく試させていただきました。
>希望通りの動作でした。
>これを、今自分が行っている作業に組み込みたいのですがどうも上手くいきません。
>内容としては、フォーム上で登録のボタンをクリックしたら下記のように、progressbarを表示させその後、ある作業(動作)を行い、終了後、メッセージボックスが表示されます。
>progressbarは実際の動作に平行して動くものではなく、ただのもどきです。
>このときに、教えていただいた内容をprogressbarと同時進行させ(文字のスクロール)、メッセージボックスが表示される前にスクロールの文字が消える、ということがしたいのですが、どこにどのように組み込めばよいのかわかりません。
>いろいろ試したのですがどうも上手くいきません。
>なにとぞお力をお貸し下さい。
>
> ProgressBar1.Max = 18000
> For i = 1 To 18000
>   ProgressBar1.Value = ProgressBar1.Value + 1
>   Label110.Caption = Int(i * 1 / 180) & "%"
>   Frame4.Repaint
> Next i
>   ProgressBar1.Value = 0
>
>     ・・・作業・・・・
>
> MsgBox Me.ComboBox1.Value & "月の更新が終了しました。"
>
> Frame4.Label110.Caption = ""

【40893】Re:ラベルの文字について
発言  ichinose  - 06/7/25(火) 19:54 -

引用なし
パスワード
   こんばんは。
お二人からのご質問ですが、
まず、もう一つ例を出します。

新規ブックにユーザーフォームを作成してください。


ユーザーフォーム----Userform1
    ラベル---------Label1
    ボタン---------Commandbutton1

標準モジュールには、

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=40820;id=excel

ここで記述した二つの標準モジュールをそのままコピーしてください。


Userform1のモジュールに

'===============================================================
Option Explicit

Private Sub CommandButton1_Click()
  Dim filepath As String
  Dim rw As Long
  Dim flnm As String
  Call disp_open(Label1, "処 理 中", 100)
'                      ↑ここの数字はお好みで      
  flnm = Dir("C:\Documents and Settings\ichinose\Favorites\*.*")
' ここは、それぞれファイルが沢山あるフォルダ名を指定してください
  Do Until flnm = ""
    Cells(rw + 1, 1).Value = flnm
    rw = rw + 1
    Call disp_proc
    DoEvents
    flnm = Dir()
    Loop
  Call disp_close
  
End Sub


として、mainを実行してみてください
上記のコードはユーザーフォームが表示されます。

ボタンをクリックすると、
指定されたフォルダ内にあるファイル名を
アクティブシートのA列に列挙します。

その処理中にユーザーフォームには
「処 理 中」というメッセージが流れます。

全てのファイル名の表示されるとメッセージが消えます。


というコードです。

このラベル上を動く「処 理 中」というメッセージですが、
教科書のページの隅に書いた漫画をペラペラして動いているように見せる、
子供ころ誰でもやりましたよね!!
あれと同じ原理でラベル上で動いているように見せています。


上記のコードの

  Do Until flnm = ""
    Cells(rw + 1, 1).Value = flnm
    rw = rw + 1
    Call disp_proc
    DoEvents
    flnm = Dir()
    Loop
このループ内(Do UntilとLoopの間)のコードは、1秒も満たない速さで
処理されます。
その都度、disp_procというプロシジャーが呼び出されて
「処 理 中」という文字をひとコマづつ移動させています。

つまり、このループの中で繰り返しdisp_procというプロシジャーを
呼び出すことで「処 理 中」という文字が動いているように見えるのです。

これがある程度のスピードで動いているように見えるためには、
ループ内のコードの処理速度がある程度高速でなくてはなりません。

ループ内のコードが1時間もかかっていては、一時間に1回しか
disp_procは呼び出されません。

これでは、文字が流れているようには見えませんよね?


以上を理解していただいて、再度、ご自分が抱えている
コードがこの文字が流れるコードに適しているのか
判断してみてください。

ちょっと見た限りですが、
horiさんのコードは、本来、ループ内で処理するコードではないですね!!
ページ設定は結構それぞれのプロパティ設定が時間がかかるので
間にいくつも

  Call disp_proc
  DoEvents
を挿入していくということです。

Private Sub CommandButton1_Click()
  Call disp_open(Label1, "処理中しばらくお待ちください", 200)
  Range("A1:G95").Select
  Call disp_proc
  DoEvents
  Range("G95").Activate
  Call disp_proc
  DoEvents
  ActiveSheet.PageSetup.PrintArea = "$A$1:$G$95"
  Call disp_proc
  DoEvents
  With ActiveSheet.PageSetup
    .PrintTitleRows = "$1:$2"
  End With
  Call disp_proc
  DoEvents
  ActiveSheet.PageSetup.PrintArea = "$A$1:$G$95"
  With ActiveSheet.PageSetup
    .RightHeader = "&""MS P明朝,標準""&9P-&P"
    Call disp_proc
     DoEvents
    .CenterFooter = "&""MS P明朝,標準""&8株式会社"
    Call disp_proc
     DoEvents

    .PrintHeadings = False
    .PrintGridlines = False
    .PrintComments = xlPrintNoComments
    .PrintQuality = 600
    .CenterHorizontally = False
    .CenterVertically = False
    .Orientation = xlPortrait
    .Draft = False
    .PaperSize = xlPaperA4
    .FirstPageNumber = xlAutomatic
    .Order = xlDownThenOver
    .BlackAndWhite = False
    .PrintErrors = xlPrintErrorsDisplayed
  end with
  Call disp_proc
  DoEvents
  Call disp_close
  Label1.Caption = ""
End Sub

試してみてください。
因みに
>コンパイルエラーloopに対するDoがありません

は対になっている構文が対になっていないからです。


tkの場合は、

ProgressBar1.Value = 0
 ・・・作業・・・・

この作業がどんなコードなのかわからないので何ともいえませんが、

今回提示した例も検証していただいて
ご自分のコードと照らし合わせてみてください。

【40896】Re:ラベルの文字について 追伸
発言  ichinose  - 06/7/25(火) 20:21 -

引用なし
パスワード
   このファイル名一覧表示を行うコードを
実行してお感じなるかと思いますが、

このメッセージを表示した場合と表示処理をしていないときと
比べると数段処理速度が落ちます。

今回、面白いご質問だったのでコードを投稿しましたが、
私は、多分、自分の業務では使いません・・・。
だって、ビジュアルのために本処理の速度が落ちてしまうなんて・・。

処理によっては、

Call disp_open(Label1, "処 理 中", 100)
この100という数字を10ぐらいにすれば、処理速度はアップしますが、
逆にメッセージの動きが速すぎてわからないなんていう
事がおきます。

処理速度を重視するなら、ビジュアル的なことは押さえる決断も
必要ですよ!!

【40899】Re:ラベルの文字についての追伸2
発言  ichinose  - 06/7/25(火) 21:44 -

引用なし
パスワード
   >
>tkの場合は、
>
>ProgressBar1.Value = 0
> ・・・作業・・・・
tkさん、大変失礼しました、敬称を付け忘れました。
本当にすみませんでした。

【40908】Re:ラベルの文字について
お礼  hori  - 06/7/26(水) 1:04 -

引用なし
パスワード
   ▼ichinose さん:
希望通りうまくいきました。
ありがとうございました。
処理速度の件ですがあまり気にならない程度です。
またなにかございましたらよろしくお願いします。
横から失礼いたしました。

【40911】ラベルの文字について
質問  tk  - 06/7/26(水) 8:14 -

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

おはようございます。昨日は詳しく説明までしていただきありがとうございます。
私は、初心者なので色々と皆さんにアドバイス等いただき、勉強しています。
皆さんからのアドバイス等をつなぎ合わせて、なんとかコード(下記)を作ってはみました。 
この、ボタン3をクリックした時に文字のスクロールができればと考えています。
クリックしたと同時にprogressbarが動き出し、作業が終了したら、msgboxが現れます。文字のスクロールをlabel111に現し、barと同時進行させ作業終了後、文字が消え、msgboxが現れれば、言う事なしなんですが、教えていただいたコードをどこの部分に組み込めばよいのか検討がつきません・・・。


Private Sub CommandButton3_Click()

Dim i As Long, Co As Long, Co1 As Long, Co2 As Long, Co3 As Long, Cou As Long
Dim Mys As String


Mys = Me.ComboBox1
On Error GoTo End_Len
   
   ProgressBar1.Max = 18000
 For i = 1 To 18000
   ProgressBar1.Value = ProgressBar1.Value + 1
   Label110.Caption = Int(i * 1 / 180) & "%"
   Frame4.Repaint
 Next i
   ProgressBar1.Value = 0
  

Worksheets(Mys).Select
For i = 5 To 191
  Select Case i
   Case 47, 90, 133, 176
      Me.Controls("textbox" & i).Value = Co
      Co = 0
   Case Else
      Co = Co + Val(Controls("textbox" & i).Value)
  End Select
Next i

Co = 0: Co1 = 0: Co2 = 0: Co3 = 0
With Me
   For i = 5 To 175
     If IsNumeric(.Controls("textbox" & i).Value) Then
      Select Case i
          Case 5 To 46
            Co = Co + 1
          Case 48 To 89
            Co1 = Co1 + 1
          Case 91 To 132
            Co2 = Co2 + 1
          Case 134 To 175
            Co3 = Co3 + 1
      End Select
     End If
   Next i
  
   .TextBox179.Value = Co
   .TextBox184.Value = Co1
   .TextBox189.Value = Co2
   .TextBox193.Value = Co3
  
   .TextBox178.Value = Format(CLng(TextBox47.Value) * 50, "##,##0")
   .TextBox183.Value = Format(CLng(TextBox90.Value) * 50, "##,##0")
   .TextBox188.Value = Format(CLng(TextBox133.Value) * 50, "##,##0")
   .TextBox192.Value = Format(CLng(TextBox176.Value) * 50, "##,##0")
   .TextBox180.Value = Format(CLng(Co) * 2000, "##,##0")
  .TextBox185.Value = Format(CLng(Co1) * 2000, "##,##0")
   .TextBox190.Value = Format(CLng(Co2) * 2000, "##,##0")
   .TextBox194.Value = Format(CLng(Co3) * 2000, "##,##0")

   .TextBox181.Value = Format(Val(Replace(TextBox178.Value, ",", "")) + Val(Replace(TextBox180.Value, ",", "")), "###,##0")
   .TextBox186.Value = Format(Val(Replace(TextBox183.Value, ",", "")) + Val(Replace(TextBox185.Value, ",", "")), "###,##0")
   .TextBox195.Value = Format(Val(Replace(TextBox188.Value, ",", "")) + Val(Replace(TextBox190.Value, ",", "")), "###,##0")
   .TextBox196.Value = Format(Val(Replace(TextBox192.Value, ",", "")) + Val(Replace(TextBox194.Value, ",", "")), "###,##0")
End With

For i = 43 To 84
  Worksheets(Mys).Cells(2, i - 39) = Me.Controls("label" & i).Caption
 Next i

      
With Worksheets(Mys)
   For i = 5 To 176
     Ch = True
     Select Case i
      Case 5 To 46
         Ro = 4: Co = 1
      Case 48 To 89
         Ro = 5: Co = 44
      Case 91 To 132
         Ro = 6: Co = 87
      Case 134 To 175
         Ro = 7: Co = 130
      Case 47, 90, 133, 176
         Ch = Flase
     End Select
     If Ch Then
       Cells(Ro, i - Co).Value = Me.Controls("TextBox" & i).Value
 
     End If
   Next i
End With


 MsgBox Me.ComboBox1.Value & "月の更新が終了しました。"

 Frame4.Label110.Caption = ""


On Error GoTo 0
Exit Sub
End_Len:
 MsgBox "月が選択されていません。", vbCritical


End Sub

【40912】ラベルの文字について
質問  tk  - 06/7/26(水) 8:16 -

引用なし
パスワード
   おはようございます。昨日は詳しく説明までしていただきありがとうございます。
私は、初心者なので色々と皆さんにアドバイス等いただき、勉強しています。
皆さんからのアドバイス等をつなぎ合わせて、なんとかコード(下記)を作ってはみました。 
この、ボタン3をクリックした時に文字のスクロールができればと考えています。
クリックしたと同時にprogressbarが動き出し、作業が終了したら、msgboxが現れます。文字のスクロールをlabel111に現し、barと同時進行させ作業終了後、文字が消え、msgboxが現れれば、言う事なしなんですが、教えていただいたコードをどこの部分に組み込めばよいのか検討がつきません・・・。


Private Sub CommandButton3_Click()

Dim i As Long, Co As Long, Co1 As Long, Co2 As Long, Co3 As Long, Cou As Long
Dim Mys As String


Mys = Me.ComboBox1
On Error GoTo End_Len
   
   ProgressBar1.Max = 18000
 For i = 1 To 18000
   ProgressBar1.Value = ProgressBar1.Value + 1
   Label110.Caption = Int(i * 1 / 180) & "%"
   Frame4.Repaint
 Next i
   ProgressBar1.Value = 0
  

Worksheets(Mys).Select
For i = 5 To 191
  Select Case i
   Case 47, 90, 133, 176
      Me.Controls("textbox" & i).Value = Co
      Co = 0
   Case Else
      Co = Co + Val(Controls("textbox" & i).Value)
  End Select
Next i

Co = 0: Co1 = 0: Co2 = 0: Co3 = 0
With Me
   For i = 5 To 175
     If IsNumeric(.Controls("textbox" & i).Value) Then
      Select Case i
          Case 5 To 46
            Co = Co + 1
          Case 48 To 89
            Co1 = Co1 + 1
          Case 91 To 132
            Co2 = Co2 + 1
          Case 134 To 175
            Co3 = Co3 + 1
      End Select
     End If
   Next i
  
   .TextBox179.Value = Co
   .TextBox184.Value = Co1
   .TextBox189.Value = Co2
   .TextBox193.Value = Co3
  
   .TextBox178.Value = Format(CLng(TextBox47.Value) * 50, "##,##0")
   .TextBox183.Value = Format(CLng(TextBox90.Value) * 50, "##,##0")
   .TextBox188.Value = Format(CLng(TextBox133.Value) * 50, "##,##0")
   .TextBox192.Value = Format(CLng(TextBox176.Value) * 50, "##,##0")
   .TextBox180.Value = Format(CLng(Co) * 2000, "##,##0")
  .TextBox185.Value = Format(CLng(Co1) * 2000, "##,##0")
   .TextBox190.Value = Format(CLng(Co2) * 2000, "##,##0")
   .TextBox194.Value = Format(CLng(Co3) * 2000, "##,##0")

   .TextBox181.Value = Format(Val(Replace(TextBox178.Value, ",", "")) + Val(Replace(TextBox180.Value, ",", "")), "###,##0")
   .TextBox186.Value = Format(Val(Replace(TextBox183.Value, ",", "")) + Val(Replace(TextBox185.Value, ",", "")), "###,##0")
   .TextBox195.Value = Format(Val(Replace(TextBox188.Value, ",", "")) + Val(Replace(TextBox190.Value, ",", "")), "###,##0")
   .TextBox196.Value = Format(Val(Replace(TextBox192.Value, ",", "")) + Val(Replace(TextBox194.Value, ",", "")), "###,##0")
End With

For i = 43 To 84
  Worksheets(Mys).Cells(2, i - 39) = Me.Controls("label" & i).Caption
 Next i

      
With Worksheets(Mys)
   For i = 5 To 176
     Ch = True
     Select Case i
      Case 5 To 46
         Ro = 4: Co = 1
      Case 48 To 89
         Ro = 5: Co = 44
      Case 91 To 132
         Ro = 6: Co = 87
      Case 134 To 175
         Ro = 7: Co = 130
      Case 47, 90, 133, 176
         Ch = Flase
     End Select
     If Ch Then
       Cells(Ro, i - Co).Value = Me.Controls("TextBox" & i).Value
 
     End If
   Next i
End With


 MsgBox Me.ComboBox1.Value & "月の更新が終了しました。"

 Frame4.Label110.Caption = ""


On Error GoTo 0
Exit Sub
End_Len:
 MsgBox "月が選択されていません。", vbCritical


End Sub

【40927】Re:ラベルの文字について
お礼  tk  - 06/7/26(水) 13:41 -

引用なし
パスワード
   何度も質問してすみませんでした。
自分でも色々いじってみた結果、納得のいくものができました。
大変ありがとうございました。

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