Dim strFormat As String
strFormat = "xlCenter"
Columns("A:C") .HorizontalAlignment = strFormat
この様にstrFormat変数に入れた文字列(定数)で書式を設定したいのですが
何か簡単且ついい方法はありますか?
因みに、
strFormat = "-4108"
Columns("A:C") .HorizontalAlignment = Val(strFormat)では
上手く設定出来ましたが、今回は "xlCenter"という文字列で何か
簡単且ついい方法をお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.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
No.2
- 回答日時:
やりたいことの趣旨が読み取れない。
そもそも、xlCenter はExcel VBAで名前付き定数として用意されていますので
敢えてそれをごちょごちょする意味は無いのでは?
それとも Enum ステートメントのこと?
http://excel-ubara.com/excelvba1/EXCELVBA409.html
No.1
- 回答日時:
xlCenterってのは整数型なので
fmt = xlCenter
Columns("A:C").HorizontalAlignment = fmt
とするだけでいいんですが、どうしても文字列にしたいんなら、(使えるかどうかはVBAのバージョンによりますが)
strFormat = "xlCenter"
Columns("A:C").HorizontalAlignment = Eval(strFormat)
でも同じ結果ではあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) エクセルのマクロを教えてください。 1 2022/03/30 09:29
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) 条件付き書式の設定方法を教えて下さい。 2 2023/04/14 18:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
エクセルで文字列の最大値を抽...
-
Left関数とRight関数を合わせた...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
VBAでの Replace関数で、ワイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
エクセル 数値データを桁をそ...
-
VBの「As String * 128」とは?
-
Pro c/c++ でホスト変数の後に....
-
[C言語]fputsとfprintfの違い
-
C言語で文字列の中の文字列のカ...
-
VBScriptでEUC文字列をSJIS文字...
-
Msgboxの×が押されたとき
-
16進数を10進数に簡単に変換す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
sedなどで、特定の文字列の後の...
-
MS SQLServer のSQLで文字列の...
-
Left関数とRight関数を合わせた...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
おすすめ情報