Square Beat Engine

Blog for variety of things…

MS-Office

[Excel][VBA] リストボックスがクリアされてしまう問題

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

ActiveXコントロール(OLEObject)のリストボックスは、セルに何かを書き込んだりすると、選択状況がクリアされてしまう。
正確には、自動計算をOFFにしておけばクリアされないのだが、通常は自動計算ONになっているはずだ。

セル更新の前にリストボックスの値を取得して、元に戻すようなVBAを作成したが、自動計算はそのマクロの実行前になされてしまうので、残念ながら対策としては失敗だった。

結局、他のセルの更新をしないで済むように、コンボボックスを新たに作った。

OLEObjectを設置するようなUI重視のツールでは、入力規則などセルを使うのは避けた方が無難なようだ。

以上!

-MS-Office

執筆者:


comment

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

関連記事

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

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

[VBA] ユーザー定義型の使い方

VBAでは、自分で型を定義することができる。 異なる値をひとまとめに扱いたいときに使うと、取り扱いがぐっと楽になる。 ユーザー定義型の構文 宣言部分(モジュール内の冒頭、Optionalのすぐ後)に、 …

[Excel][VBA] セルの値を転記する方法

エクセルでマクロを作る際に、もっとも基本となるのは、「セルの値を転記する」という処理だと思います。 セルの値を転記する方法は、いくつか存在します。 クリップボード経由でコピーする。 値を直接転記する。 …

[Excel][VBA] エクセルVBAではValueプロパティを指定しよう

前回は、自動記録マクロの問題点を3つ挙げ、1つめのSelectメソッドの無駄を指摘しました。 今回は、2つめのFormulaR1C1プロパティについて考えます。 プロパティの指定 FormulaR1C …

[VBA] Excel/PowerPointのグラフ上の全てのラベルを表示させるマクロ

MS Officeでは、グラフのことを主にチャート(Chart)と呼ぶので、以下ではチャートと呼ぶことにする。 さて、Excel2007のチャートにラベルを表示する際、複数の系統があると、1つずつ手作 …