Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6989 / 13646 ツリー ←次へ | 前へ→

【41901】結合されたセルの値のコピーを行うには カド 06/8/25(金) 17:46 質問[未読]
【41907】Re:結合されたセルの値のコピーを行うには かみちゃん 06/8/25(金) 19:49 発言[未読]
【41917】Re:結合されたセルの値のコピーを行うには カド 06/8/26(土) 7:21 発言[未読]
【41918】Re:結合されたセルの値のコピーを行うには かみちゃん 06/8/26(土) 8:03 発言[未読]
【41920】Re:結合されたセルの値のコピーを行うには カド 06/8/26(土) 8:20 発言[未読]
【41921】Re:結合されたセルの値のコピーを行うには かみちゃん 06/8/26(土) 8:28 発言[未読]
【41948】Re:結合されたセルの値のコピーを行うには カド 06/8/26(土) 17:21 発言[未読]
【41949】Re:結合されたセルの値のコピーを行うには [名前なし] 06/8/26(土) 17:33 発言[未読]
【41954】Re:結合されたセルの値のコピーを行うには カド 06/8/26(土) 23:09 お礼[未読]

【41901】結合されたセルの値のコピーを行うには
質問  カド  - 06/8/25(金) 17:46 -

引用なし
パスワード
   セルA1からA3が結合されていて、セルA1には”=B1”という式が入っています。
セルA4には”=B4”という式が入っています。 
セルA5には”=B5”という式が入っています。

ここで
セルA1からA5を選んで、セルC1からC5に貼り付ける場合において、
各セルの式を貼るのではなく各セルの値を貼ることを、マクロの記録を
使ってやろうとしました。

ところが
”この操作には、同じセルの結合が必要です”というエラーメッセージが出て
コピペが出来ないため、マクロの記録が出来ません。


これを実現するためのコードがお分かりの方よろしくお願いいたします。

【41907】Re:結合されたセルの値のコピーを行うには
発言  かみちゃん  - 06/8/25(金) 19:49 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>セルA1からA5を選んで、セルC1からC5に貼り付ける場合において、
>各セルの式を貼るのではなく各セルの値を貼ることを、マクロの記録を
>使ってやろうとしました。

どういうコードにしたのですか?
以下のコードでもできるようですが?
Sub Macro1()
 Range("A1:A5").Select
 Selection.Copy
 Range("C1:C5").Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
End Sub

C1〜C5は結合されていないですよね?どういう結果期待しているのでしょうか?
ちなみに以下のコードでもできると思います。
Sub Macro2()
 Range("C1:C5").Value = Range("A1:A5").Value
End Sub

【41917】Re:結合されたセルの値のコピーを行うには
発言  カド  - 06/8/26(土) 7:21 -

引用なし
パスワード
   ▼かみちゃん さん 回答ありがとうございます。

>Sub Macro1()
> Range("A1:A5").Select
> Selection.Copy
> Range("C1:C5").Select
> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
>  :=False, Transpose:=False
>End Sub

このコードを実行すると、やはり
”同じサイズの結合セルが必要です”
というエラーメッセージが出て実行出来ませんでした。


>C1〜C5は結合されていないですよね?どういう結果期待しているのでしょうか?

C1〜C3は結合されていて、C4とC5は結合されておらず、
各セルの値はA1〜A5と同じことを期待しています。

【41918】Re:結合されたセルの値のコピーを行うには
発言  かみちゃん  - 06/8/26(土) 8:03 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>このコードを実行すると、やはり
>”同じサイズの結合セルが必要です”
>というエラーメッセージが出て実行出来ませんでした。

なぜ、私のところでエラーにならなかったのでしょうか?
それは、「C1〜C3は結合されていて」という条件ではなかったからです。
そういう条件は、きちんと書いてください。

>>C1〜C5は結合されていないですよね?どういう結果期待しているのでしょうか?
>
>C1〜C3は結合されていて、C4とC5は結合されておらず、
>各セルの値はA1〜A5と同じことを期待しています。

[#41907]のMacro2は試されたのでしょうか?

【41920】Re:結合されたセルの値のコピーを行うには
発言  カド  - 06/8/26(土) 8:20 -

引用なし
パスワード
   ▼かみちゃん さん おはようございます。

>なぜ、私のところでエラーにならなかったのでしょうか?
>それは、「C1〜C3は結合されていて」という条件ではなかったからです。
>そういう条件は、きちんと書いてください。

ちょっと混乱させてしまったようですが、
コピペ前は「C1〜C3は結合されていません」
あくまでもコピペ後に結合されることを期待しているという
意味です。

【41921】Re:結合されたセルの値のコピーを行うには
発言  かみちゃん  - 06/8/26(土) 8:28 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>コピペ前は「C1〜C3は結合されていません」
>あくまでもコピペ後に結合されることを期待しているという
>意味です。

コピー、貼付け前は、「結合されていない」のであれば、
[#41907]のMacro1は動きますよ。
ただ、C1〜C3は、結合されていない状態になるので、コードの最後に結合する必要
がありますが・・・
少なくとも、エラーにはなりません。
エラーになるのは、貼付け先が結合されているからだと思います。

なお、どうしても、結合の必要がありますか?
結合セルは、VBAで何かと扱いにくい経験がありますので、個人的にはあまりおすすめしません。

【41948】Re:結合されたセルの値のコピーを行うには
発言  カド  - 06/8/26(土) 17:21 -

引用なし
パスワード
   ▼かみちゃん さん 何度もありがとうございます。

>コピー、貼付け前は、「結合されていない」のであれば、
>[#41907]のMacro1は動きますよ。
>ただ、C1〜C3は、結合されていない状態になるので、コードの最後に結合する必要
>がありますが・・・
>少なくとも、エラーにはなりません。
>エラーになるのは、貼付け先が結合されているからだと思います。

繰り返しになりますが、残念ながら私の環境ではエラーが出て動きません。
[#41907]のMacro2は動きます。
Excel 2000です。

>なお、どうしても、結合の必要がありますか?
>結合セルは、VBAで何かと扱いにくい経験がありますので、個人的にはあまりおすすめしません。

わたしも結合は嫌いですが、一般の人が作ったファイルを処理するため、
元々結合されている場合はどうしたら良いのかということが
今回の質問の主旨になります。

【41949】Re:結合されたセルの値のコピーを行うには
発言  [名前なし]  - 06/8/26(土) 17:33 -

引用なし
パスワード
   Sub Macro1()
  With Range("A1:A5")
    .Copy Destination:=Range("C1")
    .Offset(, 2).Value = .Value
  End With
End Sub

とするとどうでしょうか?

【41954】Re:結合されたセルの値のコピーを行うには
お礼  カド  - 06/8/26(土) 23:09 -

引用なし
パスワード
   ▼[名前なし] さん 回答ありがとうございます。
おっしゃる方法でばっちり行きました。

6989 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free