[[20130424115958]] 『セルの水平位置の指定(VBA)』(なご) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの水平位置の指定(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を使わなくてならなかったり・・・。

 又、検索条件は、前回検索条件を引きずるのでオプションを省略すると、
 違った結果が出てきたり・・・。

 私は、面倒なのでサブプロジャー化しています。

[[20120306165824]] 

 ↑ここの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.