プロが教える店舗&オフィスのセキュリティ対策術

EXCEL97を使用しています。

結合セルと結合していないセルが共に含まれた範囲を指定してコピーし、別のセルに『形式を選択して貼付け』の『貼付 値』を行った場合に「この範囲には同じ操作のセル結合が必要です」とのメッセージが出て、貼付けできません。

※ 上記の選択範囲の例
  A1とB1をセル結合した上、A1:B4を範囲指定(A2:B4は通常セル)

書式設定のボタンの『←a→』という形のものを使っているのですが、95の時はセル結合機能までが付与されてなかったので、問題なかったのですが、97になって困っています。

以下のようなアイデアはありますが、それ以外に良いものはあるでしょうか。
1.セル結合した部分とセル結合していない部分を2回に分けて行う
2.上記ボタンを使用せずに、セルの書式の横位置を『選択範囲内で中央』を選択

A 回答 (2件)

マクロを作ってみました。

(同一シート内で作ってしまいました。変更は楽でしょう)結合セルを含む範囲とコピー先左上単一セルを選択(コントロールキーを使って)して実行します。
選択状態のチェック等は省いています。マクロの手順はコメントを見てください。
普通にコピーして値に変えています。ショートカットキーを割り当てると楽かもしれません。ご参考に。

↓以下を標準モジュールに貼り付けます。
'========================================================
'結合セルを含む範囲を値複写する
' 結合セルを含む範囲とコピー先左上セルを選択して実行
'  ※複写先の範囲に結合セルがあれば解除する
'========================================================
Public Sub mergeCellsValue_copy()
  Dim rg As Range 'セル(ワーク)
  Dim rgCopy As Range 'コピー元セル範囲
  Dim rgPaste As Range 'コピー先左上セル

  'どちらがコピー元か決める
  For Each rg In Selection.Areas
    If rg.Cells.Count = 1 Then
      Set rgPaste = rg
    Else
      Set rgCopy = rg
    End If
  Next

  'コピー先範囲が結合されていれば解除する
  rgCopy.Offset(rgPaste.Row - 1, rgPaste.Column - 1).Select
  Selection.MergeCells = False

  '通常のコピーを実行
  rgCopy.Copy: rgPaste.Select: ActiveSheet.Paste
  
  'コピー先範囲を選択範囲にする
  rgCopy.Offset(rgPaste.Row - 1, rgPaste.Column - 1).Select

  'コピー先範囲の各セルを値にする
  For Each rg In Selection
    rg = rg.Value
  Next
End Sub
    • good
    • 0
この回答へのお礼

わざわざプロシージャーを書いていただきありがとうございました。

Selection.MergeCells = False
の箇所が特に助かりました。
結局、プロシージャーを作り、ワークシートを変更することで既存のものをそのまま作ることといたしました。

ありがとうございました。

お礼日時:2001/11/15 09:16

>セルに『形式を選択して貼付け』の『貼付 値』を行った場合



これはあくまでも「コピーした中の「値」のみを選択して貼り付けます」という意味なので、当たり前ですがセルの書式まではペーストされません。
ちなみにこの時、コピーしたい場所を範囲指定して通常の「貼り付け」を行えば値も書式もペーストされます。「形式を選択して貼り付け」では「すべて」ですね。

ただペースト先での加工等もあるでしょうから、すべてのセル内容を貼り付けると不都合があるのなら、箇条書きの中の1番でやるのがいいと思います。これは、2番でやってもセルの書式は反映されないので、1番をやるのと同じになるからです。結局セルを結合させるか、横位置を指定するかの違いだけになるでしょう。

あと、ワークシートごとコピーしてしまい、いらない部分を削除するのも簡単ですよ。これも結局書式の加工はすることになるでしょうけどね。

この回答への補足

言葉足りずだったと思います。

コピー元には数式が入っており、コピー先(別Book)へは、数式の計算結果の値を貼り付ける作業を行っています。これはBookの計算が余りにも重く、Bookを分けるために行っているからです。
すべてで行うと式がコピーされ、うまくありませんでした。

毎日の作業になりますから、VBAマクロの変更かワークシートにレイアウトの変更をしなければなりませんので、どれが一番楽かということを確認したかったのです。

マクロの変更の方が楽そうですので、1を選択するつもりではいます。

補足日時:2001/11/14 10:59
    • good
    • 0
この回答へのお礼

#2の方の所に記載いたしましたが、ワークシートの変更の方で行いました。

ありがとうございました。

お礼日時:2001/11/15 09:18

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