[[20261105161338]] 『「こんなマクロって」[ブルー] について 応用』(ブルー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『「こんなマクロって」[ブルー] について 応用』(ブルー)

投稿
[[20261022162441]] 『こんなマクロって』(ブルー) 
について...
先日はもこな2さんをはじめありがとうございました
応用として
増加行数にファイルが開いたときからマクロを実行されるまでに追加された行数分にしたいのですができますでしょうかわかりにくければすいません

< 使用 Excel:Excel2019、使用 OS:Windows10 >


ファイルが開いたとき の行数をどこかに盛っておく必要があります。
例えば新規のシート作っていおいて、
シート名を"ini"とします。
iniシートのA1セルにファイルを開いた時の行数を入れて置けるようにする。
という感じです。
この例で私がやる場合は、iniシートは非表示にしておきます。
「ファイルが開いた時」はWorkbook_Openイベント処理で調べてみてください。
iniシートの行数とマクロを実行するときの行数の差を求めれば可能です。
他にも、方法はたくさんあると思います。
別ファイル(テキスト形式ファイル)にファイルを開いた時の行数を保存しておく…など
(匿名) 2026/11/05(木) 17:47:39

↑ファイルが開いたとき の行数をどこかに盛っておく必要があります。
すみません。誤字がありました。
盛っておくではなく、取っておく(保存しておく)です。
(匿名) 2026/11/05(木) 17:48:58

既に匿名さんからコメントがある通りかと思いますが別プランなど。

発想を変えて、
 1. .数式になっているセル範囲を特定する
 2. 「1.」の行数分ずらしてコピペ(数式の増加)
 3. 「1.」のセル範囲を値化
としてはどうでしょうか?

説明がしづらいのでコードを提示しますが、ちゃんと理解していただきたいので丸パクリして完成!というのはご遠慮ください。

    Sub 研究用2()
        Dim MyRNG As Range

        With Worksheets("1")
            On Error Resume Next
            Set MyRNG = Intersect(.Range("A1").CurrentRegion, .Columns("A:E")).SpecialCells(xlCellTypeFormulas)
            On Error GoTo 0
        End With

        If MyRNG Is Nothing Then
            MsgBox "数式セルが見つかりませんでした" & vbLf & "処理を中止します"
            Exit Sub
        End If

        Debug.Print MyRNG.Address(0, 0)
        Stop 'ブレークポイントの代わり

        MyRNG.Copy MyRNG.Offset(MyRNG.Rows.Count)
        MyRNG.Value = MyRNG.Value
    End Sub

(もこな2) 2026/11/05(木) 21:13:47


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.