• ベストアンサー

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

daruizmの回答

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

初心者さんが挑戦するには、色々地味にややこしいマクロになりそうですね。 例えば、 1.Sheet2のA~D列の、1行目が空白になるように、空行を挿入 2.Sheet1のB1~B4のデータをコピー 3.Sheet2のA1~D1に、B1~B4のデータの値だけを貼り付け という程度のことならこんな具合ですが。 Sub Macro1() Sheets("Sheet2").Select Range("A1:D1").Select Application.CutCopyMode = False Selection.Insert Shift:=xlDown Sheets("Sheet1").Select Range("B1:B4").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True End Sub これぐらいなら、なんとなくなにやってるかもわかると思いますけれど、 上で書かれてるように、途中に「履歴」という行をはさんだり、 2回前、1回前、というようなのを自動で入れたいということなら、 初心者の方が取り組むには、中々にややこしいマクロになります。 「マクロの勉強をしたい」なら、相応のところで手順を踏んで、 色々とサンプルマクロを作られるか、 ・今書いてみたマクロ ・実行したらどうなる を明確にしていただかないと、助言もしにくいかと。 「とりあえずこれを実現するマクロが欲しい」ということなら どなたかが作ってくれるのを待つしかないですけどね。 私は取り合えずご参考までということで。ポイントなど不要です。

exceling
質問者

お礼

回答ありがとうございます。コピペのマクロは何となく理解できました。 別の方のところに補足説明(ほとんど説明しなおし)をさせていただきました。もし宜しければ、そちらの質問にも回答願えませんか?

関連する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の計算結果が以降のシートにも反映されてしまいました。 コードは共通でも各シートで独立した計算結果を導くには、どうすれば良いのでしょうか? お詳しい方、ご教示くださいますようよろしくお願い致します。