今、ワークシートに入れてあるリストを、インプットボックスでワークシートで指定して読み込ませて処理しています。
今後、複数のリスト(ワークシート)を指定する為、ワークシートの数(ワークシート名も入力して)だけユーザーフォームに自動でチェックボックスを作成するマクロを作りたいと考えています。
ワークシートの数の取得、ワークシート名の取得方法、チェックボックスの値の取得方法はわかりましたが、ワークシートの数だけ、チェックボックスを適当なサイズで自動生成する方法がわからず困っています。
長いコードになると思いますが、よろしければコードも含めて教えてください、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
コントロールを自動作成するときは次のようなちょと面倒なことを
考慮しなければいけなくなります。
ユーザーフォームのサイズ
チェックボックスの配置する位置、サイズ
何列に配置するか、その場合の位置。
一番の問題はシートの数が多くなってユーザーフォーム領域に配置できなくなったらどうするか、等々。
これらを考えると、質問の処理では項目がリスティングされるような
コンボボックスかリストボックスの使うのが適していると思いますが。
「うんにゃ、どうしてもチェックボックスの自動作成だぁ~」
ということなら、上記の問題点を考慮していない簡単なサンプルをアップします。
ま、コードはマクロ記録をとれば大体はわかります。
ただ、ユーザーフォームへコントロールを配置してもマクロ記録はとれませんから、
シート上にチェックボックスを配置するマクロ記録をとってください。
以上。
回答ありがとうございます。
敷居の高い質問だったとは重々承知していました。
今回、シートの数が多くなってきて表示できなくなる等の問題は、ある程度、形ができてから回避していこうと考えています。またそれが楽しいので。
ですのであえて、「うんにゃ、どうしてもチェックボックスの自動作成だぁ~」でお願いできないでしょうか?。よろしくお願いします。
No.2
- 回答日時:
大河ドラマ「篤姫」を見てましたので遅くなりました。
地元ゆえ。。。(^^;;;
やっぱい、チェックボックスがよかみたいですねぇ。
↑
方言
と、関係ないことは置いといて。。。
今回のコードはコントロール追加の方法の確認ですから、
新しいブックにシート5、6枚を作り、下記を実行してください。
'------------------------------------------------
Private Sub UserForm_Initialize()
Dim s As Integer
Dim myCheckBox As Control
For s = 1 To Sheets.Count
Set myCheckBox = Me.Controls.Add("Forms.CheckBox.1")
With myCheckBox
.Height = 20
.Width = 80
.Left = 10
.Top = (s - 1) * .Height + 10
.Caption = Sheets(s).Name
End With
Next s
End Sub
'-------------------------------------------------
ユーザーフォーム表示領域云々は、予め大き目のフォームを作っておくとしても
シート枚数が多い場合は見栄え良くするためにチェックボックスを複数列で表示したい場合があるでしょうが、
それは自分で考えてみてください。
そして、分からないときはまた遠慮なく質問してください。
やる気のある人は、応援しなければ。。(^^;;;
以上。
今、仕事から帰ってきたので、試してみました。質問も仕事中にやってましたw これは、、、感動ですね。こんな短いコードで実現できるとは、知識の差としか言いようがないですね。VBA暦2週間なので偉そうな事言えませんが、連日夜更かししてやってたので多少知ったつもりでした。恐れ入りました。
そういえば、前にも回答していただいた方みたいですね。本当に助かっております。m(・_・)m (やっばいってまずいの事ですかね??)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい
Visual Basic(VBA)
-
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
エクセルユーザーフォームのチェックボックスのCaptionにセルの値を入れたい。
Excel(エクセル)
-
-
4
VBA ユーザーフォーム上のチェックボックスの合計を別シートに標示させるには?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
VBA 存在しないシートを選...
-
同じ作業を複数のシートに実行...
-
複数シートに色付きセル(条件つ...
-
【ExcelVBA】全シートのセルの...
-
ListViewの画面の更新
-
VBAでシート名を選んで転記する...
-
別のシートから値を取得するとき
-
VBAでオブジェクト変数にsetし...
-
セルのコピーで「オブジェクト...
-
XL:BeforeDoubleClickが動かない
-
ExcelのVBAのマクロで他のシー...
-
別のシートを参照して計算する方法
-
Excel チェックボックスにチェ...
-
実行時エラー1004「Select メソ...
-
Excel VBA マクロ 先頭行の固定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
別のシートから値を取得するとき
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
ブック名、シート名を他のモジ...
-
同じ作業を複数のシートに実行...
-
エクセルのシート名変更で重複...
-
VBAで指定シート以外の選択
-
VBAで同じシート名のコピー時は...
-
シートが保護されている状態で...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
-
IFステートの中にWithステート...
-
Worksheet_Changeの内容を標準...
-
【Excel VBA】Worksheets().Act...
-
VBA 存在しないシートを選...
おすすめ情報