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

公開日:2017年5月15日

Objectsクラスは、ActiveX コントロール、またはワークシートにリンクなど、指定したExcelシート上にある、全てのOLE オブジェクトを総称するコレクションです。以下、ActiveXコントロールを例にして解説します。

最新のゲームランキング

1時間で更新 Amazon ゲームの新着アイテムや予約商品のベストセラー

最新のゲームランキング

1時間で更新 Amazon ゲームの新着アイテムや予約商品のベストセラー

1.VBA上の位置付け

Excelのメンバー

2.主なメンバー

項目名前
メソッドAdd
Copy
Cut
Delete
Select
プロパティApplication
Border
Count
Height
Interior
Left
Locked
PrintObject
Shadow
Top
Visible
Width

3.使い方

3-1.OLEオブジェクトの追加

ワークシート上に新規のOLEオブジェクトを作成します。

(ブック.)シート.OLEObjects.Add 引数:=・・・

Addメソッドの引数は次の通りです(すべての引数は省略可能です)。

名前説明
ClassType追加するOLEオブジェクトの種類を指定する。例えば、ActiveXコントロールのコマンドボタンであれば、"Forms.CommandButton.1"と指定する。指定する文字列が分からない場合には、手動でOLEオブジェクトをExcelシート上に作成してみる。そのOLEオブジェクトをクリックすると、数式ボックスに指定する文字列が表示される。
HeightOLEオブジェクトの高さを設定する。
LinkOLEオブジェクトをリンクする場合にはTrueを設定する。既定はFalse
DisplayAsIconアイコンや画像を使用する場合にはTrueを指定する。
IconFileNameDisplayAsIconでTrueを指定した場合には、ファイル名を指定する。指定しない場合には既定のアイコンを使用する。
IconIndexアイコンファイルに含まれるアイコンの番号を指定する。
IconLabelアイコンに表示するタイトルを指定する。
Leftワークシートの左上隅を基準としてポイントで指定する。
WidthOLEオブジェクトの横幅を指定する。
Topワークシートの左上隅を基準してポイントで指定する。
 Sub OLEオブジェクトの追加()  'テキストボックスの追加 ActiveSheet.OLEObjects.Add _     ClassType:="Forms.TextBox.1", _     Width:=130, _     Height:=25, _     Top:=50, _     Left:=75  '追加したテキストボックスに文字を入力 '文字の設定は、リファレンス「OLEObjectクラス」を参照(OLEObjectsクラスではないので注意)。 ActiveSheet.OLEObjects("TextBox1").Object.Value = "テキストボックス追加"  End Sub 
Excel VBA OLEObjects

3-2.OLEオブジェクトの各種設定

各種のプロパティを使用します。3-1の通り、Addメソッドの引数を使用しても、OLEオブジェクトの横幅、高さ、位置などを設定することができますが、OLEObjectsクラスのWidth、Height、Top、Leftプロパティを使用しても設定が可能です。

さらにOLEオブジェクトの塗りつぶしや枠線、影付、表示などについても設定することができます。

複数のプロパティを使用するため、Withステートメントの利用をお勧めします。

(ブック.)シート.OLEObjects.プロパティ

OLEObjectsクラスはExcelシート上の「全て」のOLEオブジェクトに適用されます。例えば、Widthメソッドで横幅を120に設定した場合には、全てのOLEオブジェクトが120に設定されることになります。

特定のOLEオブジェクトのみに適用する場合には、For Each ~ Inステートメントを使用します。

 Sub OLEオブジェクトの変更とOLEオブジェクト数の表示()  'btn1の設定を変更する。 'OLEオブジェクトの数を表示する。  Dim MyOLE As Object  'ワークシートSheet1上の全てのOLEオブジェクトに対して繰り返し実行する。 For Each MyOLE In ThisWorkbook.Worksheets("Sheet1").OLEObjects    'MyOLEの名前がbtn1の場合のみ変更する。  If MyOLE.Name = "btn1" Then      With MyOLE       .Width = 130              '横幅130       .Height = 25              '高さ25       .Top = 50                 '上位置50       .Left = 75                '左位置75       .Shadow = True            '影を付ける       .PrintObject = False      'ボタンを印刷しない     End With      '追加したテキストボックスに文字を入力     '文字の設定は、リファレンス「OLEObjectクラス」を参照(OLEObjectsクラスではないので注意)。     MyOLE.Object.Caption = "変更後のボタン"    End If  Next  'ワークシートSheet1に存在するOLEオブジェクトの数を表示 MsgBox "OLEオブジェクトの数は" & _         ThisWorkbook.Worksheets("Sheet1").OLEObjects.Count & "です"  End Sub 
Excel VBA OLEObjects

↓実行結果

Excel VBA OLEObjects

4.その他

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

Amazon Kindle Unlimited

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

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

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

関連記事

Amazonタイムセール

注目のタイムセール商品やおすすめキャンペーン、お買い得商品が満載

Amazonタイムセール

注目のタイムセール商品やおすすめキャンペーン、お買い得商品が満載

Topへ戻る