マクロ作成でセルに色を3色順次に変わるようにしたいのですが、
セル色の変更時間が早く、最後の色のみの表示になります。
コマンドボタンをクリックすると、アクティブセル(B3からF3)までのセル色が黄色・薄青・赤に5秒間隔で変色し、その後、下のセルに移動します。
再度、コマンドボタンをクリックすると、先ほどの上のセルの色が消え、アクティブセルに黄色・薄青・赤に5秒間隔で変更するVBAをお教えください。マクロで作成したVBを表示しておきます。
{timer}を使用するみたいですが、理解出来ませんので、宜しくお願いします。
罫線も引いてあります。
ActiveCell.Range("A1:E1").Select
With Selection.Interior
Timer = 4
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Interior.ColorIndex = xlNone
With Selection.Interior
.ColorIndex = 7
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
ActiveCell.Offset(1, 0).Range("A1:E1").Select
End Sub
No.3ベストアンサー
- 回答日時:
こんなのエクセルVBAの使い方(エクセルの使い方)としては懲りすぎだ。
エクセルの操作や設定では出来ないことでしょう。そこまで高度に、珍奇にやりたいなら、本来は自分で勉強して、他人の回答に頼らず、やべき範囲の課題と思う。ーー
質問の意味が1部良くわからない。例えばB-Fの5列を問題にしていてなぜ3色とか。勝手に当方で解釈した下記やってみた。
そういうことから質問者のニーズと外れている恐れもある。
参考になるところがあれば使って。自分の浅才のため、PUBLIC変数を使うところなど気に食わないが。
(1)Sheet1に(Formを介さず)コマンドボタン(コントロールツールボックスの方)を1つ貼り付ける。
(2)コマンドボタンのクリックイベントに下記を貼り付ける。
時刻の制御用。
Private Sub CommandButton1_Click()
t = 0
r = ActiveCell.Row
Range(Cells(r - 1, "B"), Cells(r - 1, "F")).Interior.ColorIndex = xlNone
指定時刻 = Now()
For i = 1 To 5
指定時刻 = 指定時刻 + TimeValue("0時00分05秒") '5秒後
待ち時間 = TimeValue("0時00分05秒")
Application.OnTime TimeValue(指定時刻), "test01", TimeValue(待ち時間)
Next i
End Sub
ーー
標準モジュールに
(3)パブリック変数
Public t
Public r
(4)実行モジュールに
定時に実行する処理内容。
Sub test01()
Dim c(10)
'5色のColorIndexの設定
c(1) = 3: c(2) = 12: c(3) = 5: c(4) = 9: c(5) = 6
t = t + 1
Cells(r, t + 1).Interior.ColorIndex = c(t)
End Sub
ーーーー
操作と結果の説明(質問もこのように書くべきではとおもう)
B5をクリック
コマンドボタンをクリック
5秒後にB5が赤、5秒後にC5オウド、5秒後に青・・とF5まで色が付く(C5を色をつけたときB5は色を消すのか質問で良くわからなかったので消してない)
B6をクリック
コマンドボタンをクリック
B5:F5の色を消す
B6から、上記B6の場合と同じことを繰り返す。
ーー
クリックの5秒後から色付けが始まるが良くないかな。
改良は出来るでしょう。
No.4
- 回答日時:
No2、onlyromです。
間違いがありです。(^^;;;
NO2の回答で
選択範囲は、1行(B2~F2とか)か、又は、1列(E1~E5とか)を想定してある
と書きましたが、
正しくは、
同じ行の範囲(B2~F2とか、E5~J5とか)のみ想定してあり
同じ列の範囲(E1~E5とか、B3~B9とか)は想定していません。
ということです。
同じ列の範囲(E1~E5とか、B3~B9とか)も想定するとコードが数行増えることになります。
所望ならアップします。
以上。
No.2
- 回答日時:
>アクティブセル(B3からF3)までのセル色が黄色・薄青・赤に5秒間隔で変色し
この意味がよく理解できません。
アクティブセルというのは、ひとつのセルのことです。
たぶん、こういうことでしょうね?
ある範囲、例えば、B3:F3 を選択した後、
コマンドボタンをクリックすると
選択範囲(B3~F3)のセルを順番に5秒間隔で塗りつぶしていく
再度、ボタンをクリックしたら、
前回塗りつぶしたセルは色なしにし、次の行を同じく塗りつぶしていく
これだけであれば、Waitメソッドが分かり易いかもしれません。
「コントロールツールボックス」の中のコマンドボタンをシートに配置
'---------------------------------------------------
Private Sub CommandButton1_Click()
Dim Rng As Range
Dim N As Integer
Dim myColor
myColor = Array(3, 6, 8) '●色番号
If Selection.Cells(1).Row > 1 Then
Selection.Offset(-1).Interior.ColorIndex = xlNone
End If
For Each Rng In Selection.Cells
Rng.Interior.ColorIndex = myColor(N)
Application.Wait Now + TimeValue("0:00:05")
N = N + 1
If N > 2 Then N = 0
Next Rng
Selection.Offset(1).Select
End Sub
'--------------------------------------------
セル範囲を選択した後、ボタンをクリックして実行すること
選択範囲は、1行(B2~F2とか)か、又は、1列(E1~E5とか)を想定してある
色は、「赤、青、水色」にしてある
以上。
No.1
- 回答日時:
ExcelVBAの場合 Timerオブジェクトは無いので
Applicationクラスの OnTimeメソッドを使います
標準モジュールを追加して タイマーで起動されるプロシージャを定義します
Public Sub myChange()
'実際に背景色を変更するシートのプロシージャを呼ぶ
Sheet1.ColorChange()
End Sub
シート側の色変更用の変数を準備します
Dim bFlag as Boolean
Dim cl as integer
DIm myDt as Date
シート側に実際に実行するプロシージャを定義します
Public Sub ColorChange()
' 塗りつぶしの設定のみしています
' セルの選択範囲もActiveCellのみです
' 適宜修正してください
ActiveCell.Interior.ColorINdex = cl
if bFlag then
myDt = Now + Timevalue("0:0:5")
end if
Select Case cl
case 3
cl = 35
case 35
cl = 7
case 7
cl = 0
case else
ActiveCell.Offset(1,0).Select
myDt = Now
End Select
if bFlag then
Application.OnTime myDt, "myChange"
End if
End Sub
コマンドボタンのClickイベントに
Private Sub CommandButton1_Click()
If bFlag = False Then
cl = 3
bFlag = True
Application.OnTime Now, "myChange"
Else
bFlag = False
Application.OnTime myDt, "myChange", , False
End If
End Sub
とします
コマンドボタンをクリックすると色変更が始まります
もう一度クリックすると停止します
この回答への補足
redfox63様。
早速のご教授有り難うございます。
VBAが不慣れの為、再度質問指して頂きます。
すべて同じ標準モジュールにコピー指して頂きました。
「コマンドボタンのClickイベン」とありますが、同じ標準モジュールでよろしいのでしょうか。記入方法をお願いします。
Public Sub myChange()
'実際に背景色を変更するシートのプロシージャを呼ぶ
Sheet1.ColorChange()ここの位置が反転します。()も必要でしょうか。
End Sub
操作しますと
コマンドボタンで下方向に移動はしますが、色がつきません。
何か間違っているのでしょうか。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) オートフィルタで抽出結果に 罫線をひく方法 1 2022/07/13 13:08
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 複数セルに〇印をつけるマクロ 4 2022/09/07 05:33
- Visual Basic(VBA) VBA 罫線について B列3行目から21行毎にデータがはいります。 データがはいったらデータが入った 6 2022/11/15 17:22
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
エクセル条件付書式で指定の時間が過ぎていたらフォントの色を変える
Excel(エクセル)
-
エクセルVBAでオートシェイプを点滅させたい。
Excel(エクセル)
-
Excelで文字の点滅方法
Excel(エクセル)
-
-
4
エクセルのマクロ、一定時間ごとに背景色を変える方法
Visual Basic(VBA)
-
5
エクセルのセルや文字を点滅表示できますか?
Excel(エクセル)
-
6
開始時刻から所要時間に応じてセルを塗りつぶすには
その他(Microsoft Office)
-
7
「一定の時間間隔で5秒毎にMacro1を実行する」
Excel(エクセル)
-
8
一定時間間隔でセルを点滅させたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELマクロ 保護されているシ...
-
データが入力されている隣のセ...
-
エクセルVBA セル選択後にカレ...
-
ダブルクリックすると現在の時...
-
メッセージを1度だけ表示したい。
-
エクセルテキストボックスの文...
-
複数行選択のテキストボックス
-
VBAで、貼り付け禁止命令を実現...
-
セル色を5秒間隔で変える
-
VBAについて教えてください。 E...
-
VBA セルに合わせて移動するが...
-
エクセルVBA(実行時エラー438...
-
エクセル: セルの枠を超えて表示
-
エクセルのセル内に全角数字を...
-
EXCELで特定のセルに表示...
-
エクセルのパーセンテージで、...
-
エクセルのセル内の余白の設定...
-
エクセル:マクロ「Application...
-
IF関数で空欄("")の時、Null...
-
エクセルで表示形式の時刻の「0...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELマクロ 保護されているシ...
-
データが入力されている隣のセ...
-
エクセルテキストボックスの文...
-
VBA セルに合わせて移動するが...
-
VBAで、貼り付け禁止命令を実現...
-
VBAで丸をつけたいです。
-
セル色を5秒間隔で変える
-
ダブルクリックすると現在の時...
-
ハイパーリンクされているファ...
-
エクセルVBA(実行時エラー438...
-
メッセージを1度だけ表示したい。
-
Jtableの特定のセルの背景色や...
-
(VBA)アクティブセルを起点に...
-
Windowsで動くVBAがmacOSで動か...
-
Swing 編集不可でも選択可能なJ...
-
Excelのセル内にある図形を削除...
-
マクロを使って画像を貼り付け
-
FileSearch2007に変わる構文に...
-
Excel VBA セルを指定個数ラン...
-
StringGridでの文字入力制限
おすすめ情報