2017年2月8日水曜日

エクセルのマクロ式の説明続き

今回は財布の表をひとつだけ下に動かすマクロ式の説明だ。

Sub 財布の金計算02()
'
' 財布の金計算02 Macro
'

'
'財布金表の左上選択
  今回は画面が行ったり来たりしないので画面が動かない式は入れていない
  財布お金計算表を探す
    まずは財布のお金計算表の左上の日付を探す
   Dim Range1, 1 As Range
   Set 1 = Range("Z2")
   Set Range1 = Range("Z2").End(xlDown)
   Z2から下ののセルで数値(この場合は日付)を探す
   Set 1 = Range1.Offset(0, 0)
    探したセルでOffset(0, 0)ということはその位置のセルということ
      
   財布お金計算表の右下端を探す
   Dim Range2, 2 As Range
   Set Range2 = Range("Z2").End(xlDown)
  Set 2 = Range2.Offset(5, 8)
   Z2の下のセルで数値が入っているところを探しそして
   Offset(5, 8)ということで下に5右に8のところを行2とする

   Range(1, 2).Select
     Range(1, 2).Selectは計算表を選択するということ
  
 '1から行2を切取
   Selection.Cut
     選択した表を切り取る

 表を一つ下にコピーする準備
 '1の一つ下を選択の意味
   Dim Range3, 3 As Range
   Set 3 = Range1.Offset(1, 0)
  3Range1Set Range1 = Range("Z2").End(xlDown)
Offset(1, 0)で下に一つ下のこと
   'Set Range3 = Range("Z2").End(xlDown)
   'Set 3 = Range3.Offset(3, 0)
  'Set 3 = Range3.Select
    Dim Range4, 4 As Range
   Set 4 = Range1.Offset(1, 0)
    これは行3と同じセル
   行3だけだとうまくマクロが動かなかった
   これがわかるまで苦労した
    Range(3, 4).Select
     既存の表の一つ下を選択した
  
  '選択したところに貼付
   ActiveSheet.Paste
   
   
  Range("AB1").Select
   カーソルAB1戻す
   Application.ScreenUpdating = True
  
   Application.CutCopyMode = False
   
    前回のブログで説明したモヤモヤを消す式
   

End Sub


スッキリ式は以下の通り

Sub 財布の金計算02()
' 財布の金計算02 Macro
   Dim Range1, 1 As Range
   Set 1 = Range("Z2")
   Set Range1 = Range("Z2").End(xlDown)
   Set 1 = Range1.Offset(0, 0)
   Dim Range2, 2 As Range
   Set Range2 = Range("Z2").End(xlDown)
  Set 2 = Range2.Offset(5, 8)
   Range(1, 2).Select
   Selection.Cut
   Dim Range3, 3 As Range
   Set 3 = Range1.Offset(1, 0)
    Dim Range4, 4 As Range
   Set 4 = Range1.Offset(1, 0)
    Range(3, 4).Select
   ActiveSheet.Paste
  Range("AB1").Select
   Application.ScreenUpdating = True
   Application.CutCopyMode = False
End Sub

マクロをやっている人が見ると無駄が多い式とか

式が綺麗でない(整っていない)と言われそうな気がする。

0 件のコメント:

コメントを投稿

海外(タイ)から楽天市場で購入が面倒くさい状態です。

楽天の期間限定ポイントが11月20日に切れるのがあったので 楽天市場で買い物をすることにした。 日本にいれば街のお店で使えるのだが 日本不在ではそれができないので楽天市場で買い物をすることにした。 日本に行くまでの期間にポイントが切れるのが760ポイントあるので それを処理するこ...