• 締切済み

Excelの文字列の固定長埋め

Excelで0埋めは表示形式で対応できますが、 文字列では同じような方法で対応できませんか? たとえば、名前(カナ)を20文字で入力する場合に、あまった部分には"*"を表示するようにしたいのです。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 一応、マクロを考えました。 シートモジュールに貼り付けてください。 作っている最中で、おそらくは、半角カタカナを入力しているだろうと思いました。 ですから、現在は、半角カタカナでなければ、変更されません。 Private Sub Worksheet_Change(ByVal Target As Range)   Dim myStr As String * 20   If Target.Column <> 1 Then Exit Sub   Application.EnableEvents = False   For Each c In Target.Cells    If VarType(c.Value) = vbString Then      If StrConv(WorksheetFunction.Phonetic(c), vbNarrow + vbKatakana) = c.Value Then       myStr = c.Value       c.Value = Replace(myStr, Space(1), "*")      End If    End If   Next   Application.EnableEvents = True End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

=B1&LEFT(REPT("*","20"),10-LEN(B1)) B1に文字列があって、20文字以内の例ですが。

noname#22222
noname#22222
回答No.4

入力->"カタカナ" 表示->"カタカナ****************" というのを実現するには、入力直後に 書式->"@!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*" とすれば可能なようです。 入力された文字の長さを調査して不足分を"*"で埋めるということです。 マクロしかないと思いますね!

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 それは、プログラミングの考え方ですね。文字列に対しては、最初から枠組みが決められていて、仕組みとして出来ないのだと思います。ですから、マクロ以外には、ワークシート上では実現できないと思います。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

セルの書式設定→表示形式→ユーザ定義で@**で如何でしょうか。

noname#123709
noname#123709
回答No.1

書式設定はわかりませんが、数式ではダメですか? =A1&REPT("*",20-LEN(A1)) とか。

mu_4108
質問者

お礼

ありがとうございます。 助かりました。

関連するQ&A