memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

変数が定義されていません with mso定数

今日はVBAで30分はまりました。

以下の行の「msoTextOrientationHorizontal」で「変数が定義されていません」というエラーが出るのです。他にも「mso〜」のところで同様のエラーが。

ActiveSheets.Shapes.AddLabel(msoTextOrientationHorizontal, p.X1 + 1, p.Y1, p.X1, p.Y1)

msoというプレフィクスが付いた定数はOffice用にMicrosoftが定義しているもののようです。「自分で定義しておいて変数とは何事?」と思い、Excelでマクロ記録をしてみても、同様に「msoTextOrientationHorizontal」というソースを生成します。。。

色々調べた結果、「参照設定」の「Microsoft Office XX.X Object Library」のチェックが外れていたことが原因でした。これにチェックを入れることでエラーはなくなりました。

なぜ、チェックが外れたのかわかりませんが。。。30分無駄になりました。意味不明なエラーが出たらチェックしてみてください。