• ベストアンサー

UserFrom Labelにセルの装飾文字を表示

Excel 2003 VBAにて UserFormに配置してあるLabelに セルの内容を表示させたいのですが・・・ 値は表示されますが、装飾文字(取り消し線、下線など)も セルの表示内容そのまま Labelにも表示できないのでしょうか? Sub 表示() userform1.Label1 = Range("A1") userform1.Show End Sub

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは。 簡単に言うと、ラベル自体には、Captionにしても、Pictureにしても、直接、セルのプロパティを反映するようなプロパティは持ちません。 UserForm1.Label1 = Range("A1") ←暗黙的(Default)で、Valueプロパティになる。 ですから、書式情報のプロパティはありません。 ラベルは、いわゆるテキストを反映するだけのもので、書式を表現するような複合的な機能を持ちません。そこで、VB6のランタイムから、他にコントロールはないものか探してみましたが、こんどは、開発用のライセンスがないと、別のコントロールは使えません。 簡単に不可能だとはいいませんが、一応、通常のVBAでは、この質問はできない、ということになります。

その他の回答 (2)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

お望みの表示になるかどうかは試していませんので何とも言えないのですが。 セルの「取り消し線の有無」を取得する   Cells(1, 1).Font.Strikethrough で、出来ます。 「ラベルに取り消し線を引く」   Label1.Strikethrough = True で出来ます。 組み合わせて、   Label1.Strikethrough = Cells(1, 1).Font.Strikethrough で、A1に合わせて「全体に」付けたり消したり出来ると思います。 が、確か・・「セルの一部に取り消し線」だと、 前者がNullを返してきたような気がするので、 このままだとお望みの処理にはならないかもしれません。 一応、参考程度に。

mi-tan
質問者

お礼

そうなんですよね~ 「全体に」は出来るんですけど・・・ 「一部」となると無理なんですかね???(TT;)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

取り消し線などの表示は出来ないですが、 「表示形式」であれば、以下の様にすれば出来ます。 Sub 表示() UserForm1.Label1 = Range("A1").Text UserForm1.Show End Sub

mi-tan
質問者

お礼

.text をつけても同じ結果ですね~ そもそも、装飾文字は反映されない仕様でしょうか?

関連するQ&A