Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
【VBA】サンプルコード
投稿日時: 23/07/01 21:43:42
投稿者: emondaslr7

セルA5チェックボックスにチェック入れるとC5、H5、I5(同じ行の離れた複数セル)がセル選択されるマクロコード
 
VBAに精通しておられる方、ご教示よろしくお願いします。

回答
投稿日時: 23/07/02 11:52:36
投稿者: WinArrow

質問事項はいくつもあるが、とりあえず
  
チェックボックスは、セルには属していないので、
フォームコントロールの✓ボックスで、且つ、セルA5にリンクしているという前提で、
  
標準モジュールにチェックボックスをクリックしたとき、起動するプロシジャを作成します。

Sub チェック1_Click()
'
' チェック1_Click Macro
'
If ActiveSheet.Range("A5").Value = True Then
     Union(Range("C5"), Range("H5"), Range("I5")).Select
Else
    Range("A5").Select
End If
End Sub
  
※セルを選択しただけ・・・のマクロコードはもったいない。
※その先の操作もマクロ化することも検討した方がよい。
  
※ActiveXのチェックボックスもあるし、
セルに直接「✓」を入れる方法もあるので、検討してみるとよいでしょう。
 
 
質問事項
 
チェックボックスは1つだけですか?
チェックボックスは、フォームコントロールですか?ActiveXですか?
セルを選択して、その次に何をするのでしょうか?
 

回答
投稿日時: 23/07/02 13:51:01
投稿者: WinArrow

質問事項 追加
 
チェックボックスが☑ ではない場合の対応がせつめいされていませんが、どうするのでしょうか?

投稿日時: 23/07/03 21:45:45
投稿者: emondaslr7

WinArrow様
 
ご教示ありがとうございます。
トライしたところ、できました。
 
質問がわかりにくく失礼しました。
仰るとおり、フォームコントロールの✓ボックスで、且つ、セルA5にリンクしているという前提です。
 
やりたい内容としては、タスク管理表で終了したタスクを削除したい。
 
◎行数は15 Range("B5:L19")
◎Range("D5:G19","J5:K19")にはVlookで引っ張ってきたデータが入っている
◎参照セル(空白セル)がRange("C5:C19","H5:H19","I5:I19")と仮定しております。
 
終了したタスクの行を削除する際に参照(空白セル)を1づつ選択してDELETE、、は面倒なので
チェックボック選択で参照セル(空白セル)を一括選択した後にDELETE(一括削除)する方法を考えておりました。
 
※因みに削除した後、空白行を上に詰めるコードは完成しております。
 
GPTで調べてみましたが私のスキル不足で今回の質問に至った次第です。
VBAは勉強を始めたばかりですが、WinArrow様のようになれるよう精進します。
 
ご教示ありがとうました。
重ねてお礼申し上げます。