• ベストアンサー

エクセル2010 セルの書式設定

数値の入ったいくつかのセルをメモ帳に貼り付けた時、一の位文字位置が合う様にセルの書式設定を行いたいのですが、上手く出来ません。 A1 1,000 A2  10 A3  -100 A4   0 上記のようにプラス表示、マイナス表示、0の場合もあります。 ユーザー定義で???.???を使用し、1の位を合わせましたが、マイナス表示の場合、「-」が離れた位置に付いてしまいました。 どのように設定すればいいか、教えてください ★この質問画面の10のようにずれないように表示させたいのです

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

  • ベストアンサー
回答No.5

この手の疑問を理解するには・・   エクセルというソフトが数値と判断できる値を   ユーザーが数値として認識しやすいように   セルと呼ばれる表示領域に右詰めで表示している だけであるという事を十分に理解しておかないといけないのですが、 そこらへんは大丈夫ですか? で、エクセルで複数セルをコピーすると、 「タブ区切りテキスト」としてクリップボードに一時保管されます。 コレを「メモ帳」などのテキストエディタに貼り付ける際、 このタブ位置については再現が可能なのですが、 メモ帳には上記の「数値かどうか判断する機能」がついていないので 右詰め・桁揃えなどは再現できないわけです。 そんなわけで、 > 上手く出来ません。 エクセルの一般的な機能だけで頑張ろうとすると、 誰がやってもうまくできません。 VBAを駆使して頑張れないことはないと思いますが、 そこまで頑張って「メモ帳で見せる」理由ってどこかにありますか? 新しいシート(あるいはブック)を作って、 そこに貼り付けても結果は一緒ではないですか? おそらく、再考の余地があると思いますよ。 強引なやり方を一つ挙げると、例えば質問文中のサンプルだと 任意のセル・・まぁ、B1セル辺りに   式:=REPT(" ",9-LEN(TEXT(A1,"#,##0")))&TEXT(A1,"#,##0") こんな具合で指定、下方向にフィルで仕込んでおいて、それらをコピー。 メモ帳に貼り付けるとおそらく桁が揃います。 式の中の「9」という数字は適当です。 桁区切りのコンマ「,」を含んで、冒頭の空白を含んで、 表示したい桁数を指定してやります。 要するにタブ区切りに「固定長テキスト」の考え方も混ぜちゃおう というやり方ですね。 このサンプルの場合はマックスが5桁(1,000)なので、 本当は5以上ならOK。 関数は3種類・・詳細は別途お調べくださいませ。 エクセルでは大いにずれまくって表示されますが、 プロポーショナルフォントがどうのこうの。 メモ帳で揃うのは等幅フォントがうんぬんかんぬん・・というからくり。 コレもまた説明しだすと長くなるので 興味がおありなら別途お調べくださいませ。 ついでに。 > ユーザー定義で???.???を使用 数値の表示形式 - ユーザー定義、のことでしょう。 この場合「?」は「有っても無くても任意の1文字」という意味で扱われます。 で、エクセルの表示形式における「1文字」には符号は含まれないので、 > 「-」が離れた位置に という状態に陥るわけですね。 桁数も正負も一律でない場合は「?」は使わない方が無難ですよ、 というお話でした。 あ、そうそう。 小数を含む数値を扱うなら、   式:=REPT(" ",12-LEN(TEXT(A1,"#,##0.00")))&TEXT(A1,"#,##0.00") にすると小数二桁を強制表示しますよ。

fumi234
質問者

お礼

ありがとうございました。教えていただいた数式を利用し、思っていた通りの物を作ることができました。「REPT」関数を初めて知りました。教えていただいた数式を貼り付け、必要箇所に手を加えて完成させたので、もう少し時間をかけて数式を理解し、今後にも活用させたいと思います。 本当にありがとうございました。

その他の回答 (4)

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.4

