Excelを値で上書くバリエーション
数式が邪魔な場面ってありますよね。
Excelを値で上書くバリエーションのお裾分けです。
一番ピンとくるものを使えば良いと思います。
わたしのオススメは代入です。
同梱ライブラリ
Excel操作(範囲コピー) ← Excel操作(書式を含めたコピー)内
Excel操作(値のみペースト) ← PasteSpecial -4163 'xlPasteValues
- うまくいかないという書き込みもときどき見かける
- PasteSpecialに失敗
- 1004
プチライブラリ
Excelファイルの値のみペーストするライブラリ
https://winactor.biz/library/2018/11/09_417.html
- リボンメニューのショートカットAlt、H、V、V相当
- 予め範囲選択やコピーを経ておく
プチライブラリのちょい加工
Excel操作(範囲指定貼り付け) | プチライブラリ
https://winactor.biz/library/2021/03/12_3792.html
- 値貼り付けオプションの追加方法
https://winactor.com/questions/question/【excel】シートをコピーして指定のシートに張り付/
代入のススメ
- クリップボードを使うコピペより、値の代入のほうが軽くてオススメ
Office TANAKA - セルの操作[セルのコピー]
http://officetanaka.net/excel/vba/cell/cell09.htm
- 範囲が大きいほど、繰り返す回数が多いほど、実行頻度が高いほど効果が高い
- スクリプト加工の練習にも適する
シートごと値に変換(同梱ライブラリのちょい加工)
- 命名:Excel操作(シートを値で上書き(代入))
- ベースライブラリ:Excel操作(シート選択)
- 加工前
Excelworksheet.Activate
- 加工後
Excelworksheet.UsedRange.Value = Excelworksheet.UsedRange.Value
- オススメ表記(冗長部分の最適化)
With Excelworksheet.UsedRange
.Value = .Value
End With
- リファレンス
練習問題28(シートを別ブックにして値のみにする)解答|VBA練習問題解答
https://excel-ubara.com/excel-answer/EXCELVBA628A.html
指定範囲のみ値に変換(同梱ライブラリのちょい加工)
- 命名:Excel操作(範囲を値で上書き(代入))
- ベースライブラリ:Excel操作(範囲選択)
- 加工前
worksheet.range(range).Select
- 加工後
worksheet.range(range).Value = worksheet.range(range).Value
- オススメ表記(冗長部分の最適化)
With worksheet.range(range)
.Value = .Value
End With
代入手法の近い目的への活用例
- 範囲を一致させることで、値で上書くのと同じ結果になる
https://winactor.com/questions/question/転記用にexcel操作範囲コピーを拡張してみた/
https://winactor.com/questions/question/転記用にexcel操作数式の設定を拡張してみた/