たびたび同じ質問をしてしまい申し訳ありません
以前教えてもらった
Sub Sample()
Dim c As Range, cbx As Object
Dim rw As Long
Dim t As Single, h As Single, w As Single
Dim y As Single, v As Boolean, f As Boolean
For rw = 6 To 15
Set c = Cells(rw, 1)
t = c.Top
h = t + c.Height
w = c.Width
f = False
' Form Control
For Each cbx In ActiveSheet.CheckBoxes
y = cbx.Top + cbx.Height / 2
If t < y And y < h And cbx.Left < w Then
f = True
If cbx.Value = xlOn Then v = True Else v = False
Exit For
End If
Next cbx
' ActiveX Control
If Not f Then
For Each cbx In ActiveSheet.OLEObjects
If TypeName(cbx.Object) = "CheckBox" Then
y = cbx.Top + cbx.Height / 2
If t < y And y < h And cbx.Left < w Then
f = True
v = cbx.Object.Value
Exit For
End If
End If
Next cbx
End If
If f And v Then
Cells(rw, 3).Resize(, 3).ClearContents
Cells(rw, 16).Resize(, 2).ClearContents
End If
Next rw
End Sub
でシート「操作画面」のC13:E13,P13:Q13 C15:E15,P15:Q15は消去することができました
それを応用して別シート「集計」のI7:I12 K7:K12も合わせて消去しようかと思ったのですが上手く
動作しませんでした
大変申し訳ないのですが、また、ご指導のほどよろしくお願いいたします
No.2ベストアンサー
- 回答日時:
前回回答者です。
最初に、前回の説明と重複になってしまいますが・・・
https://oshiete.goo.ne.jp/qa/9807697.html
説明にもありますように、通常はセルとチェックボックスの関係をきちんと取れるようにしておいてから、マクロを作成するものと思います。
その意味において、前回のNo1様、No3様の回答は関係性を確かなものにする方法を提示なさっています。
No2の回答は、それらの情報が与えられないので、しかたなく見た目から推測する方法で処理したものですので、正確性や効率性の点であまり良いものとは言えません。
また、チェックボックスも複数の種類が想定でき、どちらなのかが不明でしたので、両方を考慮しましたが、実際には(常識的に)どちらか一方だけの利用であると推測できますので、結果的に残り半分のコードは不要ということになります。
さらに、きちんと関係性が取れている場合は、位置関係から探す必要もなくなるので、コードも大幅に短くできるはずですが、不明な状況でしたので、ひとまず冗長なコードであっても提示しておけば、後は、質問者様がアレンジなさるであろうことを期待しての回答でした。
今回のご質問で、
・それを応用して~~
・〇〇も合わせて消去しようかと~
・上手く動作しませんでした
「応用する」、「うまく動作しない」という情報だけから推理しようとしても、あまりにも可能性が広がりすぎてしまって皆目見当がつきません。
多少なりともヒントになりそうな情報として記せそうなのは、前回の回答で「セルの内容を消去している」部分は
> Cells(rw, 3).Resize(, 3).ClearContents
> Cells(rw, 16).Resize(, 2).ClearContents
の2行である、ということぐらいでしょうか。
(この部分に関しては、前回のNo3様と、たまたま同様の記述になっています)
ANo3様のコードの方が、シートを明記する形式で対象を指定していますので、より明確な記述方法になっていると言えるかもしれません。
ちなみに
>別シート「集計」のI7:I12 K7:K12を消去する
という部分だけであれば、
Worksheets("集計").Range("I7:I12,K7:K12").ClearContents
のような記述で実現できるはずと思います。
No.1
- 回答日時:
>それを応用して別シート「集計」のI7:I12 K7:K12も合わせて消去しようかと思ったのですが上手く動作しませんでした
これをアップしてください。
答えを得ることよりも、あなたの構想の問題点を明らかに
することの方が今後のあなたのスキルアップに間違いなくつながります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CD-R CD-RWの見た目の違い
-
BD-Rから消去したら容量は?
-
DVD-Rの内容削除
-
HDD内のOS削除に関して
-
Google map 外部サイトによって...
-
ビデオテープの消去を速く行う...
-
外付けHDDのデータを抹消ソフト...
-
ハードディスク完全消去の確認方法
-
ドコモの留守番電話サービスセ...
-
DVD-RWの消去が出来ない
-
HDDの破壊方法
-
レンタルしていたPCを返却す...
-
winZIP D. Up... ドライブアッ...
-
SSD内蔵PCのメンテナンスは?
-
マクロで消去したいです
-
パソコン、スマホ、プリンター...
-
アクオスフォン(docomo)を購入...
-
パナソニックのノートパソコン
-
iphone4の着歴消したい
-
電話帳から名前と電話番号を削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CD-R CD-RWの見た目の違い
-
Google map 外部サイトによって...
-
(退職)PCのデータ消去
-
CD-Rに録音した曲を削除したい
-
PCに消去できない一時ファイル...
-
HDD完全消去できたかどうかの確...
-
フォーマットしてもDVD-RWの空...
-
DVD-RWは消しても容量減る?
-
TeraStationのデータ抹消の信頼性
-
clean allとsecure eraseの違い
-
SANYO FAX SFX-P370のメモリー消去
-
いつのまにかwindowsにLinuxが...
-
電話帳から名前と電話番号を削...
-
パナソニックFAXのメモリ消去の...
-
FAXデータの消去方法を教えてく...
-
Windows10のエクスプローラにて。
-
PCリサイクル時のハードディス...
-
HDD内のOS削除に関して
-
パソコンはwipe outでのデータ...
-
iPhoneを売るときに完全消去す...
おすすめ情報