• ベストアンサー

エクセルなんですが・・・

WWolfの回答

  • ベストアンサー
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.1

イベントをロジックで作るのは多分不可能だと思うので。 このロジックをテキストと考え、VBAで sub test() for i=1 to 100 a="Private Sub CheckBox" & i & "_Click()" b="  If CheckBox" & i & " Then"     ・           ・           ・ と少し途中ひねならないといけませんが・・・

関連するQ&A

  • エクセルですが・・・。

    チェックボックスについてです。 Private Sub CheckBox1_Click() If CheckBox1 Then Range("F1:F6").Interior.ColorIndex = 3 Else Range("F1:F6").Interior.ColorIndex = xlNone End If End Sub 以前、上記のように教えていただいたのですが、 これですと、1行しか設定していませんよね? これを、例えば100行くらい自動で設定できませんか? 宜しくお願いします。

  • 超初心者ですみませんが・・・

    エクセルなんですが、このコーナーでチェックボックスについて教えていただいたのですが、 Private Sub CheckBox1_Click()   If CheckBox1 Then     Rows(1).Interior.Color = vbRed   Else     Rows(1).Interior.Color = xlNone   End If End Sub       ↑ これについてなんですが、例えばチェックすることによって「F」の6行目まで色が着くってやりかたはどうやればよいのでしょう?これですと1行全部に色がついてしまいますので・・・。

  • エクセル チェックボックスの解除について(VBA)

    YES/NOを入力させる為の下記のVBAにおいて、チェックボックス1をチェックすると、アの部分でチェックボックス2の解除を行う関係で?、シート上でチェックボックス2を操作していないのにもかかわらず、勝手にCheckBox2_Click()に入り、命令文イを実行してしまいます。 ただ単にSub CheckBox1_Click()のルーチンの最後までの処理で終わりたいのですが、どうしたらよいのでしょうか。 Private Sub CheckBox1_Click() If CheckBox1 = True Then Sheets("sheet1").Range("A1") = 1 Sheets("sheet1").Range("A2") = 0 CheckBox2 = False・・・ア Else Sheets("sheet1").Range("A1") = "" End If End Sub Private Sub CheckBox2_Click() If CheckBox2 = True Then Sheets("sheet1").Range("A1") = 0 Sheets("sheet1").Range("A2") = 1 CheckBox1 = False Else Sheets("sheet1").Range("A2") = ""・・・イ End If End Sub

  • エクセルVBAの記述法(Worksheet_Changeで)

    入力があればセルが黄色のなり、入力がなければ無色とするマクロです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Value <> "" Then Target.Interior.ColorIndex = 6 Else Target.Interior.ColorIndex = xlNone End If End Sub このように書くと、通常は正しく動きますが、ドラッグした場合や、複数セルを一度にクリアした場合、エラーになってしまいます。 ただしく作動させるにはどう直せばいいのでしょうか?

  • エクセル2003VBA チェックボックスについて

    エクセル2003VBA チェックボックスについての質問です よろしくお願いします。    A         B 1 あああ       □ 2 いいい       □ 3 ううう        □ . . . . 35 かかか      □ 複数のチェックボックスをB列に配置し、 B1がオンになるとbook1を開く B2がオンになるとbook2を開く ・ ・ B35がオンになるとbook35を開く処理を行いたいのですが、 非常にコードが長くなってしまいます。 以下のコード以外で、 どのチェックボックスがオンになっているかを調べる方法が知りたいのですが、よろしくお願いします。 Private Sub CheckBox1_Click() book1を開く処理 End Sub Private Sub CheckBox2_Click() book2を開く処理 End Sub ・ ・ ・ Private Sub CheckBox35_Click() book35を開く処理 End Sub

  • 初心者ですみません

    A2セル上にチェックボックスを配置し、チェックが入ると1行目を塗りつぶすには 1. [表示]-[ツールバー]-[フォーム]からチェックボックスを適当な位置に貼り付け 2. 1で貼り付けたチェックボックス上で、右クリック 3. [コントロールの書式設定]-[コントロール]タブをクリック          ↑   この部分の[コントロールの書式設定]-[コントロール]なんですが、わたしのでは出来ません。「サイズ」「保護」「プロパティ」「Web」しかありません。どうすればいいのでしょう? また Private Sub CheckBox1_Click()   If CheckBox1 Then     Rows(1).Interior.Color = vbRed   Else     Rows(1).Interior.Color = xlNone   End If End Sub    ↑ 上記のコードを2行目、3行目・・・と続けて実行したいのですが、コピー&ペーストでやっても出来ないのはなぜでしょうか?

  • エクセル イベントマクロ

    マクロ初心者です。よろしくお願いします。 セル範囲(A1:F20)に何も入力されていなければ塗りつぶしされ、 何か(文字、数字などなんでも)入力されていれば、塗りつぶしがなくなる。 というマクロをあえて、条件付き書式を使わずに行いたいとやってみました。(以下) Private Sub Worksheet_Change(ByVal Target As Range) Dim a As Range For Each a In Range("A1:F20") If a.SpecialCells(xlCellTypeVisible) Then a.Interior.ColorIndex = xlNone Else a.Interior.ColorIndex = 7 End If Next a End Sub ところが、半角数字(0以外)では動作するのですが 文字を入力するとエラーとなり「型が一致しません」と表示されます。 どう直したらよいのでしょうか? 最近マクロをやってみようと始めたので、基本的なことがわかっていないのかも。 どなたか、具体的なご指導お願いします。

  • エクセル VBA セルの色をSheet1とSheet2の両方を変えたいのですが・・・

    最近困っているところが表題の通りなのですが Sheet1のB2を右クリックするとB2のセルの色を変えて Sheet2のB2のセルも色を変えたいというものです。 現状で Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim Rng As Range, myRng As Range Dim RngA As Range, myRngA As Range Set Rng = Range("B3:W3,b7:w8,b12:w12,d13:w13,d17:w18,d22:w23") Set myRng = Intersect(Target, Rng) If myRng.Interior.ColorIndex = xlColorIndexNone Then myRng.Interior.ColorIndex = 37 Else If myRng.Interior.ColorIndex = 37 Then myRng.Interior.ColorIndex = 45 Else myRng.Interior.ColorIndex = xlColorIndexNone End If End If Cancel = True End Sub とここまではあるのですが、これをどう改造すればSheet2の同じセルの色もかわるのでしょうか? 宜しくお願いいたします

  • エクセルのチェックボックスでの行の表示の切り替え

    エクセルでチェックボックスを使用して行の表示を切り替えています。 これに他のチェックボックスのON-OFFで表示する行を変えたいと思います。 例えばチェックボックスが3つあり チェックボックス3のON-OFFで行10-20を非表示と表示に切り替えている マクロがあります。 それをチェックボックス1がONの時は行11-20が非表示に チェックボックス2がONの時は10-19が非表示になるようにマクロに追加 するにはどうすればよいでしょうか? ちなみにチェックボックスはActiveXの方を使用しています。 今のコードは Private Sub CheckBox3_Click() If CheckBox3 = True Then Range("10:20").EntireRow.Hidden = False Else Range("10:20").EntireRow.Hidden = True End If End Sub です。 よろしくお願いします。

  • エクセルVBAのイベントで質問です。

    ある範囲のセルの色をダブルクリックにより変えていますが、 下の("D5:D50,F5:F50,K5:K50,M5:M50"))の範囲を例えばSheet1の A2以下に始めの範囲、B2以下に終りの範囲を下に書いていって、 対象とする範囲を可変にしたいのですが、どのようにすれば いいでしょうか。 例えば("D5:D50,F5:F50,K5:K50,M5:M50"))であれば A2に「D5」 B2に「D50」 A3に「F5」 B3に「F50」 などとセルにセル番地をいれておいて、コードを変えなくても シート上で範囲を変えていけるようにできないでしょうか。 やり方があれば教えてください。 よろしくお願いします。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Range Set r = Intersect(Target, Range("D5:D50,F5:F50,K5:K50,M5:M50")) If r Is Nothing Then Exit Sub With r.Interior If .ColorIndex = xlNone Then .ColorIndex = 3 ElseIf .ColorIndex = 3 Then .ColorIndex = 4 ElseIf .ColorIndex = 4 Then .ColorIndex = xlNone End If End With Cancel = True End Sub