質問: エクセルのセルに入力した文字を「*」でマスクしたい セルに入力した文字を「*」で表示したいのですが、どなたか教えていただけませんか? 数字だけのときは、セルの書式設定で表示形式のユーザ定義で「*」表示に設定するとできるのですが、英字が入ると入力どおりの表示になってしまいます。
回答: エクセルのセル(rangeオブジェクト)には、passwordプロパティが無いので無理です。 文字列に対する書式設定が無いので表示形式からも無理です。 質問は 隠そうとする面があると思うのですが、どこまでやればよいのでしょう。 セルの見た目 数式バー部 ーー 対象セルは限られていますか。1、2のセルとか。 その値は計算やシートの処理に使いますか。 ーー 小生の私の思いつきだがvbaでやれる範囲では 値を配列に記録(またはテキストファイルに保存。こちらが良い) そしてセルの値は「**」にする。 配列やファイルのその後の処理は質問者の都合による。 ーー モデル的にやってみた dim d(10) private sub commandbutton1_click() for i = 1 to 10 msgbox d(i) next i end sub a1:a10でセルの値が変わると、値を退避させて、セルは「**」で表示 private sub worksheet_change(byval target as range) set myrng = application.intersect(target, range("a1:a10")) if not myrng is nothing then application.enableevents = fale static i i = i + 1 d(i) = target target = "***" application.enableevents = true end if end sub