• ベストアンサー

エクセル マクロで行き詰まりました。助けて・・・

daruizmの回答

  • daruizm
  • ベストアンサー率61% (8/13)
回答No.4

前の回答が多少参考になったのなら幸いです。 >ボタンを押したら自動改行しながらデータはコピペ出来たのですが、 >全て最新のデータに書き換えられちゃいます。 >おそらくB2:U2のセルをコピーする際に値ではなく、 >数式をコピーしてしまってるからだと考えてます。 何がコピーされてしまってるかは実物を見ればわかりますよね。 実際のところ、数式がコピーされてましたか? で、私の書いた奴で、 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True の行のところが、前の行でコピーしたセルのデータを、 形式を選択して貼り付けするコマンド(正確にはメソッドと言う)で、 .PasteSpecial が実際の形式指定貼り付けコマンド名で(Selectionというのは変数みたいなもの) paste:=xlPasteValues というのが、「"値"を貼り付け」という意味です。 PasteSpecialというコマンドの詳細は参考URLをご覧下さい。 ただ、なんとなくSelectionとか使わない方法でやってるのかな、と推測します。 やっぱり一度、今作ってみてるマクロを見せていただくのが早い気もしますね。

参考URL:
http://www.moug.net/tech/exvba/0050104.htm
exceling
質問者

補足

selectionとか使わないんじゃなくて使えないんです・・・。なさけなし。 下記が現在のマクロです。ご覧の通り、値を貼り付け出来てません。 Sub 入力完了1_Click() Worksheets("Sheet2").Activate r = Cells(10, 2).CurrentRegion.Rows.Count + 9 Range("B2", "U2").Copy Destination:=Cells(r + 1, 2) End Sub コマンドボタンはSHEET1にあります。

