Excel VBA質問箱 IV

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

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


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

【24744】User Formを開放しても削除できません hinerikomi 05/5/7(土) 6:36 質問[未読]
【24745】Re:User Formを開放しても削除できません おさる 05/5/7(土) 8:31 回答[未読]
【24747】>Re:User Formを開放しても削除できませ... hinerikomi 05/5/7(土) 10:13 お礼[未読]
【24746】Re:User Formを開放しても削除できません ponpon 05/5/7(土) 8:44 回答[未読]
【24748】>Re:User Formを開放しても削除できません hinerikomi 05/5/7(土) 10:14 お礼[未読]
【24756】Re:User Formを開放しても削除できません ganko 05/5/8(日) 17:03 発言[未読]
【24762】Re:User Formを開放しても削除できません ponpon 05/5/8(日) 22:43 回答[未読]
【24774】Re:User Formを開放しても削除できません ganko 05/5/9(月) 19:35 お礼[未読]

【24744】User Formを開放しても削除できません
質問  hinerikomi  - 05/5/7(土) 6:36 -

引用なし
パスワード
   Excel2000です。
参考書に載っていた次のようなコードを実行してみました。

Private Sub UserForm_Initialize()
 Label3.BackColor = &H8000000F
End Sub


Private Sub CommandButton1_Click()
 Dim myStep As Single
 Dim i = ASLong,j As Long
 
 With Label3
 
 mtStep = .Width / 100
  .Width 0
  .BackColor = &HFF0000
  Label1.Caption = "実行中です…"
  

 Randomize
 
 For i = 1 To 100
 For j = 1 To 10
 
  With ActiveSheet.Cells(i,j)
   .Interior.ColorIndex = Int(56 * Rnd + 1)
   .Value = .Interior.ColorIndex
  End With
 Next j

   .Width = .Width + myStep
   Label4.Caption = i & "%"
 DoEvents
 
 Nexti

 Label1.Caption = "処理が終了しました"

 End With

 End Sub
というコードです。
コード自体は問題なく実行できました。
実行後、このユーザーフォームを開放しました。
しかし、Excelを開いてみると100行10列(1000個のセル)に、
ランダムに色付けされたセルの色が消えていません。
どのようにすれば、セルの色を消すことができるのでしょうか。
教えてください。

【24745】Re:User Formを開放しても削除できません
回答  おさる  - 05/5/7(土) 8:31 -

引用なし
パスワード
   こういうかんじでしょうか?

Sub Macro1()
  With ActiveSheet.Cells.Font
    .ColorIndex = xlAutomatic
  End With
End Sub

なお、ユーザーフォームを開放したらマクロ
実行前の状態に戻るわけではありません。

【24746】Re:User Formを開放しても削除できません
回答  ponpon  - 05/5/7(土) 8:44 -

引用なし
パスワード
   おはようございます。

そのシートを削除したらいけないのですか?
解決策

1,そのシートを削除する。

2,色の付いたセルを選択し、そのセルの色を消す。

3,ファイルそのものを削除する。



と、いろいろとあると思います。
マクロでするなら(必要ないと思いますが)
提示されているコードを利用して

Sub test()
For i = 1 To 100
 For j = 1 To 10

  With ActiveSheet.Cells(i, j)
   .Interior.ColorIndex = xlNone
   .Value = ""
  End With
 Next j
Next i
End Sub

【24747】>Re:User Formを開放しても削除できま...
お礼  hinerikomi  - 05/5/7(土) 10:13 -

引用なし
パスワード
   おさる さん こんにちは。

>Sub Macro1()
>  With ActiveSheet.Cells.Font
>    .ColorIndex = xlAutomatic
>  End With
>End Sub
>
>なお、ユーザーフォームを開放したらマクロ
>実行前の状態に戻るわけではありません。

回答をありがとうございます。

【24748】>Re:User Formを開放しても削除できませ...
お礼  hinerikomi  - 05/5/7(土) 10:14 -

引用なし
パスワード
   ponpon さん、こんにちは。

>1,そのシートを削除する。
>
>2,色の付いたセルを選択し、そのセルの色を消す。
>
>3,ファイルそのものを削除する。

>と、いろいろとあると思います。
>マクロでするなら(必要ないと思いますが)
>提示されているコードを利用して
>
>Sub test()
>For i = 1 To 100
> For j = 1 To 10
>
>  With ActiveSheet.Cells(i, j)
>   .Interior.ColorIndex = xlNone
>   .Value = ""
>  End With
> Next j
>Next i
>End Sub

回答に感謝いたします。

【24756】Re:User Formを開放しても削除できません
発言  ganko  - 05/5/8(日) 17:03 -

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

Sub Macro1()

  With Cells(1, 1).CurrentRegion
   .Interior.ColorIndex = xlNone And .ClearContents
  End With 
    
End Sub

は、如何?ですか・・・

お聞きしたいのですが…ここでのLabel3はどのような
役割をしているのでしょか?
意味が分からないのですが、ご存知の方、教えてください。

>Private Sub UserForm_Initialize()
> Label3.BackColor = &H8000000F
>End Sub
>
>
>Private Sub CommandButton1_Click()
> Dim myStep As Single
> Dim i As Long,j As Long
> 
> With Label3
> 
> mtStep = .Width / 100
>  .Width 0
>  .BackColor = &HFF0000
>  Label1.Caption = "実行中です…"
>  
>
> Randomize
> 
> For i = 1 To 100
> For j = 1 To 10
> 
>  With ActiveSheet.Cells(i,j)
>   .Interior.ColorIndex = Int(56 * Rnd + 1)
>   .Value = .Interior.ColorIndex
>  End With
> Next j
>
>   .Width = .Width + myStep
>   Label4.Caption = i & "%"
> DoEvents
> 
> Nexti
>
> Label1.Caption = "処理が終了しました"
>
> End With
>
> End Sub

【24762】Re:User Formを開放しても削除できません
回答  ponpon  - 05/5/8(日) 22:43 -

引用なし
パスワード
   こんばんは。
プログレスバー(?)の働きをさせているのだと思います。
コードは、いろいろ間違いがあるようですが、
私が試してみたところ
ユーザーフォーム1に ラベル1 ラベル3(ちょっと長め) コマンドボタン1を
貼り付け
以下コードを実行

'Private Sub UserForm_Initialize()
' Label3.BackColor = &H8000000F
' Label1.Caption = ""
'End Sub


Private Sub CommandButton1_Click()
 Dim myStep As Single
 Dim i As Long, j As Long

 With Label3

 myStep = .Width / 100
  .Width = 0
  .BackColor = vbRed
  Label1.Caption = "実行中です…"
 

 Randomize

 For i = 1 To 100
 For j = 1 To 10

  With ActiveSheet.Cells(i, j)
   .Interior.ColorIndex = Int(56 * Rnd + 1)
   .Value = .Interior.ColorIndex
  End With
 Next j

   .Width = .Width + myStep
   .Caption = i & "%"
 DoEvents

 Next i

 Label1.Caption = "処理が終了しました"

 End With

 End Sub

参考に角田さんの
http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTopic.htm#J5

【24774】Re:User Formを開放しても削除できません
お礼  ganko  - 05/5/9(月) 19:35 -

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

早速分かりやすい回答ありがとうございました。
コードの訂正までしていただき、非常に良く分かりました。
プログレスバーに関しても、意味が分かりました

今後ともよろしくお願いします。

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