• 締切済み

エクセルでマクロを設定するには

初歩的な質問ですみません。午前中にカレンダーを別シートにも貼り付ける方法を質問したのですが、そのあと、シートが毎月新しくなるので、いったん覚えさせてあるシートの中の全部の関数をそのまま新しいシート(同じブック内の)にコピーするには、マクロを使うのでしょうか?そのためにはマクロの設定はどうしたらいいのでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

コピーしたシートから、数値を0にするVBAを考えました。ご参考に。 (1)セル値が""はそのまま。 (2)数値なら0をセット (3)関数式のあるセルはそのまま (4)結果として、見出し等漢字・文字列のセルはそのまま。 範囲指定をして実行をしてください。 操作で範囲指定しないで固定範囲にするなら、範囲をコード内に入れるなら、Range("a1:g20").Select とかの行を最初に加えてください。 Sub test01() Dim cl As Range For Each cl In Selection If cl.HasFormula Then GoTo p01 If cl.Value = "" Then GoTo p01 If IsNumeric(cl.Value) = True Then cl.Value = 0 Else MsgBox cl.Value End If p01: Next End Sub

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

#1の者です。 書き方を間違えました。 数式のみコピーされます。 ちなみに、書式のみの場合は Sub Macro1() Sheets("Sheet1").Cells.Copy 'いったんおぼえさせてあるシート Cells.PasteSpecial Paste:=xlFormats 'アクティブなシート '                ******** End Sub です。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

マクロでやらなくても、例えばSheet1をコピーし シフトキーを押しながら、Sheet2,3,4・・・ の「シートタブ」をクリックすると、(白色になり)Sheet2に貼り付けをすれば、Sheet3,4・・にも貼りつくのでは無いでしょうか。 形式を選択して貼り付けを選んで、数式を選んだのですが 値とも貼りつきました。原本における、月により可変部分は、人手で消さないとダメみたい(データの入っていない演算式あり、書式ありの原本を1度(1表)別に作らないといけない?)。 こういう質問でなければ、ごめんなさい。

aretoma
質問者

お礼

ご回答ありがとうございます。そうなんです。値までも貼りつくので困っています。原本作るよう考えてみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

前回の質問で=Sheet1!A1の用に書かれていると思うのですが、 その関数をそのままコピーしてもよろしいのですか? 11月1日と12月1日は同じ場所にはきませんよね? 一応 Sub Macro1() Sheets("Sheet1").Cells.Copy 'いったんおぼえさせてあるシート Cells.PasteSpecial Paste:=xlFormulas 'アクティブなシート End Sub で書式のみSheet1からアクティブなシートへコピーされます。 コピー先のシートを選択してからマクロを実行してみてください。

aretoma
質問者

補足

