Excel VBA質問箱 IV

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

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


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

【44487】小数点以下を二桁に minarai 06/11/18(土) 16:13 質問[未読]
【44488】Re:小数点以下を二桁に Mariko 06/11/18(土) 17:41 発言[未読]
【44489】Re:小数点以下を二桁に minarai 06/11/18(土) 21:33 お礼[未読]
【44491】Re:小数点以下を二桁に minarai 06/11/18(土) 22:30 お礼[未読]
【44493】Re:小数点以下を二桁に Mariko 06/11/19(日) 7:57 発言[未読]
【44494】Re:小数点以下を二桁に りん 06/11/19(日) 12:53 回答[未読]
【44520】Re:小数点以下を二桁に minarai 06/11/20(月) 14:14 質問[未読]
【44521】Re:小数点以下を二桁に りん 06/11/20(月) 14:46 発言[未読]
【44535】Re:小数点以下を二桁に minarai 06/11/20(月) 19:23 お礼[未読]

【44487】小数点以下を二桁に
質問  minarai  - 06/11/18(土) 16:13 -

引用なし
パスワード
   コード場所に記入しました部分を小数点以下二桁にする方法を知りたいですが
宜しくお願いします

       B3      C3      D3      E3    
銘柄名  20日間の高値 当日の終値 20日間の高値 20日間の安値
新日鉱HD  883     806     883       803

F5        H3   H4      H5    H6     
100%       77   80    0.9625    96.25
                                   
                                   
Sub 株価オシロレータ自動計算()
'
' 株価オシロレータ自動計算 Macro
' マクロ記録日 : 2006/11/15 ユーザー名 :
'

'
  Range("H3").Select
  ActiveCell.FormulaR1C1 = "=RC[-6]-RC[-5]"
  Range("H4").Select
  ActiveCell.FormulaR1C1 = "=R[-1]C[-4]-R[-1]C[-3]"
  Range("H5").Select
  ActiveCell.FormulaR1C1 = "=R[-2]C/R[-1]C"←ここの計算結果を小数点以下二桁に四捨五入は
  Range("H6").Select
  ActiveCell.FormulaR1C1 = "=R[-1]C*R[-1]C[-2]"←ここの計算結果を小数点以下二桁に四捨五入は
  Range("H3:H6").Select
  Selection.Copy
  Range("H7:H10").Select
  ActiveSheet.Paste
  Range("H11:H14").Select
  ActiveSheet.Paste
  Range("H15:H18").Select
  ActiveSheet.Paste
  Range("H19:H22").Select
  ActiveSheet.Paste
  Range("H23:H26").Select
  ActiveSheet.Paste
  Range("H27:H30").Select
  ActiveSheet.Paste
  ActiveWindow.SmallScroll Down:=3
  Range("H31:H34").Select
  ActiveSheet.Paste
  Application.CutCopyMode = False
  ActiveWindow.SmallScroll Down:=-9
End Sub

【44488】Re:小数点以下を二桁に
発言  Mariko  - 06/11/18(土) 17:41 -

引用なし
パスワード
   ▼minarai さん:
今晩は。
相対的なセル選択ではなく、絶対的なセル選択をされては?如何でしょうか。
そのほうがこの場合は分かりやすいのでは。

>コード場所に記入しました部分を小数点以下二桁にする方法を知りたいですが
>宜しくお願いします
>
>       B3      C3      D3      E3    
>銘柄名  20日間の高値 当日の終値 20日間の高値 20日間の安値
>新日鉱HD  883     806     883       803
>
>F5        H3   H4      H5    H6     
>100%       77   80    0.9625    96.25
>                                   

