トップページ ★MSアクセスウエッブカレッジ| サンプル(ダウンロードする)|業務統合4in1|小さな会社用『感嘆!』 |
マクロで数字変換操作 |
今回は、数字の扱いについて考えます。数字の扱いは、いろいろあります。まず 数値型にもいろいろあります。 整数型 長整数型 浮動小数点型 これは単精度と倍精度がありますが、意味は私も忘れました。使うときは倍精度浮動小数点型にしていますが、単精度は問題があると前といってもだいぶ前に聞いたことがありものですから。 私は、お金をもらって開発してるわけで、そこで実験はできないもので、疑わしいものは避けています。数字には、他にも通貨型もあります。今回は、数値の扱いで、最近実際に出くわした困った問題を、紹介します。 それは、数字のマイナスを▲で表示したいと言うものです。 −123,456を ▲123,456と表示させるものです。 「マイナス(−)表示じゃいけないの」という話は別にして、今話題の特殊法人関係ユーザーの強い希望です。費用は、面倒見るという、簡単には断れないところです。 エクセル、ワードには、マイナス時の表示に▲を使えるような自動設定があります。アクセスにも、あるはずだと、ヘルプ、その他探しまくりましたが、見当たりませんでした。「マクロを組むしかないか、それともVBでなければ駄目かな」と思いつつ、マクロの設計に入りました。 1 考え方として、マイナス数字は数値型です。▲表示するには、数値型では 駄目でテキスト型になります。 2 数字にプラスとマイナスが混在するわけで、その中から、マイナス数字のみ上記 置き換えをしなければなりません 3 テーブルに、テキスト型フイルドを追加します。 4 関数を使って、一気に変換することにします。 したがって、最初にプラス数字をそのままテキストフイルドに変換代入 5 次に、マイナス数字を選択し、変換する関数で一気にテキストフイルド に▲付テキストに表示することを考えました。 もし計算するもがあれば、変換まえに済ませて起きます。テキスト型では、計算は出来ませんから。 どの関数を使うかの問題があります。数値型をテキスト型に変換する関数は、STR$関数とFORMAT$関数があります。ここでは、数字をテキスト型にした時3桁づつカンマを振りたいので、FORMAT$関数を使います。 STR$関数ですと、▲123456となってしまい、カンマが入りません。書式など設定する場合、FORMAT$関数が有効です。変換は、一気にやる場合は、クエリーを使い、一レコードずつ、処理をする場合、マクロアクションで行いますが、計算式は同じものを利用します。 1 マクロのみの処理の場合 条件 数字がマイナスだったら(<0> 値の代入アクションの 式に下記設定します。 Format$([Forms]![テーブル1]![DS],"▲" & "#,##0") 2 一気にクエリーを使って処理をする場合、 抽出条件を <0にして、更新欄にFormat$([Forms]![テーブル1]![DS],"▲" & "#,##0") を設定します。 これで、マイナス数字は、▲付マイナス数字に変換されます。 「"▲" & "#,##0"」の設定が、ポイントです。 「"#,##0"」が、カンマ付テキスト設定の書式です。出来て見ると、なんてことないようですが、これを完成させるのに、試行錯誤して、2時間位かかりました。 あまり多くはないユーザーニーズですが、公益法人では、ありえる項目です。エクセルでいい場合、データをエクセルにはき出せば、それでもOKでしょう。システムは必ず一つではなくいくつもの選択肢があります。状況によって、使い分ける技術がエンジニアリングです。頑張りましょう。 ○マクロで数字変換操作のサンプル: 2 サブマクロの回数について ★前回のテーマ |
メール:macro@mscn.net
| トップ|4in1|曙司法書士システム|公益法人|
|弁理士用大丈夫|弁護士用大丈夫|ARA ! |
| マクロ研究会|MSアクセス入門マガジン |マクロ会議室|ダウンロード|