関連するQ&A

  • マクロで値を貼り付けたい

    Z列には数式が入っていて、マクロの実行ボタンをクリックするとその数式で出てきた答えをAA列に値で貼り付けるようにさせたいのですが、どのようにしたら良いのでしょうか? マクロの実行ボタンがそのシートを開くと常にシート上に表示されている状態にもしたいです。 マクロをわかっていないので、初心者でもわかりやすく教えていただけると嬉しいです。 よろしくお願い致します。

  • EXCELのマクロについて

    EXCELのマクロを使ってみたいと思いましたが、分からないことがあり、 みなさんの助けを借りたいと思い質問をしました。 現在、シート内にROUND関数を用いてランダムな数値を発生させています。 「開発」からボタンを設置し、そのボタンを押すとF9と同じ処理をするボタンを設置したのですが、 このボタンに「F9を1万回実行する」といった事をさせるのは可能でしょうか? ランダムな数値を1万回繰り返し発生させ、その1万回の結果をグラフなどにしたいと 思っているのですが、いかんせん初心者のため調べても分かりません;; どなたか教えていただけないでしょうか…。

  • マクロ初心者です。エクセルのマクロについてです。

    現在知識が全くない状態でマクロを使ったプログラミングを改良しようとしています。 現在のプログラミングでは、与えられたデータをあらかじめ計算し、その値を直接プログラミングに組み込んでます。 今回は直接プログラムに打ち込んである値を、別シートのマクロで自動的に計算し、その結果をプログラムが読み込むようにしたいと思います。 簡単に言えば、マクロのプログラムに直接計算結果を組み込むのではなく、別シートで計算したものをプログラムに組み込みたいということです。 例として、 100円と200円の商品を買い、それを二人で半分ずつ支払う計算結果と 200円と400円の商品を買い、それを二人で半分ずつ支払う計算結果 をプログラムに組み込むとすると、現在では一人あたり150円と、300円という数字を直接プログラムに打ち込んでいます。 これを、別シートで計算し、それをマクロのプログラムに読み込ませることは可能でしょうか? また、可能ならば、大体の流れはどういったものになるのか教えてもらえませんでしょうか? よろしくお願いします。

  • エクセルのマクロで作成した関数を他のエクセルのファイルから参照できるのですか?

    エクセルVBAに関して質問です。 a.xlsというファイルに複数のシートがあり すべてのシートにあるデータと「計算」ボタンがあります。 「計算」ボタンを押下すると、マクロが実行され 計算結果が同じシートに表示されます。 データの内容はシートごとに違いますが、 「計算」ボタンで呼び出したいマクロはすべて同じです。 この「計算」ボタンを押すと実行されるマクロを b.xlsに記述したいのですが、 (他のエクセルのファイルにも使いまわしたいので) そのようなことは可能なのでしょうか。 またどのようにマクロを記述すればこのマクロを 呼び出すことができるのでしょうか。 分かりにくい文章で申し訳ございませんが ご教授くださるとうれしいです。

  • エクセル マクロについて

    1)マクロでボタンを作成して、Sheet2に自動記載出来るようにしました。Sheet2で記載された文字は行で保護出来ないのでしょうか?シート全体に保護をかけたら、勿論ボタン入力出来なくなりました。 2)マクロのボタンで1回同じ項目をSheet2へ入力した人が、もう一回続けて入力ボタンを押して、Sheet2には同じ文字が入っていました。それを防ぐには何かないのでしょうか?例えば、同じ入力が項目・時間ならメッセージが出てくるとか、1回入力したら”保存されました”などのメッセージがあれば、防げるかな?と思っています。教えてください。

  • エクセルマクロについて

    マクロ超初心者です。 画像をみていただければわかると思いますが B3、C3にパラメータとして それぞれ50~300まの数値(10刻み)を任意で入力して C5~C11に何らかの結果を反映させる計算式の入った表が 「sheet1」にあるとします。 この時、このパラメータを総当りすれば C5~C11は676通りの結果がでると思うのですが その結果を「sheet2」の総当り表として 一発で表示させるにはどのようにすればよいでしょうか?

  • エクセル マクロ

    エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。

  • エクセルのマクロについてお願いいたします。

    エクセルのマクロについてお願いいたします。 E10~M10の500行全てのセルに数式が入っております。 そこでマクロにてコピーのボタンを設置しようと思ってます。 Range("E10:M10" & Range("M" & Rows.Count).End(xlUp).Row).Copy 画像のような数字の結果がある部分だけコピーをしたいです。 23行目からは数式が入ってますが結果は””空白になっております。 どうぞよろしくお願いいたします。

  • エクセル2000のマクロについて教えてください。

    実は、今日会社で失敗したのですが、エクセルのマクロ実行をしたら、エラー で実行中断となってしまいました。 ワークシートから別のワークシートへコピー&ペーストして印刷というマクロを組みたかったのですが、エラー内容は、 Active Cell Offset(-7,-14).Range("A1:AN15")selectです。 元のワークシートのセル位置と、コピーするワークシートのセル位置は同じ場所でないといけないのでしょうか? セルは同じ数とっているはずなのですが。何回かやってみて、 へんな場所にペーストされて、印刷までは出来たこともあるのですが、何がちがうのだろー。。解らない(;;) だれか教えてください!!!

  • Excelマクロ 複数のシートそれぞれで計算

    マクロの勉強を始めて間もない初心者です。 手持ちの解説書やネットで探してみたのですが解決できなかったので質問させてください。 計算式を手打ちで入力する手間を省くため、コードを書きました。 (不要かもしれませんが、一応記してみます。) sub 計算() dim 行番号 as integer for 行番号 = 10 to 46 cells(行番号,4).select with activecell .value=.offset(-2,0).value-.offset(-1,0) .offset(1,0).select end with next end sub マクロを実行すると、1枚目のシートでのみ、この計算がなされます。 が、私はこの計算を、複数の(もしくは全ての)シートで行いたいと考えています。 シートのフォーマットは全く同じで、入力してある数値が違うだけです。 シートが20枚以上あり、1枚ずつ選択して同じコードを書くには、コピー&ペーストを使うにしてもしんどいので、検索してみたのですが。。 調べて試してみた sheets.select や、 sheets(array("シート名1","シート名2"…).select では、セル値が異なるにもかかわらず、シート1の計算結果が以降のシートにも反映されてしまいました。 コードは共通でも各シートで独立した計算結果を導くには、どうすれば良いのでしょうか? お詳しい方、ご教示くださいますようよろしくお願い致します。