• ベストアンサー

VBAでの桁区切り表示について

データベースからSQL文よりデータをSELECTして、Excelのセルに表示しています。 その際、数値を下記のように桁区切り表示したいのですが、どのようにしたらできるのでしょうか。 (1)100   → 100 (2)1000   → 1,000 (3)0.25   → 0.25 (4)1.75   → 1.75 (5)1111.25 → 1,111.25 もし、桁区切りと小数点以下を表示できない場合は、小数点以下を切り上げ表示したいと 思っています。 (3)0.25   → 1 (4)1.75   → 2 (5)1111.25 → 1,112 <今のプログラム> ★DBよりデータをSELECT Do Until .EOF    Cells(i, 2).Value = .Fields(0).Value    i = i + 1    .MoveNext Loop

  • gazo
  • お礼率30% (74/241)

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

小数点以下の切り上げは書式設定だでは出来ません データそのものを変更するかDBから代入するセルは非表示にして そのセルを参照すセルに =ROUND(DBの代入セル+0.5,0)などの数式を設定したほうがいいでしょう Cells(i,3).FomulaR1C1 = "=ROUND(RC[-1]+0.5,0)" などといった具合です

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

Cells(i, 2).NumberFormatLocal = "#,##0.00;-#,##0.00"

関連するQ&A

  • Accessの桁区切りについて教えてください。

    アクセスのレポートの金額に、桁区切りのカンマを付けたいと思っています。 プロパティの書式を通貨にすると¥マークがついてしまいます。 合計は付いてもいいのですが、内訳には¥マークを付かないように桁区切りだけにしたいのです。 そのため、書式に『###,##0』としました。 できましたが、小数点以下が表示されません。 小数点を表示したいので『###,##0.###』としたら、『59,180.000』となってしまいます。 小数点の指定を自動から3桁表示に変えましたが、うまくいきません。 教えていただきたい内容としては、 ・金額の表示に桁区切りのカンマを付けたい。 ・でも¥マークは付けたくない。 ・小数点以下該当があるもののみ3桁まで表示させたいが(5,500.365)、  小数点以下がないものは小数点以下は表示させたくない(5,400)。 ぜひともアクセスを使いこなしている方、お教えください。

  • Excelの桁区切りと小数点以下表示について

    Excelの桁区切りと小数点表示等についてツールバーにある「[,]桁区切りスタイル」や「小数点表示桁上げ」と[セルの書式設定]内にある「小数点以下の桁数」や「桁区切り(,)を使用する」の違いを教えて下さい。 因みにツールバーにある「[,]桁区切りスタイル」を選択すると勝手に小数点第2位まで表示されてしまいます。 それが何故かわからないのです。 ※ Win XP、Excel2002の環境で行っています。

  • Excel VBA EOFに関して

    テキストボックスにDateを入力し、SQLServerに接続しSelectの結果をシートに書き込むだけのものなのですが、「BOFとEOFのいずれかがTrueになっているか、または現在のレコードが削除されています」というエラーでさっぱりわかりません。どなたかアドバイスをお願い致します。 -前後省略- stdate = UserForm1.stdate.Value endate = UserForm1.endate.Value strsql = "select ***" strsql = strsql & "from ***" strsql = strsql & "where *** and ***.start_date between '" & stdate & "' and '" & endate & "' " con.Open connectionString Set rs = con.Execute(strsql) Sheets("Data1").Select rs.MoveFirst i = 2 Do Until rs.EOF Cells(i, 1) = rs.Fields(0).Value Cells(i, 2) = rs.Fields(1).Value Cells(i, 3) = rs.Fields(2).Value Cells(i, 4) = rs.Fields(3).Value i = i + 1 rs.MoveNext Loop con.Close Set con = Nothing Exit Sub Err_DBConnectOpen: MsgBox Err.Description If con.State <> ADODB.adStateClosed Then con.Close End If Set con = Nothing End Sub

  • エクセルで、数値の桁区切りに関して

    エクセルで以下のような数値に桁区切りを設定したいのです。 書式設定で”数値”を選択し、桁区切りを設定すると小数点以下がカットされてしまいますし、 FIXED関数を使おうかと思いましたが、小数第3位以降が四捨五入されてしまうので 使えませんでした。ユーザー定義をこれまで使ったことないので調べてみたものの 結局自己解決出来ませんでした。。 お分かりになる方お教え願えないでしょうか? ちなみに、使用環境はWindowsで、バージョンは2003、2007の両方あります。 1234567 1230 4567.89856 0.0356 0.1598756 0.00658 -35607 -0.0056 -23.5668 -3468972.234

  • Excelで小数点を表示しつつ、桁区切りもつけたい。

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします! 以前、投稿しましたが間違って削除してしまったのでもう一度投稿させて頂きました。

  • レコードセットのループ処理でエラー・・・

    簡単なことだと思うのですが、解決できなくこまっております。お助けください。 以下のコーディングで、データの取得は出来ているのですが、「Do Until rs1.EOF」でエラーとなります。 SOURCE----------------------------------------- sql = "Select No from t01" Recordset.Open sql, dbc, 3 If rs1.EOF Then Response.Write "データナシ<BR>" ←表示されません。 else Do Until rs1.EOF ←この行でエラーとなります。 Response.Write "No=" & rs1("No").Value rs1.MoveNext Loop end if Error-------------------------------------------- ADODB.Field (0x80020009) BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。 因みに、Do Untilを使用せず  Response.Write "No=" & rs1("No").Value  rs1.MoveNext  Response.Write "No=" & rs1("No").Value と記述すると正常にデータが表示されます。 「Do Until rs1.EOF」で発生するエラーの回避方法を御教示願います。

  • Excelで小数点も表示し、桁区切り使用したいです

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします!!

  • SYSTIMESTAMPの表示桁

    組み込み変数のSYSTIMESTAMPで小数点以下3桁までしか有効でないようです。 6桁まで取得することは可能でしょうか? 何回実行しても小数点以下4~6桁までが000になってしまいます。 SQL> select systimestamp from dual; SYSTIMESTAMP ------------------------------------- 05-03-15 15:13:36.859000 +09:00 ご存知の方、ご教示ください。

  • Excelで小数点も表示し、桁区切り使用したいです

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします!!

  • Excelで小数点も表示し、桁区切り使用したいです

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします!!

専門家に質問してみよう