アプリ版:「スタンプのみでお礼する」機能のリリースについて

Dim strFormat As String

strFormat = "xlCenter"
Columns("A:C") .HorizontalAlignment = strFormat

この様にstrFormat変数に入れた文字列(定数)で書式を設定したいのですが

何か簡単且ついい方法はありますか?

因みに、
strFormat = "-4108"
Columns("A:C") .HorizontalAlignment = Val(strFormat)では
上手く設定出来ましたが、今回は "xlCenter"という文字列で何か
簡単且ついい方法をお願いします。

A 回答 (3件)

>"xlCenter"という文字列で何か簡単且ついい方法をお願いします。


もう少し、基本的なことを勉強したほうがよいでしょうね。

'xlCenter' というのは、CellFormat オブジェクトのプロパティに使われる、
「組み込み定数」といいます。(オブジェクト・ブラウザで参照してください)

それを変数に置くというのは、まったく意味がありません。
「組み込み定数」というものは、時々、製作者側のつごうなのか、Versionの違いなのかで、中身の数値を変えらていることがありますが、この定数自体の名称、例えば「xlCenter」の文字列はそのままにしています。そして、ただの数値に文字列として意味を持たしているわけです。

>strFormat = "-4108"
だから、このようなことをせずに、あえてユーザー側は、既存にあるものは、そのまま利用すれば済むようになっています。

したがって、条件によって替えたいのでしたら、Switch やIIf 関数などを利用しましょう。(あまり、そういう方法は取りませんが、あえて使うとすれば、そうなります)

Dim i As Integer
Dim para As Integer
i =1
para = Switch(i = 1, xlCenter, i = 2, xlLeft, i = 3, xlRight)
Columns("A:C").HorizontalAlignment = para
「変数に入れた文字列(定数)で書式を設定し」の回答画像3
    • good
    • 0

やりたいことの趣旨が読み取れない。


そもそも、xlCenter はExcel VBAで名前付き定数として用意されていますので
敢えてそれをごちょごちょする意味は無いのでは?

それとも Enum ステートメントのこと?
http://excel-ubara.com/excelvba1/EXCELVBA409.html
    • good
    • 0

xlCenterってのは整数型なので



  fmt = xlCenter
  Columns("A:C").HorizontalAlignment = fmt

とするだけでいいんですが、どうしても文字列にしたいんなら、(使えるかどうかはVBAのバージョンによりますが)

  strFormat = "xlCenter"
  Columns("A:C").HorizontalAlignment = Eval(strFormat)

でも同じ結果ではあります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!