1. 日付の表示がおかしくなる原因と対処法
原因:ロケールの違いによる自動フォーマットのズレ
PADの内部では、「日付型」はシステムロケール(言語設定)に依存して表示されます。日本語環境では「yyyy/MM/dd」や「yyyy年M月d日」となることが多く、英語環境では「MM/dd/yyyy」になります。これにより、出力時の形式が意図しないものになることがあります。
対処方法:ToText関数で明示的に整形
%ToText(変数, "yyyy-MM-dd")%
このように、日付を文字列に変換するときは、表示形式を明示的に指定することで、環境に依存しない安定した出力が可能です。
2. 数字の表示が意図しない形になる原因と対処法
原因:数値型のまま出力すると、カンマや小数点の位置がロケール依存になる
たとえば「1234567」をExcelに書き出すと、「1,234,567」と表示されたり、「1234567.00」と余計な小数が付いたりするケースがあります。
対処方法:ToTextで表示形式を制御
%ToText(1234567, "#")%
%ToText(1234567.89, "#.00")%
「#,##0」などの書式を使うと、より詳細に表示をコントロールできます。数値として演算する必要がない場合は、最初から文字列として扱うのが確実です。
3. ExcelやCSVへの出力時にフォーマットが崩れる理由と対処
よくある症状と原因
- 「2025/6/1」が「6/1/2025」と出力される
- 「000123」が「123」に自動変換されてしまう
- 小数点以下の桁数が勝手に丸められる
これらは、ExcelやCSVファイルが値を「自動で変換」する仕様によって起きる現象です。
対処方法:事前に文字列に変換してから出力する
- 「ToText」アクションで日付・数値を明示的に文字列に変換
- 文字列としてExcelのセルやCSVに書き込むことで、自動変換を回避
例:CSVに郵便番号(例:001-0001)を出力したい場合
ToText("001-0001") → "001-0001"としてCSVに出力
4. フォーマットの統一を保つコツ
日時データのフォーマット例(ToText使用):
| 変換前の型 | 書式コード | 出力例 |
|---|---|---|
| DateTime型 | “yyyy-MM-dd” | 2025-06-26 |
| DateTime型 | “yyyy年M月d日” | 2025年6月26日 |
| DateTime型 | “yyyy/MM/dd HH:mm:ss” | 2025/06/26 14:15:00 |
数値データのフォーマット例(ToText使用):
| 元の値 | 書式コード | 出力例 |
|---|---|---|
| 1234.56 | “#,##0.00” | 1,234.56 |
| 78 | “00000” | 00078 |
ヒント:
- 書式コードはExcelやVBAの形式と互換性があります
- ToText変換は、出力直前に行うのが安全です(中間処理では数値型で保持)
よくある質問(FAQ)
Q1. ToTextで変換しても、Excelでまたフォーマットが変わってしまう
→ Excelに書き込むときに「セルのデータ型」が自動的に変わってしまうことがあります。「書式設定済み書き込み」アクションを使うことで、文字列として出力できます。
Q2. 小数点以下の桁数が丸められてしまいます
→ ToText関数で”#.00″や”#.0000″のように明示的に桁数を指定してください。指定しない場合、PADやExcelの自動書式に依存します。
Q3. CSVに出力したら、先頭のゼロが消えていました
→ 数値として出力されるとゼロが自動で削除されます。ToTextで文字列に変換し、ダブルクォート(”)で囲んで出力すると、CSV側で文字列として認識されます。
