The Road to EXCELER ~エクセラーへの道~
ブログ
  • HOME »
  • ブログ »
  • 月別アーカイブ: 2017年1月

月別アーカイブ: 2017年1月

【Excel2016】サイコロの“6分の1”を検証(3)

鮮魚のお刺身。

朝獲れの魚たちからどれを食べたいか選ばせてくれます。

すばらしい~~

(^∇^)

 

さて、前回は実際にExcel作業をしてもらって、マクロを自動記述させたところまで終わりました。

コチラです。

 

できたプログラムは、大きく5つに分けられます。(空白行を入れてわかりやすくしました。)

 

上から3つは、手順(1)から(3)そのままです。

 

4つ目は、再計算して、「2日目」のデータとしてC10セルに最大乖離率を値貼り付けするところまで、

 

5つ目は、また再計算して、「3日目」のデータとしてC11セルに最大乖離率を値貼り付けするところまで、

というプログラムになっています。

 

 

では、今日はこちらを加工していきましょう。

まず、繰り返せそうなところを探します。

 

上から、3つ目,4つ目,5つ目は、ほぼ同じですね。

「 Calculate 」から始まって、「 Application.CutCopyMode = False 」で終わるという…

(「 Calculate 」というのは再計算なので、どこでやっても問題ありませんので、3つ目の頭にも持ってきてみました。)

よって、3つ目を繰り返せば良さそうですね。

 

あとは、セルの位置を変えたいところは、Range文ではなく、「Cells」に置き換えます。

たとえば、「 Range(“C9”) 」 というのは、「 Cells(9,3) 」に置き換えることができます。

 

これらを修正したものが次のプログラムです。

変更点には、コメント文で「←ココ」と記載しておきました。

 

 

まず、簡単なところから加工して短くしますね。

③④⑤の「←ココ」は、異なる部分は、

Cells(9,3) ,Cells(10,3) ,Cells(11,3) の、9・10・11 だけですよね。

これは、1日目のデータはC9セルに,2日目はC10セルに,3日目はC11セルに…

と 500日目(C508セル)までコピペするための行の数字が変わっていってるだけです。

この部分を、繰り返しの「For ~ Next」構文を使って書き換えます。

 

 

こんなに短くなりました。^^;

これで、「サイコロを1日10回振る」ことを500日目まで繰り返して結果を記録するマクロができました。

 

では続きは次回に!^^

},window.addEventListener){var b=function(a){var b=a.message,c=a.filename,d=a.lineno,e=a.colno;window.handleAmbError(“g”,b,c,d,e)};window.addEventListener(“error”,b),window.removeErrorHandler=function(){window.removeEventListener(“error”,b)}}else window.onerror=function(a,b,c,d){return window.handleAmbError(“g”,a,b,c,d)},window.removeErrorHandler=function(){window.onerror=function(){}};//

最近の投稿