[[20261022162441]] 『こんなマクロって』(ブルー) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『こんなマクロって』(ブルー)

こんにちは データの最終行までのa〜e列の数式を値の貼り付けをして同じく
a〜e列の数式をデータの最終行より100行コピーするマクロってできますか

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


おそらくできます。
どこがどのようにわからないのでしょうか。
(匿名) 2026/10/22(木) 16:52:09

すべてです
(ブルー) 2026/10/22(木) 17:13:18

 VBAを基本から教えるのは至難の業です。ここのようなサイトは自分で
 ある程度できていて行き詰ってるところを質問するようなところですからね。

 >すべてです

 VBEの出し方すらわからない、ということですか?
(通りすがりマン2号) 2026/10/22(木) 17:26:52

いやどういうコードを書けばいいかわからなくて
(ブルー) 2026/10/22(木) 18:04:23

 1.データの最終行を取得する
 2.そこから100行数式をコピー
 3.そこまでの数式を値の貼り付け

 の順番で組み立てるとして、

 1は、途中に空白セルがあっても良い様に End(xlUp) で考える。
 2と3はとりあえず[マクロの記録]で粗々のコードを作ってみる。

 まずはそんな所からではないでしょうか。
 何となく「どういうコードを書けばいいか」が見えてくるかも知れません。
 (来ないかも知れないけど ^^;)

(白茶) 2026/10/22(木) 18:32:25


 などと言っておきながら↑を無視した雑なサンプルを投下↓ ^^;

    Dim e As Range

    Rem a〜e列の最終行を取得する
    Set e = Intersect(Cells(1, 1).CurrentRegion, Columns("A:E"))
    Set e = e.Rows(e.Rows.Count)

    Rem 最終行から下11行分フィルダウン(数式コピーの代わりに)
    e.Resize(11).FillDown

    Rem 先頭から最終行までの範囲をコピーして値貼り付け
    With Range(Cells(1, 1), e)
        .Copy
        .PasteSpecial xlPasteValues
    End With

(白茶) 2026/10/22(木) 18:49:40


 あー、質問とは直接関係ないですが、
 1行目にだけ数式残しておいて、1行目から数式をコピーするというのもアリかも。(運用面の話)

 1.データの最終行を取得する
 2.2行目から最終行までの数式を値貼り付け
 3.最終行から下100行に1行目の数式をコピぺ

(白茶) 2026/10/22(木) 18:55:55


白茶さんありがとうございます
もし3の部分 いま100行ですが行数を変えたい時とかはどうすればよろしいでしょうか
(ブルー) 2026/10/22(木) 20:29:20

 2018年ごろからの同じHNを使っている方の過去ログ見てみたけれど、だいたい
 「どうすればよろしいでしょうか」調ですね
 他の人とはちょっと思えなかった
 自分では全然覚えようとはしてない私初心者ですから全て作ってください調ですね
(c調) 2026/10/22(木) 22:23:23

 上述の雑なサンプルを例に言うなら
 e.Resize(11).FillDown
 の「11」の部分を変数に置き換え、その変数に設定値をどう入れるのかという課題になります。

 あらかじめ所定の場所(別シート上のセル等)に書いておいた設定値をマクロに読みに行かせたり、
 設定値を引数で受け取るマクロにしておいて、マクロ実行用のマクロを設定値を変えて幾つか用意しておいたり、
 マクロの中でInputBoxやUserformを使ってユーザーに具体的に数値で指定させたり、

 まー、そこはどれくらいの自由度を以って変えたいのか、とか道具としての使い勝手を考慮してみて、
 適した選択肢が色々あるのではないかなぁと思います。

(白茶) 2026/10/22(木) 22:37:38


コメント返信:

[ 一覧(最新更新順) ]


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