Excel VBAリファレンス>>OLEObjectクラス【Office2013以降】

公開日:2017年5月14日

Objectクラスは、ActiveX コントロール、またはワークシートにリンクあるいは埋め込まれている OLE オブジェクトを表わすのに使用します。以下、ActiveXコントロールを例にして解説します。

Amazon 在庫処分セール

ファッション ビューティー ホーム&キッチン ペット用品 食料の掘り出し物をチェック

Amazon 在庫処分セール

ファッション ビューティー ホーム&キッチン ペット用品 食料の掘り出し物をチェック

1.VBA上の位置付け

Excelのメンバー

2.主なメンバー

項目名前
イベントGotFocus
lostFocus
メソッドActivate
Copy
Cut
Delete
Select
プロパティApplication
Border
Height
Index
Left
LinkedCell
Locked
Name
Object
Top
Visible

3.使い方

3-1.OLEオブジェクトの取得

コントロール名を指定する方法とインデックス番号を指定して取得する方法があります。

Set 変数=(ブック.)シート.OLEObjects("オブジェクト名" or インデックス番号)

 Private Sub OLEオブジェクトの取得() 'ActiveXコントロールを取得する  Dim MyOLE As Object  'コントロール名を指定する方法 Set MyOLE = ThisWorkbook.Worksheets("Sheet1").OLEObjects("btn1") 'インデックス番号をメッセージボックスに表示 MsgBox MyOLE.Index  End Sub 
Excel VBA OLEObject
 Private Sub OLEオブジェクトの取得() 'ActiveXコントロールを取得する  Dim MyOLE As Object  'インデックス番号を指定する方法 Set MyOLE = ThisWorkbook.Worksheets("Sheet1").OLEObjects(1) 'オブジェクト名を取得する。 MsgBox MyOLE.Name  End Sub 
Excel VBA OLEObject

3-2.OLEオブジェクトから値を取得する

Objectプロパティを使用します。

変数 = OLEオブジェクト.Object.(値のプロパティ)

 Private Sub OLEオブジェクトの値を取得() 'ActiveXコントロールの値を表示する。  Dim MyButton As Object Dim MyTextBox As Object Dim MyLabel As Object Dim MyMsg As String  Set MyButton = ThisWorkbook.Worksheets("Sheet1").OLEObjects("btn1") 'トグルボタン Set MyTextBox = ThisWorkbook.Worksheets("Sheet1").OLEObjects("txt1") 'テキストボックス Set MyLabel = ThisWorkbook.Worksheets("Sheet1").OLEObjects("lbl1")   'ラベル  MyMsg = MyButton.Object.Caption & vbCrLf & MyTextBox.Object.Value & _ vbCrLf & MyLabel.Object.Caption  MsgBox MyMsg  End Sub 
Excel VBA OLEObject

3-3.OLEオブジェクトの複製、移動

コピーにはCopyメソッドを使用します。

OLEオブジェクト.Copy

OLEオブジェクトの移動には、TOPプロパティとLeftプロパティを使用します。

OLEオブジェクト.Top = 数字: OLEオブジェクト.Left = 数字

 Private Sub OLEオブジェクトの複製と移動() 'ラベルを複製して指定の位置に移動する。  Dim MyLabel As Object  Set MyLabel = ThisWorkbook.Worksheets("Sheet2").OLEObjects("lbl1")   'ラベル  'ラベルをコピーしてシート上に貼り付け MyLabel.Copy ActiveSheet.Paste  'コピーして作成したActiveXコントロールは名前が初期値(ラベルはLabel**)になる。 'TOPを100ポイント、Leftを120ポイントに指定して移動する。 With ActiveSheet.OLEObjects("Label1")     .Object.Caption = "ラベルコピー"     .Top = 100     .Left = 120 End With  MsgBox "ラベルをコピーしました"  End Sub 
Excel VBA OLEObject

4.その他

このリファレンスはOffice2013以降で使用する場合の説明になります。

Amazon Kindle Unlimited

10冊まで同時に読み放題の電子書籍サービス(10万タイトル以上)。

PC・ITカテゴリーの対象数は4,000以上。

スキル、ノウハウ吸収や話題作りにと、ライフ・クオリティを高めてくれます。

関連記事

読み放題の検索結果 4,000 以上

Kindle Unlimitedのコンピュータ・ITカテゴリー

読み放題の検索結果 4,000 以上

Kindle Unlimitedのコンピュータ・ITカテゴリー

Topへ戻る