
次のようなハイフンで区切られたデータがあります。
A
1| 2-8
2| 0-12345
3| 15-123
4| and so on
ハイフンが中央になるように Word または Excel の内容を揃えるにはどうすればよいですか?
答え1
Excel 向けソリューション
テキストを中央揃えにすることを話していると仮定すると、単一列(行ではありません)
VBAを使用すると、1回のクリックで3つのステップを実行できます
- セルを固定幅のフォントに設定します。コンソラス
- セルを中央に配置する
- ハイフンが中央に来るまで文字列の先頭または末尾にスペースを追加します
Sub CenterHyphenatedContent()
For Each cell In UsedRange
If InStr(cell.Value, "-") > 0 Then
cell.Font.Name = "Consolas"
cell.HorizontalAlignment = xlCenter
intLenLeft = InStrRev(cell.Value, "-") - 1
intLenRight = Len(cell) - InStr(cell.Value, "-")
intDiff = Abs(intLenLeft - intLenRight)
If intLenLeft > intLenRight Then cell.Value = cell.Value & Space(intDiff)
If intLenLeft < intLenRight Then cell.Value = Space(intDiff) & cell.Value
End If
Next
End Sub
ビフォアーアフター
注意: このコードは余分なスペースを追加するため、Excelデータを変更します。
答え2
Word では、タブを使用して同様のことを実現しました。たとえば、乗算記号で一連の行を揃えたいと考えました。これを実現するために、2 cm の位置に右揃えのタブ、2.25 cm の位置に中央揃えのタブ、2.5 cm の位置に左揃えのタブを配置しました。すると、各行のテキストは次のようになりました。
タブ「最初のテキスト」タブ×タブ「2番目のテキスト」
答え3
列 B と列 C に数式を入力して、列 A の値をハイフンの左側と右側に分割することができます。たとえば、例を使用して、left()
B1 に「2」を入力し、right()
C1 に「-32」を入力します。次に、列 B を右揃えにし、列 C を左揃えにして、列 A を非表示にします。