次の方法で共有

エクセル2016 64bit VAL関数使用時のエラーについて

Anonymous
2020-09-26T03:24:50+00:00

文字列(数値)を数値に変換するとエラーとなる。

以下 VBA  ![](https://learn-attachment.microsoft.com/api/attachments/a0261cb4-2d0d-42ab-b228-1d4bfcbe069f?platform=QnA"https://learn-attachment.microsoft.com/api/attachments/72ac6e7b-8948-4c40-8d55-455cad9106e8?platform=QnA" rel="ugc nofollow">モジュールを添付しました。

Sub S_100_文字列結合によるVAL関数のテスト()Dim AA As LongLong, BB As LongLong, CC As LongLongDim DD As LongLong, EE As LongLong, FF As LongLongDim SA As LongLong, SB As LongLong, SC As LongLongDim SD As LongLong, SE As LongLong, SF As LongLongDim a1 As String, a2 As String' 20001014120480182a1 = "200010141"  <br>' 9桁a2 = "20480182"   <br>' 8桁SA = Val(a1 & a2) ' 20001014120480184 <br><== 1桁目がエラーとなる !!SB = Val(a1 + a2) ' 20001014120480184 <br><== 1桁目がエラーとなる !!SC = Val("20001014120480182") <br>'        <== 1桁目がエラーとなる !!AA = (a1 & a2)   <br>' 20001014120480182  <== 正しいBB = a1 & a2     <br>' 20001014120480182  <== 正しいCC = "20001014120480182" <br>'             <== 正しいEnd Sub

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2020-09-27T06:13:02+00:00

Val 関数の戻り値が Double型( 小数表現+指数)であり、

非常に大きい値の変換の為に、小数部の有効桁数

末尾で小数誤差(もしくは丸め処理)が発生。

それが、LongLong型に 整数表現として格納される際に

末尾の小数誤差がそのまま反映されたのでしょう。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2020-09-28T00:38:19+00:00

    ありがとうございました。

    大変勉強になりました。これからもよろしく,お願いします。

    します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2020-09-27T00:41:34+00:00

    早速の回答,ありがとうございました。

    説明不足のため,誠にすみませんでした。

    質問内容は,下1桁目の数値が,違っていることです。

     Dim SC As LongLong

     SC = Val("20001014120480182")     

     SC =        20001014120480184          <== 下1桁目が,2になるところが4となることです。

    活用事例

    ・円周率の計算(10万桁程度)を勉強中で数値属性と文字属性における計算処理時間を調べています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2020-09-26T06:08:37+00:00

    > 1桁目がエラーとなる !!

    ローカルウィンドウの写真には、

    ちゃんと SA/SB/SC にも

    全桁が変換された値(LongLong型 , 型宣言文字( ^ ) )で

    表示されているではないですか。

    何がエラーなんでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2020-09-26T03:28:26+00:00

    こんにちは。

    VBAに関しては専用のフォーラムが存在するため、下記へ投稿してみてください。

    https://social.msdn.microsoft.com/Forums/ja-JP/...

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません