• ベストアンサー

CommandButtonを押した時に…

Sheet1にコントロールのCommandButton1(名前は"スタート")を配置し、クリックした時に下記のプロシージャを有効にしたいのです。 また、同じくCommandButton2(名前は"ゴール")をクリックしたときにこのプロシージャを無効(終了)にしたいと思っています。 どのように記述をすればよいのでしょうか。 よろしくお願いします。 Private Sub Worksheet_SelectionChange(ByValTarget As Range) ActiveCell.Interior.ColorIndex = 5 End Sub

noname#121624
noname#121624

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

こんなんじゃ、お手軽すぎますかね。ご参考に。 Dim paintFLG As Boolean Private Sub スタート_Click()   paintFLG = True End Sub Private Sub ゴール_Click()   paintFLG = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If paintFLG = True Then     ActiveCell.Interior.ColorIndex = 5   End If End Sub

noname#121624
質問者

お礼

お手軽すぎるどころか、とてもわかりやすくて使いやすい記述で、早速利用させていただきました。 急いで仕上げなければならない理由があり、本当に助かりました。 有り難うございました。

関連するQ&A

  • エクセルvba  (ByVal Target As Range)について

    シートのイベントプロシージャーが Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub となりますが (ByVal Target As Range)部分は何なのでしょうか? 何のためにあるのかわかりません。 Private Sub Worksheet_SelectionChange() End Sub としたらエラーが返ってきました。 理由を教えてください。 よろしくお願いします。

  • エクセルVBA/イベント発生でコピペ不能はなぜ?

    シートに以下のマクロを設定すると、そのシート内ではコピーしたもののペーストが不能になります。 どうしてでしょうか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target.Interior.ColorIndex = 6 End Sub

  • Excelで選択しているセルの行を色づけしたい

    以前、このサイトでVBAを以下のように設定したのですが、 一度、ファイルを閉じてしまうと、無効になってしまいます。どうすれば、いいのでしょうか? Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) ActiveSheet.Rows.Interior.ColorIndex = xlNone Rows(Target.Row).Interior.ColorIndex = 15 End Sub

  • マクロ実行後に操作を元に戻したい

    自作の時間割変更プログラムを使っています。 次のマクロを何度か実行した後に一つずつ元に戻したいのですが。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Rng As Range Dim m, n, s On Error Resume Next If Selection.Count <> 2 Then Exit Sub m = ActiveCell.Value n = ActiveCell.Interior.ColorIndex For Each Rng In Selection If Rng.Address <> ActiveCell.Address Then ActiveCell.Value = Rng.Value ActiveCell.Interior.ColorIndex = Rng.Interior.ColorIndex Rng.Value = m Rng.Interior.ColorIndex = n End If Next Rng End Sub 時間割のコマを移動した後に間違いが見つかり、間違いの時点まで元に戻して訂正したいのですが、Ctrl+zがきかず困っています。 Excel 365、windows 10を使用しています。どうにかなりませんか?

  • CommandButtonのCaptionを変化させたい

    VBAを始めたばかりの初心者です。 sheet1にコントロール(CommandButton)を10個ほど配置しました。各CommandButtonのCaptionにsheet2~11のセルA1の値を表示させたいと思っています(このA1の値は変化します)。 Private Sub Workbook_Open() Dim Mrang1 As String Mrang1 = Worksheet(2).Range("a1").Value CommandBottan1.Caption = Mrang End Sub 上記のようなものを考えてみましたが、ダメでした。 根本的に何か間違っているのでしょうか。 よろしくお願いします。

  • エクセル2007で表集計しています。

    エクセル2007で表集計しています。 ひとつのセルを選択すると、行全体の色が変わるようにしたいのですが、 OKWeveを参考にして下記VBAを使ったのですがうまくいきません。 セキュリティの問題でしょうか?どなたか、詳しい方がみえましたら教えてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlNone With Target.EntireRow.Interior .ColorIndex = 3 .Pattern = xlSolid End With End Sub

  • エクセルのハイパーリンクについて

    エクセルでsheet1の任意のセルをクリックすると、sheet2の任意のセルにハイパーリンクするようにしています。 その際に、ハイパーリンク先の該当箇所に色がつくようにVisual Basicでプログラムを組み込みました。ひとつのハイパーリンク元にひとつのハイパーリンク先を作っていましたが、ひとつのハイパーリンク元に複数のハイパーリンク先を作り、ハイパーリンク先の該当箇所に色をつけたいのですが、どのようにすればよいのでしょうか?(2つハイパーリンク先があるときは、2つの該当セルに色がつくようにしたいです) Visual Basicで作ったプログラムは以下のとおりです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlColorIndexNone End Sub Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) ActiveCell.Interior.ColorIndex = 3 End Sub このプログラムを修正する必要がある場合は、Visual Basic初心者なので具体的にどのようにすればよいか教えてください。 よろしくお願いします。

  • エクセルVBAでクリックしたセルのみ書式を変えたいのです。

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Row <= 11 And Target.Column <= 11 Then With Selection .Interior.ColorIndex = 3 .Font.ColorIndex = 2 .Font.Bold = True End With End If End Sub これで出来るのですが、問題は別のセルに移動しても書式は変ったままなのです。(当り前ですが) 書式を変えるのはあくまで選択されている間だけにしたいのです。 どのようにすればよいのでしょうか? エクセル97です。

  • エクセルで選択中の列や行を見やすくしたい

    タイトルのとおり、選択中の列や行の色が一列全部変るように したいと思い調べ、以下のVBEコードを見つけたんですが Public m Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If m <> 0 Then   Range(Cells(m, 1), Cells(m, 256)).Interior.ColorIndex = xlNone  End If  Range(Cells(Target.Row, 1), Cells(Target.Row, 256)).Interior.ColorIndex = 6  m = Target.Row End Sub 確かに色は変るんですが、もともとついている箇所の色が 消えていってしまいます。 色が消えずに同じことは出来ないでしょうか。 ご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。

  • セルの選択でその行に色を付けたい

    横に長いデータがあり、その1つのセルを選択するとその行全体に色が付くようにしたいのです。過去の質問で以下のようなものを見つけましたが、問題はその場合、通常のコピー→貼り付けができない点です。 その辺を問題なく行える方法はないでしょうか? よろしくお願いいたします。 Public m, n Private Sub Worksheet_SelectionChange(ByVal Target As Range) If m <> 0 Then Range(Cells(m, 1), Cells(m, 256)).Interior.ColorIndex = n End If m = Target.Row n = Target.Interior.ColorIndex Range(Cells(Target.Row, 1), Cells(Target.Row, 256)).Interior.ColorIndex = 6 End Sub