Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9871 / 13644 ツリー ←次へ | 前へ→

【24973】シート上にコントロール動的追加 えくせーる 05/5/16(月) 13:55 質問[未読]
【24978】Re:シート上にコントロール動的追加 Kein 05/5/16(月) 15:56 回答[未読]
【25022】Re:シート上にコントロール動的追加 えくせーる 05/5/18(水) 9:44 質問[未読]

【24973】シート上にコントロール動的追加
質問  えくせーる  - 05/5/16(月) 13:55 -

引用なし
パスワード
   あるボタンをクリックすると、
ある条件のもと、
他シートに任意数(増減する)のコマンドボタンが作成されるようなものを作りたいのですが、どうやればいいんですか?教えてください。

さらに、
シート上のボタン位置や、ボタンの大きさをセル合わせる(セルの幅等を変更してもズレない)方法とかも教えてくださったらうれしいです。

過去の記事を読んでコントロール配列はつかえないようなのですが、
なにか良い方法はありますか。

【24978】Re:シート上にコントロール動的追加
回答  Kein  - 05/5/16(月) 15:56 -

引用なし
パスワード
   >あるボタンをクリックすると、
>ある条件のもと
の具体的な状況がわかりませんが、例えば InputBox で 20個以内の制限をつけて
ボタンの数を取得するとして、Sheet1 の B2 から下へセルの大きさに合わせた
フォームツールバーのボタンを配置する。というマクロは

Dim Cnt As Integer
Dim MyR As Range, C As Range
Dim Lp As Single, Tp As Single
Dim Wp As Single, Hp As Single
Const Pmt As String = _
"配置するボタンの数を20以内の数値で入力して下さい"

Do
  Cnt = Application.InputBox(Pmt, Type:=1)
  If Cnt = False Then Exit Sub
Loop While Cnt < 1 Or Cnt > 20
With Sheets("Sheet1")
  If .Buttons.Count > 0 Then .Buttons.Delete
  With .Range("B2")
   Set MyR = .Resize(Cnt)
   Lp = .Left: Wp = .Width: Hp = .Height
  End With
End With
For Each C In MyR
  Tp = C.Top
  ActiveSheet.Buttons.Add Lp, Tp, Wp, Hp
Next
Set MyR = Nothing

というコードになります。

【25022】Re:シート上にコントロール動的追加
質問  えくせーる  - 05/5/18(水) 9:44 -

引用なし
パスワード
   回答ありがとうございます。

コントロールは、「コマンドボタン」です。

できればコントロール数を制限したくないのですが…

確かVBではaddやremoveでコントロール数を制御できたと思うのですが、
やっぱりダメなんでしょうか。

9871 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free