小数点以下が無い。 12桁で揃える。 VBAを使ってもいい。 ということであれば、 メモ帳にコピーしたいセルたちを選択して 以下のマクロを実行後 メモ帳に貼り付けることで 期待の動きになると思います。 Sub MyTest2()  Dim wkCounter As Integer  Dim wk1 As String  Dim wk2 As String  Dim c As Range  Const FixLen = 12  wk2 = ""  For Each c In Selection   wk1 = Format(c.Value, "#,##0")   wk1 = Space(FixLen - Len(wk1)) & wk1   wk2 = wk2 & wk1 & vbCrLf  Next  With New MSForms.DataObject   .SetText wk2   .PutInClipboard  End With End Sub なお、クリップボードを扱うため、上記VBAでは、 https://www.moug.net/tech/exvba/0150091.html を参考に参照設定が必要です。

fumi234
質問者

お礼

ありがとうございます。無事に解決致しました。

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

色んなケースのテストをやってないが、 例のデータ A1:B4 A1 1,000 A2 10 A3 -100 A4 0 標準モジュールに、VBAのコード作成 Sub test01() Open "数表示.txt" For Output As #1 For i = 1 To 4 suu = space(12) x = Cells(i, "B") y = Format(x, "#,##0") Mid(suu, 10 - Len(y)) = y Print #1, suu Next i Close #1 End Sub 実行しする。 そしてメモ帳で「数表示.txt」を開くと, 画面に 1,000 10 -100 0

fumi234
質問者

お礼

ありがとうございます。無事に解決致しました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>★この質問画面の10のようにずれないように表示させたいのです できません。 Excelの表の中ではセル単位で表示位置を左寄せ、中央揃え、右寄せのようにできますが、メモ帳では桁合わせの機能としてTABしかありません。 Wordの場合は数字の桁揃えをTABを使って右揃えや小数点揃えができます。しかし、メモ帳にはTABで先頭揃え(左揃え)のみなので希望のような桁合わせができません。 メモ帳に貼り付けてから手動でTABと空白で桁位置を合わせてください。 尚、フォントの種類によっては微妙にずれますので注意してください。

fumi234
質問者

お礼

ありがとうございます。別の方に教えていただいた関数で解決することが出来ました。

noname#232800
noname#232800
回答No.1

メモ帳でしょ? 表示を揃えたいんでしょ? 無理だと思うけど。

fumi234
質問者

お礼

無事に解決致しました。