>  Range("H3").Select
>  ActiveCell.FormulaR1C1 = "=RC[-6]-RC[-5]"
>  Range("H4").Select
>  ActiveCell.FormulaR1C1 = "=R[-1]C[-4]-R[-1]C[-3]"
>  Range("H5").Select
>  ActiveCell.FormulaR1C1 = "=R[-2]C/R[-1]C"←ここの計算結果を小数点以下二桁に四捨五入は
この上の部分では
  Range("H3") = Range("C3") - Range("D3")
  Range("H4") = Range("D3") - Range("E3")  
  Range("H5") = Range("H3") / Range("H4")
  Range("H5").NumberFormatLocal = "0.00"
もっとシンプルに書けるでしょうが・・・とりあえず4行の処理をこれに置き換えて
後も同じようにされては・・・

【44489】Re:小数点以下を二桁に
お礼  minarai  - 06/11/18(土) 21:33 -

引用なし
パスワード
   Excel VBAは素人ですので四行の改変は理解できませんでしたが
教えていただいたRange("H6").NumberFormatLocal = "0.00"
を挿入しましたら見事小数点以下が二桁に計算されるように
なりました。有難うございました。

Sub 株価オシロレータ自動計算()
'
' 株価オシロレータ自動計算 Macro
' マクロ記録日 : 2006/11/15 ユーザー名 :
'

'
Range("H3").Select
  ActiveCell.FormulaR1C1 = "=RC[-6]-RC[-5]"
  Range("H4").Select
  ActiveCell.FormulaR1C1 = "=R[-1]C[-4]-R[-1]C[-3]"
  Range("H5").Select
  ActiveCell.FormulaR1C1 = "=R[-2]C/R[-1]C"
  Range("H6").Select
  ActiveCell.FormulaR1C1 = "=R[-1]C*R[-1]C[-2]"
  Range("H6").NumberFormatLocal = "0.00"
  Range("H3:H6").Select
  Selection.Copy
  Range("H7:H10").Select
  ActiveSheet.Paste
  Range("H11:H14").Select
  ActiveSheet.Paste
  Range("H15:H18").Select
  ActiveSheet.Paste
  Range("H19:H22").Select
  ActiveSheet.Paste
  Range("H23:H26").Select
  ActiveSheet.Paste
  Range("H27:H30").Select
  ActiveSheet.Paste
  ActiveWindow.SmallScroll Down:=3
  Range("H31:H34").Select
  ActiveSheet.Paste
  Application.CutCopyMode = False
  ActiveWindow.SmallScroll Down:=-9
End Sub
 

【44491】Re:小数点以下を二桁に
お礼  minarai  - 06/11/18(土) 22:30 -

引用なし
パスワード
   Range("H5").NumberFormatLocal = "0.00"

度々すみません
("H6")では小数点以下二桁にはなりません("H5")ならセル何行でもOKでした。

【44493】Re:小数点以下を二桁に
発言  Mariko  - 06/11/19(日) 7:57 -

引用なし
パスワード
   ▼mina さん:
>Range("H5").NumberFormatLocal = "0.00"
>度々すみません
>("H6")では小数点以下二桁にはなりません("H5")ならセル何行でもOKでした。

十分に見ていなくってご免なさい。
ず〜っとコードを見させていただきましたが・・・・

もっとすっきりしたコードが出来そうですね。

Sub test ()
Dim i As Integer
  Range("H3") = Range("C3") - Range("D3")
  Range("H4") = Range("D3") - Range("E3")
  Range("H5") = Range("H3") / Range("H4")
  Range("H5").NumberFormatLocal = "0.00"
  Range("H6").NumberFormatLocal = "0.00"
For i = 4 To 28 Step 4
  Range("H3:H6").Copy Range("H3").Offset(i, 0)
Next
Range("A1").Select
End Sub

一度試してみてください

【44494】Re:小数点以下を二桁に
回答  りん E-MAIL  - 06/11/19(日) 12:53 -

引用なし
パスワード
   minarai さん、こんにちわ。

