[[20170208132036]] 『マクロで再計算の実行 <チェックボックスとの連』(はむ太朗) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロで再計算の実行 <チェックボックスとの連動>』(はむ太朗)

お世話になっております。

現在作成中のファイルは、数式が沢山組込んである為、自動計算だとセル入力等の都度、
再計算が働き、ファイル自体の動きが悪くなので、
ファイル自体を「手動」計算に切替えました。

それで、ファイルの動きはよくなったのですが、
ActiveコントロールのチェックBOXにチェック(レ)を付けると、
そのリンクセル(True or False)の結果により、
IF関数で求めていた計算式(B列)まで動かなくなり、
色々調べて、「シート内のセルの変更があれば指定範囲について
再計算を働かせることができる」というマクロを組んでみたのですが、
どうもチェックBOXとの連携(B列がチェックBOXのチェックの付け・外しによって変動)をしてくれません。

■Excelのイメージ
 ・「手動」計算の状態

   A     B      C         D
1 チェックBOX IF関数列   (空白列)    C-RINK
4  □   バナナ                FALSE
5  □   バナナ                FALSE    
6  □   バナナ                FALSE
7  □   バナナ                FALSE
8  □   バナナ                FALSE
9  □   バナナ                FALSE
10  □   バナナ                FALSE
11

 ・B列のIF関数例
  =IF(D2=TRUE,"リンゴ","バナナ")

 ・試したマクロ
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B2:B10").Calculate
End Sub

↑これを入力した後、
 A列のチェックBOXにチェックを付けても、B列は無反応状態です。
 D列はTrueに切り替わります。でも、B列は無反応状態です。
 D列のセルの内容が変更したことによってB列も変動すると思ってたのですが・・・。

 しかし、関係ないセルに文字を入力すると、急にB列(B2:B12)が再計算します。

正しい構文をご教示頂けないでしょうか。よろしくお願いします。
マクロは、初心者レベルです。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 はい。チェックボックスに限らず、シート上のコントロールの LinkedCell の変化は
 シートのChangeイベントの対象外です。
 (計算式による値の変化も、対象外になりますけど、同じようなものです)

 この変化をキャッチする方法は

 1.もし、このチェックボックスが ActiveX なら シートモジュールの CheckBox1_Click 等で対応します。
 2.もし、このチェックボックスが フォームツールのコントロールなら 標準モジュールにマクロを書いて
   このチェックボックスに、そのマクロを登録します。

(β) 2017/02/08(水) 14:12


βさん、ありがとうございます。
Linkedcellは、Change対象外なんですね。。。
CheckBoxが大量にありますが、何か方法を検討してみます。

ありがとうございました。

(はむ太朗) 2017/02/08(水) 15:41


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.