
立て続けの質問ですみません。
Data1 = 1
Data2 = "234567890123457890"
Data = Data1 & Data2
Range("A1").Value = Data
上記のマクロを実行すると、A1カラムに"12345678901234567890"と文字列で表示されるはずなのですが、実際には"12345678901234500000"と表示されてしまいます。
A1カラムの書式設定はユーザー定義で"00000000000000000000"としています。
一方、下記のマクロを実行すると
Data1 = 1
Data2 = "234567890123457890"
Data3 = "x"
Data = Data1 & Data2 & Data3
Range("A1").Value = Data
"12345678901234567890x"と表示されます。これはどういう現象なのでしょうか?最初のマクロを実行すると右寄せになるので文字として認識されていないと思いますが、文字として認識させるやりかたが良くわかりません。T関数やTEXT関数を使ったりもしてみましたがどうもうまくいきません。
自分がやりたいのは、100桁以上もある数字と半角文字(カナ、アルファベット)混合の文字列を作って一行一データのCSVファイルを作りたいのですが、どうも数字の桁数が多いとうまくいかないことがわかってきたのですが・・・よろしくお願いします。
No.2ベストアンサー
- 回答日時:
セルに値を代入したときに自動的に変換が行われます。
前者の例だ数値として後者は文字列として判定されます。
文字列になるようにするには、代入する前に書式を設定すればよいと思いますが。
Data1 = 1
Data2 = "234567890123457890"
data = Data1 & Data2
Range("A1").NumberFormatLocal = "@"
Range("A1").Formula = data
No.4
- 回答日時:
数値の桁数が大きいと下のほうの位が0になるようです。
恐らくセルに数値を扱う場合「倍精度浮動小数点数型」になるのだと思います。
マクロをステップ実行すると分かると思いますが、セルに入れる前(data)の状態では正常に値が入っています。
簡単な対応としてはセルの書式を「文字列」にするで良いのではないでしょうか。
短時間の間にたくさんの回答ありがとうございました。お陰様で解決しました。まとめてのお礼で申し訳ありません。また、点数付けられなかった方ごめんなさい。
No.3
- 回答日時:
>これはどういう現象なのでしょうか?
表示される桁数にかかわらず、Excel では 15 桁までの精度の数値が格納されます。数値の桁数が 16 桁以上の場合、16 桁目以降の値はゼロ (0) に変換されます。
前者は代入時にDataが数値であると認識され16桁以降が0になっています。
後者は代入時にDataが文字列であると認識されそのまま格納されます。
16桁以上の数値データを文字列としてセルに代入するには、書式を文字列にするかデータ頭に'を付けるかしかないようです。
No.1
- 回答日時:
これも方法の一つ?
Data1 = 1
Data2 = "234567890123457890"
data = "'" & Data1 & Data2
Range("A1").Value = data
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) マクロでコピーすると数式が表示される 1 2022/09/09 20:21
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの計算式で求められ...
-
エクセルの計算式の後に、単位...
-
エクセルで 何時間何分と表示...
-
数字の後ろにピリオドを表示す...
-
エクセルのセル内の余白の設定...
-
エクセルで数式を入れても値が...
-
エクセルで日付が逆に登録され...
-
Excelで 分:秒 と表示させる...
-
有効数字
-
エクセル 桁を増やす方法
-
【Excel】 特定セルだけに「ゼ...
-
エクセルの計算結果を()括弧で...
-
セルの書式設定で一部のフォン...
-
EXCELでセル内に打った文字が隠...
-
Excel &で他セルを参照させた...
-
エクセル・文字列の先頭に空白...
-
下3桁のみを表示する方法はあ...
-
エクセルで、書式設定をして表...
-
スプレッドシートのセル内、折...
-
エクセルマクロで「1」を「01」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでの計算式で求められ...
-
エクセルのセル内の余白の設定...
-
エクセルで数式を入れても値が...
-
エクセルの計算式の後に、単位...
-
エクセルで日付が逆に登録され...
-
エクセル 桁を増やす方法
-
Excelで 分:秒 と表示させる...
-
【Excel】 特定セルだけに「ゼ...
-
数字の後ろにピリオドを表示す...
-
エクセルの計算結果を()括弧で...
-
EXCELで日付と時刻が入ったセル...
-
エクセルで折り返しと縮小の同...
-
エクセルで 何時間何分と表示...
-
エクセルで西暦に変更できない
-
エクセルで○時間△分を○。□時間...
-
エクセル 条件付き書式で文字...
-
エクセルで、書式設定をして表...
-
EXCELでセル内に打った文字が隠...
-
エクセルの分数表示
-
セルの書式設定で一部のフォン...
おすすめ情報