web-dev-qa-db-ja.com

式を変更せずにセルの値(テキストを表示)をVBAで変更するにはどうすればよいですか?

このVBAマクロに問題があります。

Sub demoChangeText()
    Application.Range("B2").Value = "Overidden text"
End Sub

私のテストは ここ です。このマクロを実行するには、Excelで開き、Ctrl+F8を押して、demoChangeTextを選択します。

その結果、このマクロはセルB2(表示されるテキスト)の値を変更しますが、式をクリアします。 B2の値を変更する必要がありますが、数式も残す必要があります。

だから私の質問は式を変更せずにセルの表示テキストを変更するにはどうすればよいですか?

[〜#〜]更新[〜#〜]

私は解決しようとしているので、この質問をします この問題

7
Davuz

根本的な要件が何であるかを判断するのは少し難しいので、これが役立つかどうかはわかりませんが、とにかくここに行きます:

セルのdisplayに影響を与えるものがいくつかあります。

  1. 入力された値(定数の場合)
  2. 計算の結果、その式の場合
  3. セルのフォーマット
  4. セルの条件付きフォーマット(存在する場合)

提供されているサンプルシートには、_22_の文字列結果を返す=ROW()&COLUMN()の数式があります。

セル形式を適用することで、これをdisplay何か他のものにすることができます。
たとえば、_0;0;0;Ov\e\r\ri\d\d\e\n t\ext_の形式では、any文字列値が_Overridden text_として表示されます。

これは、VBAで適用できます。

_Range("B2").NumberFormat = "0;0;0;Ov\e\r\ri\d\d\e\n t\ext\s"
_

または

_Range("B2").NumberFormat = "0;0;0;""Overridden texts"""
_
12
chris neilsen