あなたの「必」の書き順を教えてください

いつもお世話になります

Excelで単独セルからマージされたセルにコピーすると警告が出るので
VBA下記のようにプログラムで実行してみました

mRow1 = 4
mCol1 = 3
Cells(mRow1, mCol1).Copy

mRow3 = 4
mCol3 = 6
Cells(mRow3, mCol3).Select
Application.DisplayAlerts = False

Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats

始めは隠れていて気が付かなかったのですが、これだとマージされた二つのセルに
コピーされているのですね、マージを解いて分かりました。
そこで下記のようにプログラムを付け加えました

'...>すべてのセルにコピーされてしまうので先頭アドレス以外はクリアする
mRow4 = mRow3 + Cells(mRow3, mCol3).MergeArea.Rows.Count - 1
mCol4 = mCol3 + Cells(mRow3, mCol3).MergeArea.Columns.Count - 1
For k = mRow3 To mRow4
For m = mCol3 To mCol4
If k <> mRow3 Or m <> mCol3 Then
Cells(k, m) = ""
End If
Next m
Next k
'...<

これで今はプログラムを稼働していますが
古いプログラムを使ったExcelはいまだに値が隠れたままで、計算するとその値まで拾ってきて
違った結果となってしまいます

そこで、その隠れた値をExcel上で消したいのですが方法がありましたら教えてください
分かりずらい文章かも知れませんがよろしくお願いいたします

また、コピーのマクロで他の方法がありましたら併せて教えてください

A 回答 (1件)

こんばんは、


ご質問の意味を理解していなかったらごめんなさい
結合セルを再設定するのが良いかな?
と言っても広範囲であれば、少し問題があるかも知れません。

>また、コピーのマクロで他の方法がありましたら併せて教えてください
方法は色々ありそうですが、示されているコードの場合、Excelのお節介を利用して再設定を利用すると
mRow1 = 4
mCol1 = 3
mRow3 = 4
mCol3 = 6
Application.DisplayAlerts = False
Cells(mRow1, mCol1).Copy
With Cells(mRow3, mCol3).MergeArea
.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
.UnMerge
.Merge
End With
Application.CutCopyMode = False
Application.DisplayAlerts = True


.MergeAreaは単セルに対してもエラーが返らないのでforより良いかも
消す場合も利用できるかな?
    • good
    • 0
この回答へのお礼

ありがとうございました

これからもよろしくお願いいたします

お礼日時:2021/10/26 09:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報