質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

700閲覧

通貨型のデータ変換について

napoleon

総合スコア18

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/06/18 06:48

ACCESSと連動し、自動的に仕入先へメールを送りたいと考えております。

Dim oApp As Object Dim myNameSpace As Object Dim myFolder As Object Dim objMAIL As Object Dim strMOJI As String Dim IDX Dim RS1 As Recordset Set db = CurrentDb() Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) Set RS1 = db.OpenRecordset("T_送信先") Do Until RS1.EOF objMAIL.Display objMAIL.To = (RS1!メールアドレス_1) objMAIL.Subject = Mid(Me!YMD, 6, 2) & "月分請求額のお知らせ" strMOJI = (RS1!仕入先名称1) & " " & (RS1!仕入先名称2) & "御中" & vbCrLf _ & "" & vbCrLf _ & "いつもお世話になっております。" & vbCrLf _ & Mid(Me!YMD, 6, 2) & "月の請求額は下記の通りとなります。" & vbCrLf _ & "" & vbCrLf _ & "" & vbCrLf _ & "請求額" & ":" & (RS1!請求額) & ”円” & vbCrLf _ & "消費税" & ":" & (RS1!消費税) & ”円” & vbCrLf _ & "総計" & ":" & (RS1!総計) & ”円” & vbCrLf _ & "" & vbCrLf _ & "担当者" & ":" & (RS1!担当者) & vbCrLf _ & "" & vbCrLf _ & "※ご不明な点につきましては担当者までお問合せ頂きますようお願い申し上げます。" & vbCrLf _ objMAIL.Body = strMOJI Loop End Sub

問題なくコードは動いてくれるのですが、本文(strMOJI)でご教示いただきたいことがあります。
メールの本文は下記のようになるのですが金額の部分がカンマ区切りになっていません。


いつもお世話になっております。
06月の請求額は下記の通りとなります。

請求額:8463420円
消費税:677073円
総計:9140493円
担当者:田中
※ご不明な点につきましては担当者までお問合せ頂きますようお願い申し上げます。


本文のデータ型をStringに設定しているのでもちろん数値型にならないのは理解していますが、取引先に送る
メールとしてはいかがなものかと悩んでおります。

やってみたことは別途データ型をCurrencyに設定した変数を作成しCCur関数で格納し、本文(strMOJI)とは別に明記しようとしてみましたがCCur関数がうまくできていないのか、カンマのない状態で値が返ってきました。
RS1のテーブルの書式も通貨型にしていますが、これもあまり意味がないようで値はIntegerでした。

カンマがついた状態、または通貨型で値が返る方法がありましたらご教示ください。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

& "請求額" & ":" & (RS1!請求額) & ”円” & vbCrLf _ & "消費税" & ":" & (RS1!消費税) & ”円” & vbCrLf _ & "総計" & ":" & (RS1!総計) & ”円” & vbCrLf _

ここで使われている(RS1!請求額)、(RS1!消費税) 、(RS1!総計)は数値ですから、「8463420」のように数字の列に変換されます。
カンマで桁区切りした数値(文字列)にするには、Format関数を使ってください。
例えば、上記コードの部分を、下記のように修正すると

& "請求額" & ":" & Format((RS1!請求額), "#,#") & ”円” & vbCrLf _ & "消費税" & ":" & Format((RS1!消費税), "#,#") & ”円” & vbCrLf _ & "総計" & ":" & Format((RS1!総計), "#,#") & ”円” & vbCrLf _

請求額:8,463,420円

消費税:677,073円
総計:9,140,493円

と表示されるはずです。

投稿2018/06/18 07:03

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

napoleon

2018/06/18 07:09

ありがとうございました。 カンマがついた値でメール分に記載されるようになりました。
guest

0

Format(RS1!請求額, "#,#")
でどうでしょう。

投稿2018/06/18 07:00

ladybird

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

napoleon

2018/06/18 07:07

回答ありがとうございます。 Format関数でやってみましたが、やはり返ってくる値はカンマなしでした。試しにデータ型をLongに変えてみましたが同じ値でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問