アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2010を使っておりますが、セルに文字列を入力すると自動で文字と文字の間に1文字分の空白ができて表示されるようにする設定方法はありませんか?
例えば、「田中一郎」と入力すると「田 中 一 郎」と表示されるようにしたいと思っております。

おそらく「セルの書式設定」→「表示形式」→「ユーザー定義」から設定するんじゃないかと思いますが、その方法がわかりません。

どなたかお願いします。

A 回答 (6件)

ご希望のような表示をする表示形式はありません。


近いもので、セルの書式設定→配置タブ→文字の配置の横位置で「均等割り付け」を選択しセル幅を調節されては如何でしょうか?
    • good
    • 1
この回答へのお礼

ありがとうございます。
やはりそういった機能はないのでしょうか。。

お礼日時:2015/08/19 08:57

こんばんは。



少し、おじゃまさせていただきます。この件について考えてみました。
表計算周りで解決するなら、私も、#1さんの均等割り付けしか思いつきません。

すでに、#4,#5 でご説明がありますが、セルの書式のユーザー定義からの方法は、私のほうでも、書式を制御する文字を、ひとつずつ調べてみましたが、数値は別として、文字は文字列として、ひとまとめになってしまい、いずれのバージョンでも、個々の文字の間にはスペースは入れられません。

お勧めとしては、均等割り付けを良くお使いになるのでしたら、「クイックアクセスツールバー」をカスタマイズして、一覧の中から、均等割り付けをピッアップして、表示させればよいのではないかと思います。

>「田中一郎」と入力すると「田 中 一 郎」
>希望どおりに動作しました。(#2欄)

物理的に空白値を、文字列に入れることをお望みで、マクロ/VBA以外ですと、解決の目処は立たないのではないかと思います。関数は、文字のあるセルを加工できるわけではないので別です。

また、マクロもいろんな種類、いろんな方法がありますから、必ずしも、拡張子を変えなくてはならないわけではありません。もう一度、再考することを願います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
均等割り付けは初歩的な機能ですが、試してみたら使えました。
勉強になりました。

お礼日時:2015/08/21 09:20

私が知る限りでは、文字列の表示形式は文字列がどんな長さでも@一文字のみで表されます。


3文字入れたいから「@ @ @」としたら同じ文字列が3回繰り返されるだけです。

例えば数値なら、0 0 0などとすることで桁ごとに区切り、間にスペースを入れたりできますが、文字列は一文字ごとに分断して表示をさせることは少なくとも一般機能では設定できないと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ここで質問する前に「@ @ @」と入力して失敗しているので、おっしゃるとおりだと思います。

お礼日時:2015/08/21 09:11

>";;;_ @"



これって試して書いてるんですかね?
表示形式では文字列は一塊で@のみで表されます。文字列を分断して表示するような方法は一般機能ではできないと思うんですが。
私が知らないだけで2010だとできるんでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
実はここで質問する前に「@ @ @・・」と書式を設定して失敗しています。文字列が一塊で認識されていたのが原因だったのですね。

お礼日時:2015/08/21 09:08

ユーザー定義でスペース(空白文字)などを挿入する場合はアンダーバー(_)に続いて挿入する文字を入力する。


ユーザー定義に初めからこの書式が設定されているのではないか。
上から6つ目などの後ろのほうに
";_ @_ "
などと書かれた定義があると思う。(これは文字の前後に空白文字を挿入するという意味)
「数値のプラス;数値のマイナス;数値のゼロ;文字列」
の順に「;」で区切って書式を定義できるので、数値に関して定義を行わないのであれは数値に関しては定義をせず
";;;_ @"
でよいだろう。
    • good
    • 0
この回答へのお礼

ありがとうございます。
;で区切って書式を定義できるというのは勉強になりました。

お礼日時:2015/08/21 09:06

こんばんは!



VBAになりますが、一例です。
具体的な範囲が判らないので、A列限定としてみました。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A列セルにデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から//
Dim k As Long, str As String, buf As String
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If Len(.Value) > 1 Then
Application.EnableEvents = False
str = .Value
For k = 1 To Len(str)
buf = buf & Mid(str, k, 1) & " "
Next k
.Value = Left(buf, Len(buf) - 1)
Application.EnableEvents = True
End If
End With
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
希望どおりに動作しました。

しかし、やはりVBAまで使わないとダメなんでしょうか。

お礼日時:2015/08/19 09:04

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