advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 978 for チェックボックス (0.008 sec.)
[[20170207191551]]
#score: 5499
@digest: d64aaf29883c041d7ea368cd8c48c259
@id: 72622
@mdate: 2017-02-13T12:22:12Z
@size: 8587
@type: text/plain
#keywords: オボ (20892), onaction (19978), mysheet (19811), msogroup (15602), mybook (15281), ラジ (14604), ジオ (14409), groupitems (13438), 件" (7859), マリ (6650), クボ (6609), ク以 (6508), 除2 (5997), リオ (5342), プ化 (4741), 解除 (4412), ロ登 (4278), グル (3084), obj (2881), 配布 (2694), ンボ (2485), ボタ (2159), ロブ (2150), ック (2140), ボッ (2083), 登録 (1989), タン (1940), を解 (1927), の登 (1852), クス (1672), チェ (1670), ブッ (1661)
『(フォーム) チェックボックスのコードを無効にしたい』(ひろ) いつもいろいろな事を勉強せて頂いてます。 [使用バージョン] Windows= Windows 7 enterprise Excel= 2013 [内容] エクセルシートに (フォームコントロールの)ラジオボタンやチェックボックスがあります。 それぞれ、そのボタンをクリックした際に VBAが動くようになっています。 これは、ラジオボタンを選択して、 「開発」タブの「コード表示」にて作成しました。(標準モジュールに作成) 提出用にマクロを外した通常のエクセルにして保存する必要があり 値のみで貼り付けし、VBAのモジュールを全て解放し xlsx形式にして保存しました。 そしてxlsx形式にしたエクセルのラジオボタンを押すと 「マクロ ”ラジオボタン CLick”を実行できません。このブックでマクロが使用できないか またはすべてのマクロが無効になっている可能性があります。」 と表示されます。 まだ ラジオボタンとマクロが紐づいていると思われるのですが どうしたら、紐付を解除できるのかわかりません。 ちなみに一度 Xlsm形式でフォームのチェックボックスやラジオボックスにコードを 記載し、その後Xlsx形式で保存し、一度閉じて開き直しても同じ現象が起きます。 やりたいことは、xlsx形式のラジオボックスは 押したら、黒くなるだけで、VBAなどの機能は無くしたいです。 教えて頂けますか? よろしくお願いいたします。 Best regards. < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- これで、どうですか? ******************** チェックボックス上で、右クリック →メニューの中の「マクロの登録」を選択 →マクロ名の下の文字を削除して、OKボタン (マリオ) 2017/02/07(火) 20:07 ---- 手作業で解除するのが、面倒なら下記のコードを利用してみてください。 下記コードでは、マクロが記述されているブック以外に開いている エクセルのファイルすべてにおいて、 すべてのシートを探索して、 チェックボックスとオプションボタン(ラジオボタン)の マクロの登録(OnAction)を解除します。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Sub 他のブックのOnActionを解除() Dim myBook As Workbook Dim mySheet As Worksheet Dim obj As Object, cb As Integer, op As Integer cb = 0 op = 0 '------------------------------------------------------- For Each myBook In Workbooks If myBook.Name <> ThisWorkbook.Name Then 'マクロを記述しているブック以外を対象として Workbooks(myBook.Name).Activate For Each mySheet In ActiveWorkbook.Worksheets 'すべてのシートで For Each obj In mySheet.CheckBoxes 'チェックボックスがあれば obj.OnAction = "" 'マクロの登録を解除 cb = cb + 1 Next For Each obj In mySheet.OptionButtons 'オプションボタンがあれば obj.OnAction = "" 'マクロの登録を解除 op = op + 1 Next Next mySheet End If Next myBook '------------------------------------------------------- MsgBox "OnActionの解除" & vbCr & "チェックボックス: " & cb & "件" & _ vbCr & "オプションボタン: " & op & "件" End Sub (マリオ) 2017/02/07(火) 21:37 ----------------------------- マリオ様 ありがとうございます。 インフルエンザで倒れていた為、返信が遅くなり申し訳ありません。 マリオ様のコードのおかげで解決することができました。 最初、チェックボックスやラジオボタンが解除できるのとできないのがありましたが、グループ化されているとできないというのに気づき 今ではすっかり 解決しました。 本当にありがとうございました。 <(_ _)> <(_ _)> ---- >ひろ さん >チェックボックスやラジオボタンが解除できるのとできないのがありましたが、 >グループ化されているとできないというのに気づき そこまで、気が回らなかったです。下記のプロシージャ 「他のブックのOnActionを解除2」では、 先にグループ化されているものがあれば、グループを解除します。 追加箇所は、■箇所の間 Sub 他のブックのOnActionを解除2() Dim myBook As Workbook Dim mySheet As Worksheet Dim obj As Object, cb As Integer, op As Integer '■■■■■ Dim grp_flg As Boolean Dim shp As Shape '■■■■■ cb = 0 op = 0 '------------------------------------------------------- For Each myBook In Workbooks If myBook.Name <> ThisWorkbook.Name Then 'マクロを記述しているブック以外を対象として Workbooks(myBook.Name).Activate For Each mySheet In ActiveWorkbook.Worksheets 'すべてのシートで '■■■■■■■■■■■■■■■■■■■■■■■ grp_flg = True Do While grp_flg = True grp_flg = False For Each shp In mySheet.Shapes If shp.Type = msoGroup Then shp.Ungroup: grp_flg = True End If Next shp Loop '■■■■■■■■■■■■■■■■■■■■■■■ For Each obj In mySheet.CheckBoxes 'チェックボックスがあれば obj.OnAction = "" 'マクロの登録を解除 cb = cb + 1 Next For Each obj In mySheet.OptionButtons 'オプションボタンがあれば obj.OnAction = "" 'マクロの登録を解除 op = op + 1 Next Next mySheet End If Next myBook '------------------------------------------------------- MsgBox "OnActionの解除" & vbCr & "チェックボックス: " & cb & "件" & _ vbCr & "オプションボタン: " & op & "件" End Sub >インフルエンザで倒れていた為 空気が乾燥しているので、今後も気を付けないといけませんね。 お大事に! (マリオ) 2017/02/13(月) 18:07 ---- 横から失礼。 もう、ひろさん、ご覧にならないかもしれませんが、質問のテーマに限定すれば、すでにマリオさんから 充分なコードが提示されていますが、『広義』に解釈すれば、フォームツール含め、シート上にマクロ登録された 図形がちりばめられている。これを配布用にマクロ登録をなくした形のものにしたいということだろうと思います。 オプションボタンとチェックボックス以外は、マクロ登録が残っていてもいいというわけではないですね。 今後、別のコントロール(ボタン 等)を追加したとしたら、それらのマクロ登録も削除しておく必要がありますね。 ついでに、配布用のブックを、マクロブックそのものをメンテするのではなく、これは、βの個人的な好みですけど 新規ブックとして、マクロブックとは別に生成します。 (どういった範囲を配布したいのか、不明でしたので、とりあえずは、マクロブックの"Sheet1"シートのみを対象にしています) Sub Sample() Dim sp As Object Dim spx As Object Sheets("Sheet1").Copy With ActiveSheet .UsedRange.Value = .UsedRange.Value For Each sp In ActiveSheet.Shapes If sp.Type = msoGroup Then For Each spx In sp.GroupItems spx.OnAction = "" Next Else sp.OnAction = "" End If Next End With End Sub (β) 2017/02/13(月) 19:35 ---- >βさん 私のコード(他のブックのOnActionを解除2) だと、グループ化を解除してしまってます。 βさんの方がいいですね。 βさんのコードを組み込んでみました。 ★新規ブックを作ってませんが…。 βさん、For Each spx In sp.GroupItems〜Nextのところは、 グループ化が2段階以上でも、有効ですよね? Sub 他のブックのOnActionを解除3() Dim myBook As Workbook Dim mySheet As Worksheet Dim sp As Object Dim spx As Object For Each myBook In Workbooks If myBook.Name <> ThisWorkbook.Name Then 'マクロを記述しているブック以外を対象として Workbooks(myBook.Name).Activate For Each mySheet In ActiveWorkbook.Worksheets 'すべてのシートで '------------------------------------- For Each sp In mySheet.Shapes 'すべてのオブジェクトで If sp.Type = msoGroup Then 'オブジェクトが、グループ化されていたら、 For Each spx In sp.GroupItems spx.OnAction = "" Next Else 'オブジェクトが、グループ化されていなければ、 sp.OnAction = "" End If Next '------------------------------------- Next mySheet End If Next myBook MsgBox "処理終わりました" End Sub (マリオ) 2017/02/13(月) 21:09 ---- >>グループ化が2段階以上でも、有効ですよね? はい。 研究熱心なマリオさんですから、3段階、4段階のグループ化を行ったものを対象にしてみれば すぐにわかると思いますけど。 ( β) 2017/02/13(月) 21:22 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201702/20170207191551.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97065 documents and 608342 words.

訪問者:カウンタValid HTML 4.01 Transitional