
No.7ベストアンサー
- 回答日時:
こんにちは。
maruru01です。まず、そのセル自体の表示を設定する方法です。
対象のセルの表示形式をユーザー定義で、
「[<1000]##0;[<1000000]#|###;#|###|###」
とします。
これだと、そのセルに入る値の桁数が、0~9桁までなら対応出来ます。
(つまり、10桁以上には対応しません。またマイナスの値にも対応しません。)
次に、別のセルに文字列として表示させる方法です。
(No.2の方と同じ考え方です。)
A1に金額を入力する場合に、表示するセルに、
=SUBSTITUTE(TEXT(A1,"#,##0"),",","|")
と入力します。
これなら、何桁でも(マイナスでも)きちんと表示されます。
maruru01さん、
早速のアドバイスをありがとうございました。
試してみましたところ、2つの方法とも意図した通りの結果が得られました!
まさしくこの様にしたかったので、嬉しいです。
今回は、桁が10を越すケースもありえるため、式の方を使わせていただくことになりそうです。
9桁以内だったら表示形式が利用できて理想通りだったのに…残念です。
けれど、表示形式でも出来ると分かり、勉強になりました。
本当にありがとうございました。
No.11
- 回答日時:
KenKen_SPさまへ
これは、オフ・トピックになってしまうかもしれませんが、
>EXCEL2000 から新しく追加されたプロパティとなっていました(参考URL)
> http://www.microsoft.com/japan/msdn/library/defa …
[Microsoft Excel 2000 開発者向け新機能]
Applicationクラスのメンバの中にありますか?
それは、QueryTable クラスのメンバのTextFileThousandsSeparator プロパティのことではないでしょうか?
ヘルプより
テキスト ファイルをクエリ テーブルにインポートするときに、Excel で使用する桁区切り記号を設定します。
使用例:
Worksheets("Sheet1").QueryTables(1) _
.TextFileThousandsSeparator = "."
こちらは、VBA辞典(2002)にも出てきます。
何かの間違いではないでしょうか?
今のところ、私の今のレベルでは、下位バージョンに、Shell.Application から、コントロールパネルの地域を開き、マニュアルで変更するぐらいしか、思いつきませんでしたが、この変更する方法は、下位バージョンでも必ずあると思います。
ただ、私は、この元のご質問に関して、とても、1000単位のセパレータとして「|」では、数字と見まちがうだけでなく、出力として出てきてしまうので、失礼ですが、実用にはならないような気がしています。私が、ここで提出した#5のVBAのコードのアイデアは、実際に使っているものと同じタイプのものです。本当に実用的にさせるためには、もう少し、別な部分に手を加える必要がありますが。
Wendy02さま、
こちらのお礼欄をお借りして、最後に皆様にお礼をさせていただきたく、どうぞ、お許しください。
今回アドバイスを下さいました皆様、
私のつたない質問にご丁寧にまた詳細にご説明くださり、大変感謝しております。
同時にとても勉強にそして参考になりました。
分からない事もありますので、勉強しようと思います。
また、Wendy02さまはじめ、
ご指摘を頂戴した通り、縦線では確かに見間違いはまぬかれないと思います。
(出力はして良いのですが)
一度進言してみるつもりです。
折角方法が分かりましたので、使いたい気持ちはかなりありますが、
ミスを誘発しては元も子もありません(汗)
最後に、
本来なら皆様にポイントをお渡ししたいのに、ご回答を選ばなければならず残念ですが、
本当に色々と勉強になる事ばかりで感謝の気持ちで締めくくらせて頂きたく思います。
皆様、本当にありがとうございました。
No.10
- 回答日時:
Wendy02さま
EXCEL2002 の VBA ヘルプに ThousandsSeparator プロパティが記載され、動作することを確認しております。MSDN ライブラリによると EXCEL2000 から新しく追加されたプロパティとなっていました(参考URL)。したがって、
「EXCEL2000以前のバージョンでは#7の方法は使えない」
ということになりますね。アドバイスありがとうございました。
参考URL:http://www.microsoft.com/japan/msdn/library/defa …
No.9
- 回答日時:
KenKen_SP様へ
> .ThousandsSeparator = "|"
今、Excel VBA辞典(2002)でプロパティを調べてみて、それがなかったので、MSDN を調べてみたら、それは、Excel2003 のVBAのプロパティのようですね。ちょっと限定されてちゃうようです。たぶん、いつものように、下位バージョンでも同じ方法はあるでしょうけれど……。
参考URL:http://msdn.microsoft.com/library/default.asp?ur …
No.8
- 回答日時:
>...この表が完成した際に利用するのがあまりExcelに詳しい人ではないため、
>多分桁数に応じて「|###」を変えるという事が無理なのです。
では、マクロは使えないかも知れませんね。ただ、、
>縦棒線にしたいのはこのファイルだけで、他のファイルではカンマで対応したい...
この点については、以下のマクロを ThisWorkBook に貼り付けることで実現できますね。マクロの使用も検討してみて下さい。
Private Sub Workbook_Activate()
With Application
.ThousandsSeparator = "|"
.UseSystemSeparators = False
End With
End Sub
Private Sub Workbook_Deactivate()
With Application
.ThousandsSeparator = ","
.UseSystemSeparators = True
End With
End Sub
KenKen_SPさん、
再度アドバイスくださいまして、ありがとうございます。
試してみたのですが、
「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」
と出てしまいました。
私の利用しているバージョンでは使用できないということでしょうか…(Excel2000なのですが)
今回は残念ですが、ご丁寧なアドバイス心から感謝しております。
本当にありがとうございました。
No.6
- 回答日時:
時々、見かけるご質問なので、ご質問者はご利用になられないかもしれませんが、出しておきます。
これは、何度か作っています。まだ、全てのフォントサイズで実施したわけではないのですが、等幅11pt と12ptでは有効のようです。コードに数字を入れれば、微調整も利きます。12pt以降の定数が分かりません。下は、9ptまでです。
これは、桁線を、オートシェイプの線で引くマクロです。
標準で、枠線とほぼ同じ色になっています。範囲と色の数字を入れれば、ご自由に変えられます。
なお、これは標準モジュールに登録することを想定しています。
'----------------------------------------------------------
Private Const letterWidth12 As Double = 7.92
Private Const letterWidth11 As Double = 7.92
Private Const letterwidth10 As Double = 6.92
Private Const letterwidth9 As Double = 5.92
Sub LocationLines()
'桁線を引くマクロ(ただし、等幅フォントに限る)
Dim a&, b&, c&, xw, y1&, y2&, l As Shape
Dim Rng As Range
'※ユーザ設定
'------------------------
Set Rng = Range("B2:B12") '桁線を引く場所の設定
'------------------------
If Rng.Columns.Count > 1 Then MsgBox "1列で設定してください", 16: Exit Sub
With Rng
y1 = .Cells(1).Top '上
y2 = .Cells(Rng.Count).Offset(1).Top '下
'線があれば、消す
For Each l In ActiveSheet.Shapes
If l.Type = msoLine Then
l.Cut
End If
Next l
'デフォルトのセル幅を実際に測る
a = ActiveSheet.Cells(1, 255).Left
b = ActiveSheet.Cells(1, 255).Offset(, 1).Left
'1文字辺りの幅を計算
c = (b - a) / letterWidth11
'左から縦線を引く
x3 = .Cells(1).Offset(, 1).Left - c * 3 + 1 '+/-調整 (+左,-右)
x2 = .Cells(1).Offset(, 1).Left - Int(c * 6) + 3 '+/-調整
If .Cells(1).ColumnWidth > ActiveSheet.StandardWidth Then
x1 = .Cells(1).Offset(, 1).Left - Int(c * 8) + 0 '+/-調整
End If
For Each xw In Array(x3, x2, x1)
If xw > 0 Then
With ActiveSheet.Shapes.AddLine(xw, y1, xw, y2)
.Line.ForeColor.SchemeColor = 22
'黒(8),赤(10),青(12),水色(15),灰(22)
End With
End If
Next xw
End With
Set Rng = Nothing
End Sub
'--------------------------------------
Wendy02 さん、
早速のアドバイスをありがとうございました。
試してみましたところ、なるほど、おっしゃる通り11・12pで線が引けました。
マクロの内容自体はちょっと私には難しくて正直よく分からないので、
内容が分かるスキルがあれば色々試してからお礼が出来たのですが、恐縮です。
こんなやり方もあるのですね、勉強してみます。
こちらのマクロですと、色々と使えそうな感じですので、是非覚えておきたいと思います。
ご丁寧な説明とアドバイスをありがとうございました。

