[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『書式のコピーでグループ化のままコピーしたい』(zozo)
いつもお世話になっております。
書式のコピーをしたいのですが、グループ化のままコピーすることは可能でしょうか?
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
’数式と書式のコピー
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme,Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
原本になるファイルの数式と書式をコピーしたいのですが
上記のマクロで行うとグループ化している部分が非表示になってしまいます。
グループ化を反映することはできますでしょうか?
コピー元すべての書式・数式をコピーしたいのですが・・・。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
下記のように2つ繋げればうまくできました。
1回の処理だとできないのでしょうか?
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
’ "数式&書式"
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone '最初に書式コピー
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=True, Transpose:=False −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− (zozo) 2017/03/01(水) 12:44
Selection.PasteSpecial Paste:=xlPasteFormats, Paste:=xlPasteFormulas, Operation:=xlNone
で出来ないですか? (2Win) 2017/03/01(水) 12:58
お返事ありがとうございます。
上記の式ですと、数式コピーがされませんでした。
空白セルを除きたいので、
Selection.PasteSpecial Paste:=xlPasteFormats, Paste:=xlPasteFormulas, Operation:=xlNone_ SkipBlanks:=True, Transpose:=False としたらエラーになってしまいました。
初心者なものでどうしてエラーになったかがよくわかっておらず、申し訳ありません。
(zozo) 2017/03/01(水) 13:28
>Selection.PasteSpecial Paste:=xlPasteFormats, Paste:=xlPasteFormulas, Operation:=xlNone_ SkipBlanks:=True, Transpose:=False としたらエラーになってしまいました。
Operation:=xlNoneの後ろの , が抜けてます。
下記をコピーして実行してみてください。 Selection.PasteSpecial Paste:=xlPasteFormats, Paste:=xlPasteFormulas
こちらの環境ではエラーにならずにコピーできました。 (2Win) 2017/03/01(水) 13:51
何度もありがとうございます。
記載いただいた式だと、やはり数式のコピー(空白セル除く)ができません。
書式はコピーできますが、数式をかぶせたところが値化してしまいます。
Operation:=xlNone, _ SkipBlanks:=True, Transpose:=False
の部分はいらないということですよね?
試しにつけてみましたが、,を入れてもエラーでした。↓
’数式&書式
Selection.PasteSpecial Paste:=xlPasteFormats, Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=True, Transpose:=False
(zozo) 2017/03/01(水) 15:46
すみません、ものすごい勘違いしてました。出来ないですね、申し訳ございません。
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme で書式と数式は普通に一緒にコピーできますよね?
貼り付けた先もグループ化したいということなのでしょうか? 非表示になる というのがイマイチ理解できてないです。
どういったデータがあって、どこからどこまでがグループで、どこからどこまでをコピーして、どこに貼り付けるのかを教えていただけますか。
(2Win) 2017/03/01(水) 16:05
提示のコードは「形式を選択して貼り付け」のコードですよね?
コピー元のセルはどうやってコピーしているのですか?
またグループ化は列?行?どっちですか?
で、コピーするのは表の内の行?列?どっちでしょう?
(まっつわん) 2017/03/01(水) 16:34
こちらの説明が足りず申し訳ございません。
コピー元は特にセルの指定はせず、シート全体を選択しております。
グループ化しているのは列です。
> Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme
この式でやると、なぜかグループ化が反映されず、列が非表示になっている状態になります。
(グループ化した時に出る「+」ボタンがない状態です。)
ファイルの構成ですが、
横に月が並んでいて、列は売上計画、売上前年、前年比、粗利計画、粗利前年、前年比・・・となっている表で、コピー元は前年と前年比をグループ化しています。
前年比には数式が入っており、計画・前年列は縦行を足す数式が入っています。(行は商品?@商品?A・・・となっており、商品?@〜?Dを足す、等の数式が入っています。)
コピー元ファイルの商品?@、商品?A・・・は空白セルです。
コピー先のファイルには前年比や行の数式は入っておらず、商品?@、商品?A・・・に数字が入っています。このファイルに空白セルを除いてコピーをし、なおかつ書式もコピーしたいと思っています。
コピー元もコピー先も行列の構成は同じなので、特にセルは指定せず
全シート選択してコピーしています。
(zozo) 2017/03/02(木) 09:37
えーと、丸ごとコピーして丸ごと貼り付けという感じでいいんですよね?
では、下記のコード試してみてください。
Sheets("コピー元シート名").select Rows.Select Selection.Copy Sheets("貼り付けるシート名").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=True
シート名はそれぞれ変更してください。 コピー元を選択して実行するなら Sheets("コピー元シート名").selectは省略してもいいです。
これを実行するとどうなりますか? (2Win) 2017/03/02(木) 11:34
手動で、
シート全体のセルをコピーして
形式を選択して貼付 数式のみ 空白無視
と操作して希望の状態になります?
マクロは、ただエクセルを遠隔操作するだけなので、
その手動の操作で出来なければ、
そのマクロを使っても希望の動作になりません。
原本(セルの書式設定&数式&グループ化を作り込んでおく)をシートごとコピーして、
それに値を転記してはいかがでしょうか?
まずは、作業手順をどうするか再考してみてはいかがでしょうか?
(まっつわん) 2017/03/02(木) 11:50
色々とありがとうございます。
しかし、やはりグループ化は反映されません。。不思議です。。
>まっつわん様
手動で希望の状態になります。
少し時間はかかりますが、最初に記載した
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone '最初に書式コピー
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=True, Transpose:=False ’その後数式をコピー
この式ですと希望の状態になるので、これでやります。
ありがとうございました!
(zozo) 2017/03/02(木) 15:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.