[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの水平位置の指定(VBA)』(なご)
ユーザーフォームからデータをワークシートに登録しています。 登録したデータの、L列〜U列の中に「-」(ハイフン)があったらそのセルの配置を中央指定したいと思い、
Dim rng As Range Dim Fc As Range Dim i As Long Dim wb As Worksheet
Set rng = wb.Range("L" & i & ":U" & i) Set Fc = rng.Find(What:="-")
If Not Fc Is Nothing Then Fc.HorizontalAlignment = xlCenter End If
このようにしたのですが、i行のL列〜U列の間で「-」でないセルがあると、その列以降は 中央配置になりません。
Rangeは塊ごとでないと有効にならないのでしょうか?
指定範囲の中の「-」を全て中央配置にするにはどうしたらいいでしょうか?
Excelは2010です
Findメソッドで、複数個のデータを検索するのって結構面倒なんですよ
最初の検索は、Findメソッドでよいのですが、2回目以降の検索は、FindNextまたは、 FindPreviousを使わなくてならなかったり・・・。
又、検索条件は、前回検索条件を引きずるのでオプションを省略すると、 違った結果が出てきたり・・・。
私は、面倒なのでサブプロジャー化しています。
↑ここのget_findcell というプロシジャーが最新だったと思います。
検討してみてください
ichinose@昼休み終わり・・・、お仕事再開
2010 であれば、置換時に置換文字列の書式指定ができます。 設定はマクロの記録で取れるので、利用されてみてはどうでしょうか。 (Mook)
Sub Sample() With Application.ReplaceFormat .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With Columns("L:U").Replace What:="-", Replacement:="-", LookAt:=xlWhole, ReplaceFormat:=True End Sub
>置換時に置換文字列の書式指定ができます。 2002から可能なので「2010であれば」というのは若干違和感が。 (ねむねむ)
そうでしたか。 失礼しました。 (Mook)
皆様ありがとうございます。
簡単そうで結構難しいんですね。。。 表の見栄えを考えて中央配置にしたいと思ったのですが、やってみたら処理がちょっと重くなったので もう一度考えてみます
(なご)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.