advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 978 for チェックボックス (0.008 sec.)
[[20110621221532]]
#score: 5499
@digest: 9d75c68fe719115205d7f0a10c6bafff
@id: 54987
@mdate: 2011-06-22T12:37:33Z
@size: 4429
@type: text/plain
#keywords: 定bo (28859), chktest (14761), ク23 (12049), ready (11311), checkboxes (8773), クボ (7709), ク5 (6640), チェ (3481), topleftcell (3424), ェッ (3152), はte (3100), ボッ (2381), test3 (2359), ック (2092), ichinose (2066), クス (1912), 前ボ (1724), test1 (1645), す" (1400), test2 (1281), 判定 (1118), ロ実 (1003), 左上 (1003), 名前 (878), activesheet (862), msgbox (816), コー (814), 題は (704), 実行 (676), 問題 (663), トロ (650), にチ (642)
チェックボックスにチェックがついていたら実行』(koko)
お世話になります。 フォームコントロールのチェックボックスをA1〜A3まで配置 チェックボックスのリンクするセルをそれぞれC1、C2、C3に設定 B1〜B3に test1 test2 test3 と文字入力 A列のチェックボックスにチェックをつけて チェックがついた行のB列に入力されているマクロ名のみ実行したくて 下記のコードを書きました。 うまく動いてくれました。 なので問題がないといえばないのですが、自分のスキルを知って いるので信用できません。 このコードに問題はないでしょうか? チェックボックスを使ってマクロ実行のコードの書き方は他にないですか? 指摘箇所がありましたら、宜しくお願い致します。 Sub test1() MsgBox "これはtest1です" End Sub Sub test2() MsgBox "これはtest2です" End Sub Sub test3() MsgBox "これはtest3です" End Sub Sub test() Dim i As Integer For i = 1 To 3 If Range("c" & i).Value = True Then Application.Run Range("b" & i).Value End If Next i End Sub ---- >このコードに問題はないでしょうか? 問題はないですねえ >チェックボックスを使ってマクロ実行のコードの書き方は他にないですか? 方法は、いくつかあると思います。 VBAコードで処理するなら、情報をセルに出さずにチェックボックスから 取得する方法 新規ブックにて 標準モジュール(Module1)に Sub ready() Dim g0 As Long Dim r As Range With ActiveSheet For g0 = 1 To 3 Set r = Cells(g0, 1) With .CheckBoxes.Add(r.Left, r.Top, r.Width, r.Height) .Name = "chktest" & g0 .Caption = "チェック" & g0 End With Next End With End Sub 上記Readyを実行してください。 アクティブシートにチェックボックスが3個作成されます。 別の標準モジュールに Sub test1() MsgBox "これはtest1です" End Sub Sub test2() MsgBox "これはtest2です" End Sub Sub test3() MsgBox "これはtest3です" End Sub Sub test() Dim g0 As Integer With ActiveSheet For g0 = 1 To 3 With .CheckBoxes("chktest" & g0) If .Value = xlOn Then Application.Run Replace(.Name, "chk", "") End If End With Next End With End Sub チェックボックスにチェックを入れたり、はずしたりして、testを実行してください。 これは、チェックボックス自体が持つチェックされたか否かのプロパティを参照し、 チェックボックスのオブジェクト名と実行するプロシジャー名を 関連付けた例です。 どれを使うかは、仕様にもよりますので・・・。 ichinose ---- もたもたレスを書いていたらichinoseさんからパーフェクトなアドバイスがあったので撤回して。 フォームツールのコントロールは、それを作成した時のシート上のシェープの連番が自動的に付加されて たとえば、チェック 5 とか チェック 23 とか、自分のコードの中では指定しにくい名前になる。 (できあがった チェック 5 とか チェック 23 をコードで個別に指定すれば別だけど) でも、この名前はichinoseさんのready()の中で示唆されているように、自分が扱いやすい名前に変更できる。 かつ、マクロ以外に、以下の手作業によっても可能。 ・チェックボックスを選択 ・画面左上の名前ボックスに チェック 5 等が表示される。 ・名前ボックスをマウスでクリック => 名前が選択状態になる ・好きな名前を打ち込みEnter たとえば 判定Box_1 とか 判定Box_2 とか これでマクロの中で、判定Box_○ という名前を指定して処理ができるし、この ○ を 数値の変数で与えながらループ処理もできる。 もう1つ、ichinoseさんのコードでは紹介がなかったことを追加で。 ActiveSheet.CheckBoxes("その名前").TopLeftCell というプロパティがある。 これは、シート上のチェックボックスの左上隅があるセルのオブジェクト。 で、そのセルアドレスを、以下のように取得できる。 MsgBox ActiveSheet.CheckBoxes("判定Box_2").TopLeftCell.Address(False, False) 以上、ジャスト参考まで。 ぶらっと立ち寄り ---- ichinoseさんへ >>このコードに問題はないでしょうか? >問題はないですねえ 有難うございます。自信がちょっとだけ増えました。 >VBAコードで処理するなら、情報をセルに出さずにチェックボックスから > 取得する方法 セルに出考さないで処理って出来るんですね。 ちらっとは考えたのですが、どうやっても自分では無理でした。 より完璧に近づいたコードができそうです。 有難うございます。 ぶらっと立ち寄りさんへ ちょっと難しかったですが、やっと理解できたような気がします。 >MsgBox ActiveSheet.CheckBoxes("判定Box_2").TopLeftCell.Address(False, False) これって色々と活用できそうですね。 大変勉強になりました。 有難うございます。 (koko) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201106/20110621221532.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97004 documents and 608067 words.

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