Square Beat Engine

Blog for variety of things…

MS-Office

[Excel][VBA] オブジェクト名のワナ

投稿日:2015-10-13 更新日:

Excel 2010のVBAで、ActiveXコントロール(VBA内ではOLEObject)の名前に罠があることに気づいたのでメモ。
「OLEObjectがうまく動作しない!」と嘆く誰かを1人でも救いたい。

OLEObjectの名前は31文字まで!

OLEObjectのプロパティで名前を32文字以上に設定しても、エクセルのオブジェクトとしては31文字までで切り捨てられてしまうようだ。
そのため、以下のコードが正しく動作しなかった。

Excel2007では32文字以上もOK

ただし、32文字以上でも、Excel2007では正しく動作した。
Excel2010で動作テストをしたところ、上記の問題が発覚したわけだ。

大変微妙な仕様変更なので、なかなか気づきにくい部分かと思う。

以上!

-MS-Office

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[Excel][VBA] Selectメソッドは99%不要

エクセルで、A1セルを選択した後、「abc」という文字列を入力することケースを考えてみます。 この操作をマクロに記録すると、以下のようなコードが生成されるでしょう。 [crayon-5c920ca6e …

[Excel][VBA] 名前付きセル範囲の参照

VBAで名前付きセル範囲を参照する方法は複数ある。 よく混乱するので、ちょっと整理しておく。 コード例

それぞれの方法の特徴 Rang …

[Excel][VBA] 選択中のセルにハイパーリンクをセット

URLが入力されたセルがいくつもあるとき、それぞれのセルにハイパーリンクを設定するマクロを紹介する。 コード

参考: 手動でのハイパー …

[VBA] 数値からRGBを求める関数

VBAでは、RGB関数を実行して数値を求めることは可能だが、数値からRGBの各値を得る関数は存在しない。 プロパティから色を取得すると数値で表現されるため、数値からRGB値を求める関数を作成してみた。 …

[PowerPoint][VBA] スライドの追加

パワーポイントのスライドを作成する方法。 メソッド 単にスライドを挿入する場合は、PPT.Slides.Addでよい。 今回はテンプレートファイルからスライドをコピーする形を取ったため、いくつか工夫が …