2017-07-15 18 views
0

セルA1に「こんにちは、これは長い行です」というテキストのExcelスプレッドシートがあります。私はA1:G1細胞を選択しました。MS Excel VBAで "範囲選択"の横方向の整列でフォーマットされた範囲を見つける

マクロ内でSelection.HorizontalAlignment = xlCenterAcrossSelection行を使用すると、選択したセルの書式が、横向きのテキストアラインメントオプション "選択範囲の中心"を使用して行われます。

どのように逆の操作を行う、つまりA1セルを指定してA1:G1の範囲を返す関数を書くことができますか?ここで

+0

の正しいenunerationであることを前提としてい? 「中央」書式のセルの連続したブロック?ギャップはなく、カラム幅は1つだけですか? –

答えて

0

がスタートです:A1与えG1:

Public Function CAS(r As Range) As String 
    Dim i As Long, rng As Range 
    CAS = "" 

    If r.HorizontalAlignment H<> 7 Then Exit Function 
    Set rng = r 

    For i = 1 To Columns.Count 
     If r.Offset(0, i).HorizontalAlignment <> 7 Then 
      CAS = rng.Address(0, 0) 
      Exit Function 
     Else 
      Set rng = Union(rng, r.Offset(0, i)) 
     End If 
    Next i 
End Function 

これはは、それはあなたの質問A1を返すための基準はどのようなものから明らかではありませんHorizontalAlignment

関連する問題