Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2365 / 13646 ツリー ←次へ | 前へ→

【68464】inputboxで入力した数値が正しく反映されない HIROBON 11/3/9(水) 12:01 質問[未読]
【68466】Re:inputboxで入力した数値が正しく反映さ... kanabun 11/3/9(水) 12:11 回答[未読]
【68469】Re:inputboxで入力した数値が正しく反映さ... kanabun 11/3/9(水) 13:11 発言[未読]
【68483】Re:inputboxで入力した数値が正しく反映さ... kanabun 11/3/9(水) 23:37 発言[未読]

【68464】inputboxで入力した数値が正しく反映され...
質問  HIROBON E-MAIL  - 11/3/9(水) 12:01 -

引用なし
パスワード
   Inputboxでレートを入力し、該当セルに反映させたいのですが、なぜか下記複数インプットボックスがある中で、"a"と、"g"のみなぜか小数点が切り上げされてしまいます。(例) inputobox= \81.135⇒セル=\82.000-など

該当セル確認しましたが、他のセルの書式と全く同じで、なにが原因が検討がつきません.... この件解決策お分かりの方いらっしゃいましたら、お教えいただけますでしょうか???

よろしくお願い致します。

***下記VBA内容載せておきます***
///////////////////////////////////////////////////////////////////////
Sub 3.Aレート記入()

Dim i As Integer
Dim a As Integer

a = Application.InputBox(prompt:="1月レートを入力してください", Type:=1)
b = Application.InputBox(prompt:="2月レートを入力してください", Type:=1)
c = Application.InputBox(prompt:="3月レートを入力してください", Type:=1)
d = Application.InputBox(prompt:="4月レートを入力してください", Type:=1)
e = Application.InputBox(prompt:="5月レートを入力してください", Type:=1)
f = Application.InputBox(prompt:="6月レートを入力してください", Type:=1)
g = Application.InputBox(prompt:="7月レートを入力してください", Type:=1)
h = Application.InputBox(prompt:="8月レートを入力してください", Type:=1)
i = Application.InputBox(prompt:="9月レートを入力してください", Type:=1)
j = Application.InputBox(prompt:="10月レートを入力してください", Type:=1)
k = Application.InputBox(prompt:="11月レートを入力してください", Type:=1)
l = Application.InputBox(prompt:="12月レートを入力してください", Type:=1)

Worksheets("RegionPrice貼り付けシート").Cells(1, 9) = a
Worksheets("RegionPrice貼り付けシート").Cells(1, 11) = b
Worksheets("RegionPrice貼り付けシート").Cells(1, 13) = c
Worksheets("RegionPrice貼り付けシート").Cells(1, 15) = d
Worksheets("RegionPrice貼り付けシート").Cells(1, 17) = e
Worksheets("RegionPrice貼り付けシート").Cells(1, 19) = f
Worksheets("RegionPrice貼り付けシート").Cells(1, 21) = g
Worksheets("RegionPrice貼り付けシート").Cells(1, 23) = h
Worksheets("RegionPrice貼り付けシート").Cells(1, 25) = i
Worksheets("RegionPrice貼り付けシート").Cells(1, 27) = j
Worksheets("RegionPrice貼り付けシート").Cells(1, 29) = k
Worksheets("RegionPrice貼り付けシート").Cells(1, 31) = l

End Sub
//////////////////////////////////////////////////////////////

【68466】Re:inputboxで入力した数値が正しく反映...
回答  kanabun  - 11/3/9(水) 12:11 -

引用なし
パスワード
   ▼HIROBON さん:
> なぜか下記複数インプットボックスがある中で、
> "a"と、"g"のみなぜか小数点が切り上げされてしまいます。
> (例) inputobox= \81.135⇒セル=\82.000-など

"g" については分かりませんが、 "a"については原因わかります。
変数a のデータ型が Integer で宣言してあるためでしょう。
>Dim a As Integer

【68469】Re:inputboxで入力した数値が正しく反映...
発言  kanabun  - 11/3/9(水) 13:11 -

引用なし
パスワード
   ▼HIROBON さん:
>"a"と、"g"のみなぜか小数点が切り上げされてしまいます。

これは
>Sub 3.Aレート記入()
>
>Dim i As Integer
>Dim a As Integer

という変数宣言からすると、

"a"と、"i" のみ なぜか整数化されてしまいます
の勘違いではないですか?

【68483】Re:inputboxで入力した数値が正しく反映...
発言  kanabun  - 11/3/9(水) 23:37 -

引用なし
パスワード
   ▼HIROBON さん:
それから、ご質問の件から外れますが、

>Sub 3.Aレート記入()

こういう↑プロシージャ名は ありえないですね。

あと、全体をFor〜Nextで以下の感じにまとめることもできます。

Sub try_レート記入()
 Dim i As Long
 Dim col As Long
 Dim ans As Variant '実数値を受けるのだからDouble型でよいが、 _
           ユーザーが[Cancel]ボタンを押して入力スキップ _
           できるように Variant型にしている。
 
 col = 9
 For i = 1 To 12
   ans = Application.InputBox( _
      i & "月レートを入力してください", Type:=1)
   If VarType(ans) = vbDouble Then
     Worksheets("RegionPrice貼り付けシート").Cells(1, col) = ans
   End If
   col = col + 2
 Next
End Sub

2365 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free