No.5
- 回答日時:
「ツール」「オプション」「インターナショナル」で「システムの桁区切りを使用する」のチェックを外して、任意の記号を設定すればできると思います。
ただ全部表示が変わってしまうので、部分的に使用したい場合には向きませんですね。
dac203さん、
早速のアドバイスをありがとうございます。
確かにおっしゃる通り、他のファイルではカンマで対応したいのです。
しかしながら、今回教えていただいた点は知らない事でしたので、勉強になりました。
どのようになるのか、明日早速試してみたいと思います。
ありがとうございました。もし、他に何かお気づきの点がございましたらアドバイスいただけると幸いです。
No.3
- 回答日時:
セルー書式で
表示形式をユーザ定義で
『#|##0』にすれば出来ました。
でも、見づらくないですか?
koganetonさん、
早速のアドバイスをありがとうございました。
実はこの方法、試してみているのですが、桁数に応じて数を「|###」を変えないと
カンマ代わりに表記させるという事が出来なかったのです。(私のやり方が間違っているのでしょうか…)
そして、実際にこの表が完成した際に使用するのがあまりExcelに詳しい人ではないので、
(そういう私も達者とはとても申せませんが…)
それをやってもらう事が出来そうにないのです。本当にカンマの代わりみたいにして
縦棒線を表記させられないかなぁ…と思っておりまして…。
たしかに、おっしゃる通り見にくいし、数字の1と見間違えそうなんですよね(汗)
もともと、数字を手書きしていた表があって、その元の表の桁区切りが縦線だったため、
今回Excelで作成するにあたって、それをそのまま再現しようとなったのだと思います。
もし、何かお気づきの点がございましたら、アドバイスいただけると幸いです。ありがとうございました。
No.2
- 回答日時:
これでどうでしょう?
A1に入った数値を、テキスト化して表示します。
=RIGHT(TEXT(A1,"###|###|###|###"),LOG(A1)+INT(LOG(A1)/3)+1)
文字として表示されますので、右寄せしておいてください。
この回答への補足
shinkun0114さん、
早速のアドバイスありがとうございます。
今自宅で試す事が出来ないので、明日早速会社でチャレンジして、
ご報告させていただきたいと思います!
shinkun0114さん
試してみましたら、意図した様に棒線を引くことが出来ました!
まさしくこの様に引きたかったので、引くことが出来ると分かって勉強になりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
- iPhone(アイフォーン) web上の電話番号リンクの桁区切りが、iPhoneだと特定電話番号でおかしくなるのを解決したい 1 2023/03/28 14:27
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Java コンソールから所属財産を入力(単位:万円 1000~100000以内でIntegerに変換できない場 2 2022/05/31 21:32
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- 統計学 統計分析とExcelに詳しい方、何卒よろしくお願いいたします。 6 2022/05/27 10:30
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- マルウェア・コンピュータウイルス Microsoftサポートをかたる詐欺について 5 2022/03/22 19:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointの表内のカンマ
-
エクセル 数式の無効化
-
エクセル 0.1と0.10
-
エクセルでleft関数の結果が表...
-
エクセルの小数点を消す
-
ExcelもしくはAccesでゼロを頭...
-
Excelの公式について
-
エクセルで、タイム計測の管理...
-
エクセルの計算式でコンマを付...
-
整数が入力されたときに、小数...
-
colorcount をエクセルのフィル...
-
エクセルで分数表示させるには
-
エクセルの数値が正しく入力さ...
-
エクセルで「-3E+06」と...
-
セル上に表示された見かけ上の...
-
エクセル・SUM計算で数字がでない
-
エクセルの計算結果に+(プラス...
-
Excelでパーセンテージが0%になる
-
エクセルでオートサムを使った...
-
エクセルの画面上にテキストBOX...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PowerPointの表内のカンマ
-
エクセル 数式の無効化
-
エクセルの計算式でコンマを付...
-
セル上に表示された見かけ上の...
-
エクセルでleft関数の結果が表...
-
エクセルでオートサムを使った...
-
エクセルの計算結果に+(プラス...
-
16桁以上の「0」に変換されてし...
-
エクセルで囲み線で出来ますか?
-
エクセルで「-3E+06」と...
-
エクセル 0.1と0.10
-
エクセルで、50銭以下切捨て...
-
エクセル 平均年齢
-
EXCEL計算式が入っているセルを...
-
エクセルの画面上にテキストBOX...
-
エクセル 常に桁区切りにしたい
-
エクセルでの『セルの書式設定...
-
Excelで「1234」と入力して...
-
エクセルで0.1という数字を%表...
-
エクセルで、タイム計測の管理...
おすすめ情報