関連するQ&A

  • エクセルのセル書式設定について

    エクセルのセル書式設定について教えてください。 セルA1に 111222333 と数字を入力しました。 ちょっと見にくいので111-222-333とするために書式設定のユーザー定義で ###-###-### としました。うまくいきましたが、  A1122233B だと - がはいりません。 セルA列には英数字が入ります。見やすくするため表示のみ「-」を 表示させたいです。入力はそのまま「-」なしで入力します。 どうかお願いします。

  • エクセルのセルの書式設定について

    エクセル2007を使用しております(XP-SP3)。 セルにマイナス(-)あるいはプラス(+)を打ち込み、確定を押すとセルに「-V47」あるいは「-47+」の表示になります。 セルの書式設定を変更して試したのですが、なかなかうまく(-)あるいは(+)という表示になりません。書式設定の方法をご教示いただけないでしょうか? 基礎的な質問ですがよろしくお願いいたします。

  • エクセルのセルの書式設定について教えてください。

    エクセルのセルの書式設定について教えてください。 マイナスの値を、△1,234のようにしたいのですが、セルの書式設定の「負の数の表示形式」で選択しようとすると、「ユーザー設定定義を追加できません」というメッセージが表示されてしまいます。計算式は入っているセルですが、特別のことはしていないと思います。なぜでしょうか?

  • エクセルのセル書式設定について

    エクセルのセル書式設定について教えてください。 セルA1に文字列「052」と入力すると、B2に「0 5 2」と表示されるようにするには、 書式設定をどう設定したら良いですか? ちなみに、A1を文字列ではなく数値で設定し、B2をユーザー定義「# # # #」で登録すると、 A1は「52」、B2は「5 2」と表示されてしまいます。 A1を「052」と表示させる為には、文字列として設定しなくてはいけないが、 そうするとB2の値も「052」と表示されてしまいます。 どなたか良い方法を教えてください。

  • エクセルのセルの書式設定について

    お世話になります。 エクセルのセルの書式設定について質問させて頂きます。 sheet1のA1に本日の日付を入れてセルの書式設定のユーザー定義にて"C"yyyymm"-"を設定することで、「C201512-」となりますが、sheet2のA1に「=sheet1!A1」とし、同じ定義で同じ結果「C201512-」を表示させたいのですが、どのような方法がありますか? 尚、状況によって「C201512-」のCについてはsheet1のA1のユーザー定義において「"C"yyyymm"-"」⇒「"D"yyyymm"-"」に変える場合があります。その場合でも、ユーザー定義をsheet2のA1に同じ結果を表示させたいと考えています。 宜しくお願い致します。 もし、もっと効率の良い方法がありましたら、ご教授頂けると光栄です。 尚、使用環境は OS:windows8.1 EXCEL:EXCEL2013 です。

  • Excel セルの書式設定

    Excel2002を使っています。 セルB1に、数式 =A1 を設定しています。 さらに、セルB1には、セルの書式設定で、ユーザー定義 "*** " @ " ***" を設定しています。 セルB2は、数式 =A2 セルB3は、数式 =A3 ・ ・ ・ (上記のユーザー定義は B列に設定されています。) セルA1に『チョコレート』と入力したら、 セルB1には、『*** チョコレート ***』と表示されます。 もし、セルA1が空白の場合『*** ***』が表示されます。 でも、セルA1が空白なら、セルB1も空白にしたいのですが、その方法はありますでしょうか? よろしくお願いします。

  • エクセルの書式設定

    エクセルのセルの表示が#VALUE!になるのでたどっていったところ、あるセルの書式設定に問題があるようなのです。 そこで、書式を数値に直したいのですが、通常、「数値」の場合には、表示されないはずなのですが、今回、表示されるサンプルに、かつてユーザー定義で入れたと思われる"歳"が表示されたままで、どうにもならず、これが原因と考えられます。 なぜこのようなことが生じるのか、また、どうすれば解消できるのか、 ご存知の方、教えてください。

  • Excelでのセルの書式設定で、ユーザー定義が反映されない。

    Excelでのセルの書式設定で、ユーザー定義が反映されない。 別シートから参照した数値(@)が入力されると「○○○@○」と表示させたいのですが・・・ たとえばですが、 Sheet1のA1セルに「=IF(Sheet2!A1="","",Sheet2!A1)」という数式を入れてあります。 Sheet1のA1セルの「セルの書式設定」を「ユーザー定義」にして、「"花""子""は"@"歳"」にしてあります。 これでSheet2のA1セルに「3」と入力します。 Sheet1のA1セルに「花子は3歳」と表示されると思っていたのですが、「3」しか表示されません。 何が間違っているのかわかりません。 お知恵を拝借させてください。m(__)m

  • エクセルの書式設定の「#」

    エクセル2002の書式設定についてですが、セルの書式設定の「表示形式」で「ユーザー定義」にします。そして種類のところには「#」と入れました。 セルに「999」と入力すると「999」と表示されました。 ところが「ユーザー定義」の種類のところには「#,」と入れました。 するとセルに「999」と入れても「1」と表示されます。 またセルに「9999」と入れたら「10」と表示されました。 これはどうしてでしょうか?

  • エクセルのセルの書式設定について

    エクセルでセルの書式設定ですが 12573と入力すると 表示が(125/73)と出るように設定したいのですが ( )と/を入力するのが面倒なので・・・ (1)セルの書式設定→ (2)ユーザー定義→ (3)種類 までは、判りますが種類に入れる文字記号が判りません どなかた教えてください。 よろしくお願いいたします。

専門家に質問してみよう