>コード場所に記入しました部分を小数点以下二桁にする方法を知りたいですが
>宜しくお願いします
>
>       B3      C3      D3      E3    
>銘柄名  20日間の高値 当日の終値 20日間の高値 20日間の安値
>新日鉱HD  883     806     883       803
>
>F5        H3   H4      H5    H6     
>100%       77   80    0.9625    96.25
>                                   
>                             
      
表示上ではなくて、計算結果を四捨五入したいならこんな感じ。
Sub 株価オシロレータ自動計算()
'
' 株価オシロレータ自動計算 Macro
' マクロ記録日 : 2006/11/15 ユーザー名 :
'
  Range("H3").Formula = "=B3-C3"
  Range("H4").Formula = "=D3-E3"
  Range("H5").Formula = "=ROUND(H3/H4,2)" 'ROUNDワークシート関数で四捨五入
  Range("H6").Formula = "=ROUND(H5*F5,2)" 'ROUNDワークシート関数で四捨五入
  'オートフィル
  Range("H3:H6").AutoFill Destination:=Range("H3:H34"), Type:=xlFillDefault
End Sub

【44520】Re:小数点以下を二桁に
質問  minarai E-MAIL  - 06/11/20(月) 14:14 -

引用なし
パスワード
   marikoさん・りん さん
A3       B3      C3      D3      E3    
銘柄名  20日間の高値 当日の終値 20日間の高値 20日間の安値
新日鉱HD   883     806     883       803

F5    H3   H4     H5     H6     
100%   77   80    0.9625    96.25

自動記録してmarikoさんに教えてもらいましたRange("H5").NumberFormatLocal = "0.00"を付け加えましたら思い通りの計算結果になりました。

マクロの詳しいことはよく知りませんが、りん さんのシンプルにしていただいたコードではコンパイルエラーになったり、marikoさんのシンプルにしていただいたコードでは複数の銘柄の計算が途中まで小数点以下二桁に残り三銘柄が小数点以下多数になったりします。
EXCELVBAコードが他人が開けないようにできますか。                             

【44521】Re:小数点以下を二桁に
発言  りん  - 06/11/20(月) 14:46 -

引用なし
パスワード
   minarai さん、こんにちわ。


>自動記録してmarikoさんに教えてもらいましたRange("H5").NumberFormatLocal = "0.00"を付け加えましたら思い通りの計算結果になりました。
これは表示上2桁(セルの書式設定で下2桁に設定)になっているだけで、数値としてはそれ以下の桁があります。

>りん さんのシンプルにしていただいたコードではコンパイルエラーになったり

コンパイルエラー?

Sub 株価オシロレータ自動計算()
  With Application.ActiveSheet
   .Range("H3").Formula = "=B3-C3"
   .Range("H4").Formula = "=D3-E3"
   .Range("H5").Formula = "=ROUND(H3/H4,2)" 'ROUNDワークシート関数で四捨五入
   .Range("H6").Formula = "=ROUND(H5*F5,2)" 'ROUNDワークシート関数で四捨五入
   'オートフィル
   .Range("H3:H6").AutoFill Destination:=.Range("H3:H34"), Type:=xlFillDefault
  End With
End Sub                 

どこでエラーになりますか?

>EXCELVBAコードが他人が開けないようにできますか。
エディタの画面で、ツール→VBAProjectのプロパティ
保護のところでパスワードを設定するといいです。

【44535】Re:小数点以下を二桁に
お礼  minarai E-MAIL  - 06/11/20(月) 19:23 -

引用なし
パスワード
   りん さん お世話になります。

>どこでエラーになりますか?

たいへん失礼しました、シンプルにしていただいたコード
で実行しましたら完璧に計算できました、四銘柄の
株価オシロレータ自動計算はパーセンテージすべて
下二桁になりました。

>>EXCELVBAコードが他人が開けないようにできますか。
>エディタの画面で、ツール→VBAProjectのプロパティ
>保護のところでパスワードを設定するといいです。

コードの保護の方法有難うございました。

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