こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel チェックボックスの配置を換えた時

ご質問させていただきます。

Excel2007を使用しています。

sheet2のA1セルからA190セルまでチェックボックスがあり、下記のmacro1が登録されていました。
そこで、チェックボックスの位置を以下のように変更しました。
sheet2のA1~A10セルまでチェックボックスが10個、その隣のB1~B10セルにsheet1のJ2~J11列への参照式、sheet2のC1~C10セルまでチェックボックスが10個、その隣のD1~D10セルにsheet1のJ12~J21列への参照式、・・・(省略)・・・、sheet2のAK1~AK10セルまでチェックボックスが10個、その隣のAL1~AL10セルにsheet1のJ182~J191への参照式、というふうに変更しました。
変更に伴い、A1~A10セルのチェックボックスには下記のmacro1を登録し、C1~C10セルのチェックボックスには下記のmacro2を登録しました。
問題は次で起こりました。E1~E10セルのチェックボックスに下記macro3を登録したのですが、チェックボックスをONにすると「実行時エラー13 型が一致しません」と表示されてしまいます。デバックボタンを押すと、myCheck.TopLeftCell.Value = Not myCheck.TopLeftCell.Valueが黄色くなります。
そこで、myCheck.TopLeftCell.Value = Not myCheck.TopLeftCell.Valueを削除してE1セルのチェックボックスをONにしてみたところ、なぜかE1セルにSheet1のI22セルの値が表示され、チェックボックスをOFFにしてみたらE1セルに=Sheet1!I22と書かれていることがわかりました。
offsetの数値を色々と試してみたところ、macro3のoffset(0,1)の部分をoffset(0,2)にするとチェックボックスがOFFの時にちゃんとE1セルには=Sheet1!J22と記入されます。
しかし、offset(0,2)の状態でmyCheck.TopLeftCell.Value = Not myCheck.TopLeftCell.Valueを挿入して実行してみたところ、やはり「実行時エラー13 型が一致しません」と表示されてしまいます。
どこをどう直したら良いのか全くわかりません。
教えてください。
よろしくお願いいたします。

Sub macro1()
 Dim myCheck As Shape
 Set myCheck = ActiveSheet.Shapes(Application.Caller)

 myCheck.TopLeftCell.Value = Not myCheck.TopLeftCell.Value

 With myCheck.TopLeftCell.Offset(0, 1)
  If myCheck.ControlFormat.Value = 1 Then
   .Value = .Value
  Else
   .FormulaR1C1 = "=Sheet1!R[1]C[8]"
  End If
 End With
End Sub

Sub macro2()
Dim myCheck As Shape
Set myCheck = ActiveSheet.Shapes(Application.Caller)
myCheck.TopLeftCell.Value = Not myCheck.TopLeftCell.Value
With myCheck.TopLeftCell.Offset(0, 1)
If myCheck.ControlFormat.Value = 1 Then
.Value = .Value
Else
.FormulaR1C1 = "=Sheet1!R[11]C[6]"
End If
End With
End Sub

Sub macro3()
Dim myCheck As Shape
Set myCheck = ActiveSheet.Shapes(Application.Caller)
myCheck.TopLeftCell.Value = Not myCheck.TopLeftCell.Value
With myCheck.TopLeftCell.Offset(0, 1)
If myCheck.ControlFormat.Value = 1 Then
.Value = .Value
Else
.FormulaR1C1 = "=Sheet1!R[21]C[4]"
End If
End With
End Sub

投稿日時 - 2011-08-05 20:36:24

QNo.6923771

困ってます

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

前回ご回答再掲:
>改めて「C1セルに」C1セルの大きさの中に収まるように,フォームコントロールのチェックボックスを1つ配置する

これが出来てなくて,E列に配置したチェックボックスがE列セルからはみ出している状況の様子です。
具合の悪いE列のチェックボックスを改めて「E列のセルの中にしっかり収めて」配置し直し,macro3を登録して再度実行してみてください。

投稿日時 - 2011-08-05 21:52:38

お礼

keithin 様

ご回答ありがとうございます。
仰るとおりでした。
ご指摘通りに直したところ、上手くいきました。
この度は、何度もご回答頂きまして本当にありがとうございました。

投稿日時 - 2011-08-06 07:38:26

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問