[[20250716205716]] 『Excelのカット&ペーストで罫線を保持しつつ、値ax(Shirosuke) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『Excelのカット&ペーストで罫線を保持しつつ、値のみを貼り付けるには、VBA』(Shirosuke)

Excelのカット&ペーストで罫線を保持しつつ、値のみを貼り付けるVBAは可能でしょうか。職員名簿を作成していますが移動の際カットしてペーストする職員がいて表の罫線が崩れてしまい困っています。よろしくお願いします。

< 使用 Excel:Excel2021、使用 OS:unknown >


可能です。
マクロの記録を使うと、参考となるコードが得られますから、それを叩き台にして作成されるとよいとおもいます。

(もこな2 ) 2025/07/16(水) 23:08:09


 下記いずれかが方針かと思われます。

 ?@ 元データの行数を変更したくない場合(切り取り後のセルを空白として保持したい場合)
 PasteSpecialを2回用いて値と罫線をコピペ
 ClearContentsで元のデータの値のみを消す

 ?A元のデータを詰めたい場合
 Cutで貼り付け後に.Value = .Valueで値のみに変換
 元のセルをDeleteしてShiftを指定
(デボラ) 2025/07/17(木) 00:57:09

既に具体的なアドバイスがあるところですが、コメントしておきます。

■1
手作業で以下のような作業を行い、マクロの記録でコード化すれば、たたき台となるものが得られるとおもいます

 1. セル範囲をコピーする
 2. 貼り付けしたいところに、値貼り付けする
 3. コピーした範囲をクリア(削除)する

■2
ただ、マクロを作ったところで使ってもらわないと計画が頓挫するので、むしろ体裁を壊された後復元する方向で考えたほうが早そうな気がしないでもないです。

 マクロを作ったところで、コピー元と貼付先の2つのセル(範囲)を
 指定してもらう必要があるので、値貼り付けしない人が使うか?という話です。

(もこな2) 2025/07/17(木) 08:03:29


 新しいマクロで当該作業をするというよりも、
 カットアンドペイストをしてしまう人にも、なんらかの対応措置を図って、
 罫線を消されないようにしたい、ということなんでしょうか。
 (「値のみ貼り付けしたい」というのは、ポイントは「元の範囲の罫線は壊すな」と言う意味で、
  それさえ守られれば、仮に貼り付け先に罫線が貼り付けられても問題ないんでしょう?)

 もしそうだとすると、基本は、シートに注意書きを書き入れ、ユーザーのリテラシーの向上に俟つということでしょうか。
 どうしてもということなら、やはりシートの保護に行き着くのではないですか?
 ・いったんシート全体の「ロック」を外す。
 ・変更されたくないセル範囲を「ロック」する。
 ・シートを保護する。(ただし、セルの選択や、セルの書式変更など必要な作業を許容する設定とします。
 こうすれば、
 ・該当セル範囲をカットした段階で、保護されている旨の警告が出てカットアンドペイストは実行できず、罫線の消去は回避できます。
 ・ただし、コピーペイストは出来ます。注意書きをして、コピーペイストに誘導してください。

 # ただし、シート保護の影響で、罫線を引こうとすると、特定の種類の罫線(格子とか、外枠)が利用できなくなります。
 # これは理由が分かりません。"太い外枠"は可能だが、"外枠"は使えないとか、意味わからん状態です。
 # バグっぽい振る舞いの印象です。当方Excel365です。情報お持ちの方はご教示下さい。

 (*)前回[[20250714061207]]と同じような手法が取れないかと思いましたが、うまくいかないですね。
 カットアンドコピーは、
 ・貼り付けられた瞬間に初めてChangeイベントが発生し(元範囲と貼り付け先の2カ所で発生)、
 ・カットアンドコピーでは、その都度、Application.CutCopyModeはクリアーされるので、
   イベント発生時点では、すでに Application.CutCopyMode は 0 になってしまっています。
   (折角、xlCopyとxlCutの二つのモードを持っているのに、この場合は利用できません。)
 また、SelectionChangeイベントプロシージャで、Application.CutCopyMode = xlCut をチェックし、
 そうなったら  Application.CutCopyModeを Falseにセットすれば、少なくともカット&コピーはストップできます。
(xyz) 2025/07/17(木) 08:07:16

余談でもう一点。

■3
書式さえ復元できればそれでいいという話なら、別シートに書式を保持しておいて、changeイベントで書き換えのあったセルだけ、書式貼り付けして復元するアプローチを考え付きますが、「元に戻す」が使えなくなっちゃうので、ユーザーから不満でるでしょうね。たぶん。

(もこな2 ) 2025/07/17(木) 08:44:51


もこな2さんいつもありがとうございます。もこな2さんが言われた体裁を壊された修復の方法も考え別シートに書式を保持しておき貼り付けの方法で復元する事も行いましたがやはり使い勝手が悪くやめてしまいました。

(Shirosuke) 2025/07/17(木) 20:11:29


xyzさんいつもありがとうございます。上司に移動なんだからカットだろと言われたのですが、表の罫線はペースト先で貼り付けされては困るので値のみとしています。そのような操作を行う人のための対応措置です。
xyzさんがが言われてる通り注意書きをいれ、コピー後ペーストは値のみか罫線を除く全てで行うよう誘導し対応を行っていきたいと思います。ありがとうございました。
(Shirosuke) 2025/07/17(木) 20:33:23

>やはり使い勝手が悪く〜
changeイベントにこだわらないなら、ブックの保存時だけ処理するとか回避案もありますね。

(もこな2 ) 2025/07/17(木) 22:34:21


コメント返信:

[ 一覧(最新更新順) ]


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