Excel VBA質問箱 IV

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

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


2168 / 13645 ツリー ←次へ | 前へ→

【69569】VBAのコードでワークシート上にコントロールを配置する方法 YY 11/8/3(水) 16:25 質問[未読]
【69570】Re:VBAのコードでワークシート上にコントロ... ichinose 11/8/3(水) 16:51 発言[未読]
【69572】Re:VBAのコードでワークシート上にコントロ... ichinose 11/8/3(水) 18:14 発言[未読]
【69581】Re:VBAのコードでワークシート上にコントロ... YY 11/8/4(木) 13:23 お礼[未読]

【69569】VBAのコードでワークシート上にコントロ...
質問  YY  - 11/8/3(水) 16:25 -

引用なし
パスワード
   Excel2003を使っていますが
VBAのコードでワークシート上にコントロールを配置するコードの書き方がよく分かりません。
例えば、ワークシート(Sheet1)の左上にラベル(CaptionはTESTなどの文字列)を表示するコードの記述例を教えていただけないでしょうか。

なお、ワークシートではなくフォームには以下のコードで作成できたのですが・・・

Dim Mycmd As Control

Private Sub CommandButton1_Click()
 Set Mylbl = Controls.Add("Forms.Label.1")
 Mylbl.Left = 18
 Mylbl.Top = 70
 Mylbl.Width = 100
 Mylbl.Height = 10
 Mylbl.Caption = "TEST"
End Sub

よろしくお願い致します。

【69570】Re:VBAのコードでワークシート上にコント...
発言  ichinose  - 11/8/3(水) 16:51 -

引用なし
パスワード
   ▼YY さん:
こんにちは。


>なお、ワークシートではなくフォームには以下のコードで作成できたのですが・・・
シートへのActiveXControlの作成は、マクロの記録を使ってできませんか?
ユーザーフォームの作成方法に似ていますが、
作成されたオブジェクトはOleObjectという型で運用します。

後は、Oleobjectを調べてもらえば概ね分かると思います。

位置やサイズは、Oleobjectのプロパティで設定できます。
Captionは、Objectプロパティを通して指定します。

Sub Macro1()
  Dim olelbl As OLEObject
  Set olelbl = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1")
  With olelbl
    .Left = 100
    .Top = 100
    .Width = 100
    .Height = 16
    .Object.Caption = "TEST"
    .Object.BorderStyle = 1
  End With
End Sub


>
>Private Sub CommandButton1_Click()
> Set Mylbl = Controls.Add("Forms.Label.1")
> Mylbl.Left = 18
> Mylbl.Top = 70
> Mylbl.Width = 100
> Mylbl.Height = 10
> Mylbl.Caption = "TEST"
>End Sub

【69572】Re:VBAのコードでワークシート上にコント...
発言  ichinose  - 11/8/3(水) 18:14 -

引用なし
パスワード
   >>なお、ワークシートではなくフォームには以下のコードで作成できたのですが・・・
>シートへのActiveXControlの作成は、マクロの記録を使ってできませんか?
前回投稿のような投稿でシートへActiveXControlの作成は、可能です。が、
提示したような動的な作成(削除)に関しては、いくつか不具合も出ています。

www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=7011;id=excel

だいぶ前に私も質問した経験があります。

他にもあったと思いますよ


www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=14064;id=excel

よって、仕様の際は、よく注意してください。

【69581】Re:VBAのコードでワークシート上にコント...
お礼  YY  - 11/8/4(木) 13:23 -

引用なし
パスワード
   ichinoseさん

教えていただきましたサンプルで私のしたかったことができました。

いろいろ分からないことを調べていて
マクロの記録で確認することには気付きませんでした。

でもマクロの記録ではキャプションやフォントなどの指定が
コードとして記録されませんでしたので
Objectプロパティを通して指定することを
教えていただけたこともよかったです。

ありがとうございました。

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