2022年3月19日土曜日

エクセルのマクロでDimを使ったマクロをDim無しでも動くようにした。

何という題名という感じですが内容はというと

オイラは毎日全財産の管理をエクセルで書いています。



表が横に長いので分割してブログに載せました。

表の一番下の行をコピーして下に伸ばしていきます。

上のでいえば1168行部分で2022/03/10の行です。

表の右側にはタイでのお金部分を記入しています。

左部分は日本のお金部分の管理を記入しています。

23列ある部分(B列~X列)をコピーしています。

毎日の作業なのでコピー作業をマクロで実施しています。

右端にある小さな表はタイのお金(バーツ)を計算する表です。


マクロの出会いは昔働いていた会社で各人の作業日報をエクセルで書くことになり

エクセルに疎い人でもできるようにマクロを作ったことがありました。

その時はまだDimの使い方どころかそれ自体も知りませんでした。

社長が知っていると聞き教えてもらいました。

そこでDimを使ってエクセルが使えない人でも使えるような日報を作りました。


会社を辞めて家にずーっといる時にオイラの総資産管理票を作ろうと思い立ちました。

タイの銀行口座が4つとタイバーツの現金、日本の銀行口座多数と現金

その他の資産分の管理です。

同じ作業の繰り返しなのでマクロを作った次第です。

そしてDimという式を作ってマクロが完成しました。

一部手書きで作っていくので大変でした。

そんな式をこのブログに残しておきました。


暫くしてからネット(You Tube)でマクロの相対参照というのを知りました。

相対参照の他に絶対参照というのもあります。

マクロの最初の設定では絶対参照となっています。

これを相対参照、絶対参照を切り替えマクロを記録していけば

Dimを使わなくても今回の表を動かすことができます。

殆どキー操作だけで作ったマクロ式が下のものです。

Sub 補正無し01()

' 補正無し01 Macro

' 絶対参照と相対参照切り替え

'下の1行だけ手入力した。内容は画面動かないようにする。

'なくてもいいが画面がチラチラしないので利用している。

Application.ScreenUpdating = False


    Range("B1").Select

    Selection.End(xlDown).Select

    Range(Selection, Selection.End(xlToRight)).Select

    Selection.Copy

    ActiveCell.Offset(1, 0).Range("A1").Select

    ActiveSheet.Paste

'ここから下は右の小さな表を1行下げる式です。

    Range("AD2").Select

    Selection.End(xlDown).Select

    ActiveCell.Range("A1:I6").Select

    Application.CutCopyMode = False

    Selection.Cut

    ActiveCell.Offset(1, 0).Range("A1").Select

    ActiveSheet.Paste

'小さな表の切取り貼付けはここで完了です。

    Range("B1").Select

    Selection.End(xlDown).Select

    ActiveCell.Offset(0, 1).Range("A1").Select

End Sub

23列部分のマクロは6行(青色)で完成しました。

小さな表部分の1行下に切取り貼付けは7行(赤色)で完了です。

その下の3行は日付部分にセルを持って行くために書いてあります。

これが無くてもそれほど問題はありません。


以前のマクロ式では30行くらいありますし書いていくのに相当頭を使いましたが

新しいことを見つけ実践していくのに苦はありません。

0 件のコメント:

コメントを投稿

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

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