プロが教える店舗&オフィスのセキュリティ対策術

Excelで0埋めは表示形式で対応できますが、
文字列では同じような方法で対応できませんか?

たとえば、名前(カナ)を20文字で入力する場合に、あまった部分には"*"を表示するようにしたいのです。

A 回答 (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
    • good
    • 1

=B1&LEFT(REPT("*","20"),10-LEN(B1))


B1に文字列があって、20文字以内の例ですが。
    • good
    • 0

入力->"カタカナ"


表示->"カタカナ****************"

というのを実現するには、入力直後に

書式->"@!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*"

とすれば可能なようです。
入力された文字の長さを調査して不足分を"*"で埋めるということです。

マクロしかないと思いますね!
    • good
    • 0

こんにちは。



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

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

    • good
    • 0

書式設定はわかりませんが、数式ではダメですか?


=A1&REPT("*",20-LEN(A1))
とか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/17 12:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!