
No.3ベストアンサー
- 回答日時:
なかなか面倒くさい。
エクセルに向いてない課題かな。
文字列で一貫して扱うことで実現した。
例データ
書式付 原テキスト 桁数 先頭からのカンマの位置
123.234123.23474
123.00123.0064
232320
23.123.143
23.023.043
23.00023.00063
234.234.44
元のデータの通り再現するよう細工した。
その後セル上でデータが変わるとおかしくなる(やり直さないとだめ)。危険はある。
どうしても拘るなら「単純に文字列でセットして、右詰に配置をッする」とかの方法もあり、計算は*1で1をかけてから行うとか。
ーー
標準モジュールに
Sub test01()
i = 1
Dim a As String
Open "小数点数.txt" For Input As #1
While Not EOF(1)
Line Input #1, a
'p = InStrRev(a, ".", , 1)
p = InStr(a, ".")
If p = 0 Then
Cells(i, "A").NumberFormatLocal = "##,###"
GoTo ex
End If
q = Len(a) - p
Select Case q
Case 0
If p = Len(a) Then
Cells(i, "A").NumberFormatLocal = "##,###."
Else
Cells(i, "A").NumberFormatLocal = "##,###"
End If
Case 1
Cells(i, "A").NumberFormatLocal = "##,###.0"
Case 2
Cells(i, "A").NumberFormatLocal = "#,###.00"
Case 3
Cells(i, "A").NumberFormatLocal = "#,###.000"
Case 4
Cells(i, "A").NumberFormatLocal = "#,###.0000"
End Select
Cells(i, "A") = a
Cells(i, "B") = "'" & a
Cells(i, "C") = Len(a)
Cells(i, "D") = p
ex:
i = i + 1
Wend
Close #1
End Sub
ーー
InstrRev関数でうまく行かなかったが,私のやり方が悪いだけかと。
お礼が遅くなり申し訳ございませんでした。
やはり、無謀なことをしようとしていたんですね。
御回答いただいたもので試してみましたが、私ではうまくいきませんでした。
手作業でがんばります。
ありがとうございました。
No.4
- 回答日時:
#3のimogasiさんの回答には何も付けていないようですから、もう投げ出してしまっているので、こちらの回答も無視されるのは必至ですが、imogasiさんの書いたものに手を加えてみました。
ご質問者さんは、基本的なExcelの書式表示について、何か勘違いしているような気がします。というか、本来、次のステップで、そのデータをどう扱うかによって、その表示や扱い方が変わるわけで、単発的にどう処理するかは重要なのではありません。ただ、以下は、ワザ的なものだけです。
>小数点以下がセルによって2桁3桁だったり、なかったりとバラバラで
>データに合せてそのまま反映させたいのですが設定する方法がありますでしょうか。
単に、インポートした数字データにカンマをつけたいということではないでしょうか?
だったら、整数部と小数部とを分けて処理すればよいです。
>.00でも表示させておきたいです。
ただし、Excelでは、一般的に .00という表示などはありえませんね。Wordのほうがよいのではないかと思います。
'//
Sub Test2()
'文字で貼りつけ
Dim n As String
Dim i As Long, j As Integer
Dim U As String, L As String
i = 1
Open "numbers.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, n
If IsNumeric(n) Then
If InStr(n, ".") > 0 Then
j = InStr(n, ".") - 1
U = Mid(n, 1, j)
L = Replace(n, U, "")
Else
U = n
j = 0
End If
U = Format$(U, "#,##0")
Cells(i, 1).Value = "'" & U & L
Else
Cells(i, 1).Value = n
End If
U = "": L = ""
i = i + 1
Loop
Close #1
End Sub
'//
Sub Test3()
'書式変更
Dim n As String
Dim i As Long
Dim j As Integer, k As Integer
i = 1
Open "numbers.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, n
If IsNumeric(n) Then
If InStr(n, ".") > 0 Then
j = Len(Mid(n, InStr(n, ".") + 1))
Else
j = 0
End If
Cells(i, 2).NumberFormat = "#,##0" & IIf(j > 0, "." & String(j, "0"), "")
End If
Cells(i, 2).Value = n
i = i + 1
Loop
Close #1
End Sub
お礼が遅くなりました。
ごさっしのとおり、インポートした数字にカンマつけたいということです。
.00でも表示したいのは経理的な書類の為です。
うまく稼動させることができなかったのでせっかくですが
手作業にて処理したいと思います。
ありがとうございました。
No.1
- 回答日時:
固定した書式では無理でしょう。
F = "#,##0" '書式
S = CStr(値) '数値を文字列化する
P = Instr(S, ".") '小数点の位置を求める
If P > 0 Then
'小数点がある場合は桁数分の"0"を繋げる
F = F & "." & String(Len(S) - P, "0")
End If
'書式を設定する
Cells(y, x).NumberFormatLocal = F
この回答への補足
回答ありがとうございます。
列を指定したい場合はどのようにするのが良いでしょうか。
Cells(y, x).NumberFormatLocal = F
ここがエラーになってしまいぬいた状態ではできました。
がカンマがつきません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- PowerPoint(パワーポイント) ExcelのグラフをPowerPointに貼り付けした際にデータテーブルの小数点以下を削除したいです 2 2023/02/28 19:46
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- 教育学 エクセルで小数点以下を四捨五入について教えてください。 2 2023/04/05 17:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
今の日本に期待することはなんですか?
目まぐるしく、日本も世界も状況が変わる中、あなたが今の日本に期待することはなんですか?
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
【VBA】計算結果に小数点第2位までを表示させる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.NET SqlDataReader のレコー...
-
DataGrdViewに関連付けたデータ...
-
【Excel VBA】先頭の「0」飛び...
-
ListViewで条件によって表示を...
-
VBA ピボットテーブル自動更新
-
DataGridViewで表示に制限をつ...
-
VBAでページ番号、ページ最終行...
-
1台のサーバへの同一セグメント...
-
利用者側のMACアドレスを取得し...
-
ExcelVBAを使って、値...
-
[エクセル]連続する指定範囲か...
-
テキストボックスのvalueとtext...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
Accessのクエリで、replace関数...
-
VB.NETで DataRow()を利用して...
-
Excel VBAのリストボックスの値...
-
エクセルで、絶対値の平均を算...
-
【Excel】指定したセルの名前で...
-
エクセルvbaで、別シートの最下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGrdViewに関連付けたデータ...
-
【Excel VBA】先頭の「0」飛び...
-
Listviewのデータを上から順番...
-
.NET SqlDataReader のレコー...
-
GridViewにバインドせずにデー...
-
VBAでページ番号、ページ最終行...
-
GASでスプレッドシートの一番上...
-
コンパイルエラーSubまたは...
-
MSFlexGridのデータ表示位置の設定
-
DataGridViewで表示に制限をつ...
-
ASP C# データベースから1行取得
-
【ASP.NET MVC】一覧編集画面
-
VB.net CrystalReportでプロジ...
-
GoogleスプレッドシートからExc...
-
VBA ピボットテーブル自動更新
-
VB6 → EXCEL にデーター出力
-
yahoo天気の過去1ヶ月分のデー...
-
C# データ配列から画像を作成す...
-
VBによる可変長ファイルの読み書き
-
C#でマスターから検索した値に...
おすすめ情報