再度ご回答ありがとうございます!教えて下さったマクロは、既に予定が書き込まれた状態から書式のみ新しいシートに反映するのですね?であれば、数式はどうなのでしょう? 11月 1234567 ・・・予定を書き込む行・・・ 89・・・・ ・・・予定を書き込む行・・・ ・・・・・・31 12月 1234567 ・・・・・・・ ・・・・・・31 この様な形式なのですが、次のシートでは1月なのですが、シートが変わる毎に月初めの曜日がずれるので、それは手作業で一旦始まりの1のみ入れて、その右の列は+1にする簡単な数式を入れるようにしました。 この数式もマクロで先ほどの書式と同じように新しいシートへコピーされますか? ややこしくてすみません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBAで質問です

    あるブックのシートに入力するようにしています。そこには関数や、 リストなどさまざまな設定がされています。そのブックにコードを書いてマクロ実行ボタンもそのシートに付けたいと思っています。 このシートをデスクトップにコピーして別ブックとして作成したいのですが、コードを教えていただけないでしょうか。できるかわかりませんが、関数が設定されてある箇所は関数としてではなく、値としてコピーされると都合がいいです。 また、作成されたブック(コピーしたシート)には、マクロのボタンなんかが残らない形ではできないものでしょうか?

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

    excelファイルの容量が10MBにもなってしまい大変困っています。すべてのシートを新しいブックにコピーしたのですがサイズは変わりませんでした・・・方法が間違っているのでしょうか??? 関数やマクロを組み込んだsheetが14枚くらいです。軽量化するにはどうしたら良いでしょう??また、肥大化しないためのマクロ等ありましたら教えていただけますでしょうか、よろしくお願いいたします。

  • Excelのマクロについて質問です。

    ブックAのシートaの印刷に関する設定を、別のブックBのシートbにコピーするマクロを教えていただけませんか? 印刷に関する設定には、ページ設定で設定されるすべての情報です。

  • Excelのマクロについて

    マクロの保存先を「開いているすべてのブック」にして、 A2~A32をいったん削除した後で、 1月1日から、1月31日を入力して、 最後にA2をアクティブセルにしておく、というマクロを作りました。 1/1と入力すると、普通、1月1日と表示されますよね? 同一ブック、同一シートないでしたら、そのように表示されるのですが、 同一ブック、別シートあるいは、 別ブックで、このマクロを実行すると、 2001/1/1と表示されます。 あとで、セルの表示形式を変えればいいんでしょうが、 この原因が、なぜ、そうなるのかが知りたいです。 (まだ、そのシート内以外だと、マクロが設定できない、 とかの方がわかるんですが。) また、 同一シートでなくても、 1月1日~1月31日の表示形式のままで、 設定できるマクロがあったら、あわせて教えてください。 作成しているファイルの、 バージョンは、Excel2002ですが、 マクロは、2000と変わらないと思うんですが・・・。 よろしくお願いいたします。

  • エクセル・マクロ

    (同じフォルダの)複数のブックの中に複数のシートがあり、シートの名前が(一部)共通しています(例:赤組のA、赤組のB・・・)。別のブックに、同じ名称(例:赤組)を含むシートをコピーしてまとめたい(シート1が赤組のA、シート2が赤組のB・・・)のですが、どのようなマクロを記すれば良いでしょうか。宜しくお願いいたします。

  • エクセル(2000)のマクロについて

    sheetaaa~(複数シート)~sheetZZZをすべて選んでこれらのシートのコピーを、他のブックに作成するというマクロを自動保存で作りました。出来上がったマクロをみるとコピーするシート名がひとつひとつマクロの中にかかれてしまいます。sheetaaaとsheetZZZはいつもコピーするので問題ないのですが、、間に入っているシートは数がどんどん増えていくので、マクロの中でおのおののシート名を指定してしまうのは困るのです。 マクロを実行した際に、sheetaaaとsheetZZZの間あるシートは無条件でコピーを作成するというマクロを作成したいのですが、どのように作ったらいいのかわかりません。 どなたかアドバイスいただけないでしょうか。

  • EXCEL のマクロを作りたいんですが・・・

    マクロはあまり詳しくありません。マクロの記憶で設定し、多少内容の変更をする程度です。 マスターのBOOKがあり、月ごとにデータを入力し、その都度名前を付けて保存します。 (データの量はまちまちです) Sheet1にデータを入力し、Sheet2には関数が入っております。 使いたいのはSheet2にあるデータなのですが、データが無い欄は関数が入っていますので、そのままではデータとして使うのが面倒です。 CSVで出力するにしても、空の関数の欄が,,,,と出ます。 データが入っているセルだけを範囲指定して、値の貼り付けをし、使用していない空のセルの関数を消すというマクロが出来るでしょうか?

  • エクセル マクロ コピー→シート保護解除→貼付

    いつもお世話になっております。 マクロ勉強中の者です。 2つの別ブックのシート(互いに任意)を同時に開いている前提での作業です。 (1)あるブックのシート(任意)は,シート保護が施されています。このシートのシート保護の解除をします。 (2)(1)で示したブックとは別のブックのシート(任意)に,次のようなマクロを設定してあり,指定した範囲のコピーを行います。 Sub コピー() コピー Macro Range("E6:AI73").Select Selection.copy End Sub (3)次に,(1)で示したブックのシート(任意)に次のようなマクロを設定してあり,先ほどコピーした内容を貼り付けます。 Sub 貼り付け() Range("E6").Select ActiveSheet.Paste  ActiveSheet.Protect End Sub (4)(1)で示したシートには,(2)で行ったコピーの内容を貼り付け,シート保護された状態で作業が終わります。 この一連の作業の中で,(1)の作業を省けないかと考えています。つまり, 別ブックのシートを2枚開いている状態で, ◎あるブックのシートの内容をコピー(範囲指定あり) →◎別のブックのシートに,シート保護解除して(2)でコピーした内容を貼り付け,(セル指定あり)シート保護して終了 (3)で示したマクロに ActiveSheet.Unprotect を付け加えて実行してみたのですが,うまくいきません。エクセルの性格上,「貼り付け」の前にシート保護解除の動作が入ることで,コピーした内容が失われ?て貼り付けることができないのかな?と感じているのですが,どなたかご教授いただけると嬉しいです。 エクセルのバージョンは,2016になります。

  • エクセルマクロについて質問です。

    エクセルマクロについて質問です。 質疑応答形式で、指定した列(6月在庫数)などを別のシートにコピーし貼付ける場合と別シートのシート名を指定した列の月名「6月」にしたくこれを毎月行うのですが、どうしたらいいの 補足 質疑応答形式とは、エクセルのVBAでユーサーフォームを使って「何月締めですか?」のように質問され、月数を入れるとコピーし貼付ける感じにしたいのですが....又、例として簡単な表を貼付しましたが実際にはもっとデーター量が大きいですのでどちらかというとセルの一つ一つの関数より VBAを使用したマクロの方がと思ったのですが.....

  • マクロ ブックをマクロなしでコピー

    いつもお世話になっております。 マクロのことで 2つ教えて頂きたく書き込みをさせて いただきまいした。 よろしくお願いいたします。 ブックに何枚かシートがあり、 そのシートには全て同じマクロが入ってます。 このブックのシート全てを マクロを削除し新しいブックにコピーをしたいです。 また、コピーをする際に マクロがついているオブジェクト(ボタン) もとってコピーをしたいです。 自力で調べたのですが うまくわからずまた、こちらで質問 させていただきました。 よろしくお願いいたします

専門家に質問してみよう