• ベストアンサー

エクセル2000 VBA

エクセル2000です。 シートをコピーして他のファイルにコピー&ペーストしようとしているのですが、シートに入っている数式までコピーされてしまうと元ファイルを参照しに行くので困っています。 次の方法として、形式を選んで貼り付けようとしてみました。 1) 値 2) 書式 3) 入力規則 の順序で貼り付けていくと、手動では出来るのですが、それをマクロで記録してから実行すると、一番最後の入力規則の部分で停止してしまいます。 数式以外のものはコピーしたいのです。 どなたかご存知でしたらよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.4

  >同じファイルを現在もいじっておりまして、まだ出来ていないので、まとめてお礼をさせていただこうと思っていたのですが、ご指摘のとおりだと思います。ごめんなさい。 そうでしたか。事情を知らずに、身勝手な指摘をしてしまいこちらこそすみませんでした。また、さっそくのお礼ありがとうございました。 ここからはちょっと言いにくい話なのですが・・・ どうも、この形式を選択して貼付けの「値と数値の書式」(それと、もうひとつ「数式と数値の書式」というのもあるのですが・・・)はexcel2002からしか使えないようなのです。おかしいなと思って調べてみたらそのようなのです。マクロを実行しても赤くなるのは2000ではサポートしてないからだと思います。 結合セルを一度解除してコピーする。とか、 数式部分をあとから数値に直す。などの方法では大変でしょうか? 結合セルの解除はシート全体を選択して解除すればすぐにできます。(レイアウトが崩れる恐れがあるのが難点ですが) 数式を後からなおす方法では、貼付け後に数式部分を個別に値に直します。 数式の入った場所がわかりにくい場合は、 F5キー > セル選択 > 数式 に● >OKをクリック ・・・で 数式の入ったセルが青く選択されるので、場所を確認しやすいと思います。 また、ツール > オプション > 表示タブ で、数式 にチェックを入れると数式が表示できますので、これでも場所が確認できます。 あまり参考にならない回答ですみません。 良案が出せずに残念です。

kyrie_esumi
質問者

お礼

風邪悪化で二日間沈没していました。お礼が遅くなって申し訳ありません。 このメソッドはどうもサポート対象外のようですよね。私も何度か試した後、そう思いました。 統合セルを解除してしまうとレイアウトがぐちゃぐちゃになってしまうようです。 結局、欲しい部分の入力形式変更手順をマクロで書くことにしました。シートに20箇所以上リストボックスがあるのでこのリストボックスを一つ一つ指定して、そこでリスト表示されるセルの範囲を記録して・・・という作業を今からやる予定です。 F5キー > セル選択 > 数式 に● >OKをクリック 個人的にはこれが非常に有意義な知識でした。ありがとうございました。

その他の回答 (10)

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.11

結合セルのある場所や数式の入ってる場所がはっきりと分かれてるのなら、うまいやりかたがありそうなんですけどね。(表の見出し部分だけ結合セルにになっているなど) こういう方法はできないですか? 1 すべてをコピペ 2 (結合セル以外をコピー後)そこに値のみ貼付け または、 1 結合セル以外をコピペ、値のみをコピペ。 2 結合セルをコピペ。 場所がはっきりしているなら、マクロの自動記録でもいけそうな気がします。 >tbobiさんおよび皆さんへ 大変申し訳ありませんでした。 taisuke555さん、こちらこそどうもです(^^)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.10

結合セルが含まれている場合、値だけでしたら、以下の方法でコピーできます。 コピーしたのをメモ帳とかに貼り付け、それをコピーしなおして、貼り付けるのです。 ただ、結合セルは、なくなりますが・・・・。

回答No.9

tbobiさんおよび皆さんへ 大変申し訳ありませんでした。 では、#4の回答にあるように、結合セルを解除するか、 シートがあれば、シートを削除し、新たにシートを作成するとか・・・ ・・・結合セルを解除したほうが楽かな。 とにかく、すみませんでした。

kyrie_esumi
質問者

お礼

ありがとうございました

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.8

  失礼 #5さんではなく#6さんでした。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.7

>すべてを貼り付けた後、値のみ貼り付けたらどうでしょうか? #5さん。 言いたくないけど#1の回答と補足をよんでください。 既に出ている回答で、今回は通じないようですよ

回答No.6

すべてを貼り付けた後、値のみ貼り付けたらどうでしょうか?

  • big_fool
  • ベストアンサー率22% (43/193)
回答No.5

入力規則を Paste:=xlDataValidation ではどうでしょうか? 全く自信なし・・・・

kyrie_esumi
質問者

お礼

このメソッドがどうやら2000ではサポート外のようです。 ありがとうございました。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.3

  #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

kyrie_esumi
質問者

お礼

Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _xlNone, SkipBlanks:=False, Transpose:=False 全部コピーしてやってみたのですが、この部分だけ真っ赤になり、動きませんでした。 他の方法も試してみますがありがとうございました。

kyrie_esumi
質問者

補足

前半部分はこれから試してみます。ありがとうございます。 それと、後半部分なのですが、ごめんなさい。同じファイルを現在もいじっておりまして、まだ出来ていないので、まとめてお礼をさせていただこうと思っていたのですが、ご指摘のとおりだと思います。ごめんなさい。 ありがとうございました。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.2

  >二度目、値のみを貼り付けようとすると、この操作には同じサイズの結合セルが必要ですと出ます。 結合セルがありましたか・・・。 では、2度目は 形式を選択して貼付けの「値と数値の書式」でやってみてください。

kyrie_esumi
質問者

補足

値と数値の貼り付けという項目自体がないのですが・・・ お忙しい中申し訳ありませんが、教えていただけましたら幸いです。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.1

  すべてを貼付けした後、 値のみ貼付けをしたらどうでしょう? 数式が値で上書きされると思いますが。

kyrie_esumi
質問者

補足

二度目、値のみを貼り付けようとすると、この操作には同じサイズの結合セルが必要ですと出ます。

関連するQ&A