• ベストアンサー

EXCELについて

こんにちは、困っているので教えてください。 セル内に ○○-○○ ○○○-○○ ○○○○○-○○○○○○ ○○-○○○○○○ 上記のように不規則な文字が入力されており文字と文字の間に【-】が入力されています。 その【-】を中心に文字を揃えたいのですがどのようにしたらよろしいでしょうか? 既に入力されている元のデータはあるのですが、【中央揃え】をしても当然うまくいかないので、【-】を中心に揃える方法は無いものでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.5

セルの表示形式ではできませんので、代案として 文字入力されているセルの右側に2~3セルを使って一番左は右寄せ、右は左寄せで表示させる。 例)3セル使う場合 A1にデータがあるとすると B1=LEFT(A1,FIND("-",A1)-1) で右揃え C1="-" で中央揃え D1=RIGHT(A1,LEN(A1)-FIND("-",A1)) で左揃え こういうのはいかでしょうか?

sinnji0429
質問者

お礼

ご回答有難う御座いました。おかげさまで解決出来ました(^^) この方法で無事解決出来ました。有難う御座います。

その他の回答 (5)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.6

VBAを利用する方法もあります。如何でしょうか。 データが入力されているセル範囲とワークシート名、半角文字の時は半角Spaceに変更してください。 Sub 揃える() Dim wCnt As Integer Dim wMax As Integer Dim wRng As String ' wRng = "A1:A100" 'データが入力されているセル範囲 wMax = 0 '【-】の左側の最大文字数を求める For Each c In Sheets("Sheet1").Range(wRng) 'データが入力されているWorksheet名("Sheet1") wCnt = InStr(1, c.Value, "-") If wCnt > wMax Then wMax = wCnt End If Next '【-】を中心に文字を揃える For Each c In Sheets("Sheet1").Range(wRng) wCnt = InStr(1, c.Value, "-") c.Value = String(wMax - wCnt, " ") & c.Value '文字が全角の時全角Space/半角の場合は半角Space Next End Sub '(1) Alt+F11 (ツール -> マクロ -> Visual Basic Editor) '(2) 挿入 -> 標準モジュール -> 上記のモジュールを貼り付けて実行(F5を押す)する

sinnji0429
質問者

お礼

ご回答有難う御座いました。おかげさまで解決出来ました(^^)

  • FEX2053
  • ベストアンサー率37% (7991/21373)
回答No.4

___○○-○○ __○○○-○○ ○○○○○-○○○○○○ ___○○-○○○○○○ こんな風に"_"に空白文字が入ってよければ、こんな方法があります。 =REPT(" ",6-FIND("-",A1))&A1 "-"までの文字数が"-"を含めて最大6文字なら、 この式で左側に"-"を揃えるための空白文字が入ります。 文字数が違う場合は上の式の"6"を適当な数字に入れ替えて下さい。

sinnji0429
質問者

お礼

ご回答有難う御座いました。おかげさまで解決出来ました(^^)

回答No.3

1ですがあまりに身も蓋もないもので、なんのためにそうしたいのですか? どうしてもというなら、データ先頭に「-」位置が揃うようスペース入れてください。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

データを入力したセルの表示を「-」でそろえるのはできませんが、別のセルに表示して良いなら以下の式を使ってみてください。 「△」は空白を表します。ただし固定フォントを使わないと微妙にずれると思いますが =REPT("△",6-FIND("-",A1&"-"))&A1

sinnji0429
質問者

お礼

ご回答有難う御座いました。おかげさまで解決出来ました(^^)

回答No.1

ありません。

関連するQ&A

専門家に質問してみよう