- ベストアンサー
エクセル2000 VBA
エクセル2000です。 シートをコピーして他のファイルにコピー&ペーストしようとしているのですが、シートに入っている数式までコピーされてしまうと元ファイルを参照しに行くので困っています。 次の方法として、形式を選んで貼り付けようとしてみました。 1) 値 2) 書式 3) 入力規則 の順序で貼り付けていくと、手動では出来るのですが、それをマクロで記録してから実行すると、一番最後の入力規則の部分で停止してしまいます。 数式以外のものはコピーしたいのです。 どなたかご存知でしたらよろしくお願いします。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
>同じファイルを現在もいじっておりまして、まだ出来ていないので、まとめてお礼をさせていただこうと思っていたのですが、ご指摘のとおりだと思います。ごめんなさい。 そうでしたか。事情を知らずに、身勝手な指摘をしてしまいこちらこそすみませんでした。また、さっそくのお礼ありがとうございました。 ここからはちょっと言いにくい話なのですが・・・ どうも、この形式を選択して貼付けの「値と数値の書式」(それと、もうひとつ「数式と数値の書式」というのもあるのですが・・・)はexcel2002からしか使えないようなのです。おかしいなと思って調べてみたらそのようなのです。マクロを実行しても赤くなるのは2000ではサポートしてないからだと思います。 結合セルを一度解除してコピーする。とか、 数式部分をあとから数値に直す。などの方法では大変でしょうか? 結合セルの解除はシート全体を選択して解除すればすぐにできます。(レイアウトが崩れる恐れがあるのが難点ですが) 数式を後からなおす方法では、貼付け後に数式部分を個別に値に直します。 数式の入った場所がわかりにくい場合は、 F5キー > セル選択 > 数式 に● >OKをクリック ・・・で 数式の入ったセルが青く選択されるので、場所を確認しやすいと思います。 また、ツール > オプション > 表示タブ で、数式 にチェックを入れると数式が表示できますので、これでも場所が確認できます。 あまり参考にならない回答ですみません。 良案が出せずに残念です。
その他の回答 (10)
- tbobi
- ベストアンサー率45% (544/1189)
結合セルのある場所や数式の入ってる場所がはっきりと分かれてるのなら、うまいやりかたがありそうなんですけどね。(表の見出し部分だけ結合セルにになっているなど) こういう方法はできないですか? 1 すべてをコピペ 2 (結合セル以外をコピー後)そこに値のみ貼付け または、 1 結合セル以外をコピペ、値のみをコピペ。 2 結合セルをコピペ。 場所がはっきりしているなら、マクロの自動記録でもいけそうな気がします。 >tbobiさんおよび皆さんへ 大変申し訳ありませんでした。 taisuke555さん、こちらこそどうもです(^^)
- taknt
- ベストアンサー率19% (1556/7783)
結合セルが含まれている場合、値だけでしたら、以下の方法でコピーできます。 コピーしたのをメモ帳とかに貼り付け、それをコピーしなおして、貼り付けるのです。 ただ、結合セルは、なくなりますが・・・・。
- taisuke555
- ベストアンサー率55% (132/236)
tbobiさんおよび皆さんへ 大変申し訳ありませんでした。 では、#4の回答にあるように、結合セルを解除するか、 シートがあれば、シートを削除し、新たにシートを作成するとか・・・ ・・・結合セルを解除したほうが楽かな。 とにかく、すみませんでした。
お礼
ありがとうございました
- tbobi
- ベストアンサー率45% (544/1189)
失礼 #5さんではなく#6さんでした。
- tbobi
- ベストアンサー率45% (544/1189)
>すべてを貼り付けた後、値のみ貼り付けたらどうでしょうか? #5さん。 言いたくないけど#1の回答と補足をよんでください。 既に出ている回答で、今回は通じないようですよ
- taisuke555
- ベストアンサー率55% (132/236)
すべてを貼り付けた後、値のみ貼り付けたらどうでしょうか?
- big_fool
- ベストアンサー率22% (43/193)
入力規則を Paste:=xlDataValidation ではどうでしょうか? 全く自信なし・・・・
お礼
このメソッドがどうやら2000ではサポート外のようです。 ありがとうございました。
- tbobi
- ベストアンサー率45% (544/1189)
#2の方法でsheet1からsheet2にコピーする場合、コードははこうなりますね。 sub test() Sheets("Sheet1").Select Cells.Select Selection.Copy Sheets("Sheet2").Select Cells.Select ActiveSheet.Paste Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _xlNone, SkipBlanks:=False, Transpose:=False End Sub kyrie_esumiさん こちらも結果を書かれてみては? うまくいったらお礼はなし?なんて見られないようにしたほうがよいと思いますが。 gooからご利用? http://oshiete1.goo.ne.jp/kotaeru.php3?q=548574 それともOKWeb? http://www.okweb.ne.jp/kotaeru.php3?q=548574
お礼
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _xlNone, SkipBlanks:=False, Transpose:=False 全部コピーしてやってみたのですが、この部分だけ真っ赤になり、動きませんでした。 他の方法も試してみますがありがとうございました。
補足
前半部分はこれから試してみます。ありがとうございます。 それと、後半部分なのですが、ごめんなさい。同じファイルを現在もいじっておりまして、まだ出来ていないので、まとめてお礼をさせていただこうと思っていたのですが、ご指摘のとおりだと思います。ごめんなさい。 ありがとうございました。
- tbobi
- ベストアンサー率45% (544/1189)
>二度目、値のみを貼り付けようとすると、この操作には同じサイズの結合セルが必要ですと出ます。 結合セルがありましたか・・・。 では、2度目は 形式を選択して貼付けの「値と数値の書式」でやってみてください。
補足
値と数値の貼り付けという項目自体がないのですが・・・ お忙しい中申し訳ありませんが、教えていただけましたら幸いです。
- tbobi
- ベストアンサー率45% (544/1189)
すべてを貼付けした後、 値のみ貼付けをしたらどうでしょう? 数式が値で上書きされると思いますが。
補足
二度目、値のみを貼り付けようとすると、この操作には同じサイズの結合セルが必要ですと出ます。
お礼
風邪悪化で二日間沈没していました。お礼が遅くなって申し訳ありません。 このメソッドはどうもサポート対象外のようですよね。私も何度か試した後、そう思いました。 統合セルを解除してしまうとレイアウトがぐちゃぐちゃになってしまうようです。 結局、欲しい部分の入力形式変更手順をマクロで書くことにしました。シートに20箇所以上リストボックスがあるのでこのリストボックスを一つ一つ指定して、そこでリスト表示されるセルの範囲を記録して・・・という作業を今からやる予定です。 F5キー > セル選択 > 数式 に● >OKをクリック 個人的にはこれが非常に有意義な知識でした。ありがとうございました。