• 締切済み

マクロ初心者です。

会社で使用する元帳を作っています。マクロでボタンひとつで次シートに残高を繰越として移項出来、シート名は1頁からスタートで2頁、3頁…と続けるようにしたい。セル番地の内容は 残高は L43 次シートの前頁より繰越残高 L7 1頁 L1   1頁のL43を2頁のL7に、2頁のL43を3頁のL7に次々とボタンでつくりたいのです。 説明が不足かもしれませんがどなたかお願いします。

みんなの回答

  • azzu0707
  • ベストアンサー率46% (62/132)
回答No.5

そしたら 最終行を Sheets(シート数 + 1 & "頁").Range("A1:K42").ClearContents に置き換えてください

  • azzu0707
  • ベストアンサー率46% (62/132)
回答No.4

シートは現在1枚だと思うのですが、 シート名は"1頁"になっていますか? まあ、 エラーの出た行を Sheets(1).Copy Before:=Sheets(1) に置き換えて試してみてください。

momo0115
質問者

補足

ありがとうございます、感動致しました。シートを一枚だけにしてみました。 成功しましたが、罫線も消えてしまいました。 あと少しの様なのですが…何度も回答ありがとうございます。罫線が消えない方法があるならば教えて下さい。

  • azzu0707
  • ベストアンサー率46% (62/132)
回答No.3

勘違いしていました。 すでにシートが沢山あってそれのn頁のL43をn+1頁のL7にコピーかと。 シートも追加するのであれば。 Sub 繰越() Dim シート数 As Integer Dim i As Variant シート数 = ThisWorkbook.Worksheets.Count Sheets(シート数 & "頁").Copy Before:=Sheets(1) Sheets(1).Name = シート数 + 1 & "頁" Sheets(シート数 & "頁").Range("L43").Copy Sheets(シート数 + 1 & "頁").Range("L7").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Sheets(シート数 + 1 & "頁").Range("A1:K42").Clear End Sub でよろしいかと。 ボタンですが、コマンドボタンより メニューのツール⇒ユーザー設定にて 分類にてマクロを選択 ユーザー設定メニュー項目を適当なツールバーにD&D 出来たボタンを右クリックして名前に 適当な名前を。 同じく、ボタンを右クリックでマクロの登録を押し、 マクロの登録画面にて 繰越を選択してOK を押せば登録できます。 また勘違いしてたらゴメンナサイ

momo0115
質問者

補足

何度もありがとうございました。 試してみましたが、実行すると以下の部分が Sheets(シート数 & "頁").Copy Before:=Sheets(1) 『デバック』と出てこの部分が黄色で表示されてしまします。

  • azzu0707
  • ベストアンサー率46% (62/132)
回答No.2

No1です。 ごめんなさい、私の理解不足ですかね? >1頁のL43を2頁のL7に、2頁のL43を3頁のL7に次々とボタンでつくりたいのです。 ボタンとは、コマンドボタンのことでしょうか? Sub 繰越() Dim シート数 As Integer '宣言 Dim i As Variant '宣言 シート数 = ThisWorkbook.Worksheets.Count 'シート数を代入 For i = 1 To シート数 - 1 'シート数だけ繰り返す On Error Resume Next 'エラーでも続ける Sheets(i & "頁").Range("L43").Copy 'シート i頁 のセルL43をコピー Sheets(i + 1 & "頁").Range("L7").PasteSpecial 'コピーしたものをi + 1 頁 のセルL7に貼り付ける Application.CutCopyMode = False 'コピーモード解除 Next '繰り返し End Sub なのですが、各シートのL43には何か式が入っているのですか? それ以外にも式は入っていますか?

momo0115
質問者

補足

何度もありがとうございます。 そうです、コマンドボタンです。 L43の式は =SUM(F43-J43+L7) L8からL42迄数式がはいっています。例えば L8は  =IF(C8="","",SUM(L7+F8-J8)) L42は =IF(C42="","",SUM(L41+F42-J42)) F43は =SUM(F7:F42) J43は =SUM(J7:J42) まだシートは1枚だけ作り、増えていくのでコマンドボタンで一発で作りたいのです。 先ほどの回答も貼り付けたのですが、全く動きませんでした。色々すみません。

  • azzu0707
  • ベストアンサー率46% (62/132)
回答No.1

Sub 繰越() Dim シート数 As Integer Dim i As Variant シート数 = ThisWorkbook.Worksheets.Count For i = 1 To シート数 - 1 On Error Resume Next Sheets(i & "頁").Range("L43").Copy Sheets(i + 1 & "頁").Range("L7").PasteSpecial Application.CutCopyMode = False Next End Sub ってな感じですかね?

momo0115
質問者

補足

Sub 繰越() ' ' Macro1 Macro ' マクロ記録日 : 2006/2/20 ユーザー名 : momo0115 ' ' Dim シート数 As Integer Dim i As Variant シート数 = ThisWorkbook.Worksheets.Count For i = 1 To シート数 - 1 On Error Resume Next Sheets(i & "頁").Range("L43").Copy Sheets(i + 1 & "頁").Range("L7").PasteSpecial Application.CutCopyMode = False Next End Sub これを貼り付けしましたが、全く反応がありませんでした。他に足りない箇所などがあるのでしょうか?

関連するQ&A

  • エクセルマクロ超初心者で、悩んでます。

    エクセルマクロ超初心者で、悩んでます。 どなたか助けてください。 悩みはこうです↓ データ用のワークシートのセルに数字、文字が入力してあります。 セルの数値同士の引き算で算出した数値を列数として、別の印刷用のワークシートのセル番地(列、行)に、「文字」を表示したいのです。 日本語で書いちゃうと ワークシート「印刷用」の、あるセル番地(ワークシート「データ用」から、列数はJ1‐A1、行数はのB1の数値)に ワークシート「データ表」のC1の文字 を出力せよ です。 Worksheets選択がうまくいきません CellsかRangeを使うのかと思いますが、引き算する表現がわかりません・・ 文例があれば、稚拙ながら活用できるかなと思います。 よろしくお願いします!

  • マクロのセルの範囲指定

    お世話になります。マクロ初心者です。エクセルの業務でマクロを作成しようとしているのですが、マクロ実行で、セルの範囲が指定される方法はありますか?例えば シート名  開始  終了  Sheet1   A1  D10 を入力して、ボタンを押したらA1からD10までのセルが選択されることです。説明不足ですみません。宜しくお願いします。

  • シートの繰り越し

    毎月の試算表をロータスで管理していましたが、これをエクセルに移行したいと思っています。 エクセルでのシートの自動繰り越しの方法が分かりません。。。 残高の繰り越しは「=シート名!セル番地」でやりますよね? 例えば、残高をA列、繰越をC列とした試算表で、5月のシートをコピーして6月分として使いたいとします。 5月の繰越欄(C列)は「=4月!セル番地(例:A2)」となっています。 この5月をコピーするとコピーした「5月(2)」というシートの繰越欄(C列)には「=4月!A2」・・・と変わらないですよね。 これを、自動的に「=5月!A2」と変える事はできないのでしょうか? ロータスではコピーしただけで、これが自動的にできたのですが・・・

  • マクロで考えているのですが、

    教えてください! シート名が、1回目、2回目、3回目、4回目、その隣からA会社、田中会社、小山田会社・・・・・このよう漢字のシート名で書かれたシートが続くのですが、 やりたい事は、シート1回目のセルA7:L210の中に各会社のシートのA7:L210の文字が書かれてる部分だけコピーして1回目にA7:L210張り付けたいのですが、 会社のシートのデータの数は、会社でまちまちなので、文字が書かれている、文字だけコピーして 張り付けるときは、A7から詰めて張り付けさせたいのです。 文字がある部分だけコピーしたいのですが、各会社のデーターは、別のブックから参照させてるので、 セルに式が書かれているのですが、可能でしょうか、 同じ操作を2回目、3回目、4回目、のシートで行いたいのですが、 他で書いてあるマクロを参考に作ろうとしましたが、うまく動きませんでした。 知識不足でスミマセンが、よろしくお願いします。

  • エクセルマクロ 「101」 ボタンをおして 「102」となるマクロ?

    エクセルです。 一つのセル(A4)に「101」と書いてあります。それをVlookup関数で他のシートから一致する情報を取り出しています。次に同じセルに「102」とうつと、同じように一致する情報を取り出しています。 そこで、一回、一回、セルに102や103と打つのではなく、ボタンを押すと次の番号にうつるようなマクロを組みたいと思ってます。 ただ、101~130 次は、201~231みたいになってます。 一つのマクロでなくても良いので、よろしくお願いします。 最初は、 Range("A4").select  セルA4を選択 だと思うのですが、この次から分かりません。

  • 全シートを選択し、それぞれ特定のセルの値をシート名とするマクロを教えて

    全シートを選択し、それぞれ特定のセルの値をシート名とするマクロを教えてください。 Worksheets.Select ActiveSheet.Name = Range("A1").Value ではダメなんですね… 記録マクロ以上のことはほとんど何もわからない、マクロ初心者です。 条件としては、  ・シート数はその都度変わる  ・シート名にしたいセル番地は決まっている です。 具体的には、「請求書」などの決まったフォーマットで作成された複数のシートがあり、 決まったセルに入力された「宛名」をそれぞれのシート名にしたい というような場合です。 また、同じ「宛名」で複数のシート名があったときに備えて、 新しいシート名の前に数字を振りたいです。 例) Sheet 1 → 1田中様 Sheet 2 → 2佐藤様 Sheet 3 → 3山田様 Sheet 4 → 4鈴木様 Sheet 5 → 5山田様 のように。 数字は識別できればいいので(エラーがでなければいいので)、なんでも構いません。 シートに順に番号を振るのでも、元のシート名の一番右を取るのでもいいです。 (そんなマクロがあるのかもわからないのですが) 宛名が複数あるものだけ選んで番号を振るのでもいいのですが、大変そうな気がするので・・・ マクロ自体よくわかっていないので、情報が不足しているかもしれませんが、 詳しい方、教えてください。 よろしくお願いいたします。

  • エクセルのマクロ

    エクセルのマクロに、ついて質問です 処理の範囲をセル指定していますが セルを結合して無いシートだと問題無く処理してくれるのですが セルを結合してるシートだと処理がされません セルの番地は確認してるはずなのですが‥ 問題の可能性を教えて下さい

  • マクロ 検索について

    こんにちは。マクロでの質問ですが、 【大学名リスト】というシートで作成したリストから検索してきたものを【検索ボタン】というシートのセルにコピペするマクロをボタンに登録しました。何度押しても検索してくれてしまうのですが、このボタンに登録したのは1回だけ実行して、もう一つのマクロで次を検索してくれるように作りたいのですが… Sub Macro1() ' ' Macro1 Macro ' ' Sheets("A.【大学名リスト】").Select Cells.Find(What:=Sheets("B.【検索ボタン】").Range("C8"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate Selection.Copy Sheets("B.【検索ボタン】").Select Range("E8").Select ActiveSheet.Paste End Sub 数値の検索だと1回だけで止まってくれるのですが、数式にすると何回も可能になってしまうのはなぜなのでしょうか。 あと、実行すると【大学名リスト】のシートで作成したリストから、【検索ボタン】のシートのあるセルにキーワードを入力すると、隣のセルに5つの候補を表示させるマクロも教えていただきたいです。

  • エクセルのマクロを教えてください。(初心者です)

    エクセルで子どものお小遣い帳を作ろうと思っています。 簡単に申し上げると、 1つの行に入金欄と出金欄と残高欄とコメント欄という簡単なものです。 残高欄は、一つ上の行の残高+入金欄-出金欄としています。 計算式は、 =IF(AND(INDIRECT("E"&ROW())="",INDIRECT("F"&ROW())=""),"",INDIRECT("G"&ROW()-1)+INDIRECT("F"&ROW())-INDIRECT("E"&ROW())) でやっています。 子どもが勝手に行やセルを追加したり削除したりして、 残高のところがおかしくならないようにINDIRECTを使っているのですが、 さらに一歩進んで、マクロで行を追加していきたいのです。 ボタンを押すなどして、マクロを実行すると 入力するための行が10行いっぺんに追加されるようなものを作りたいのです。 初心者なりにやったところ、 たとえば、1行目に計算式だけを入れた行を用意しておいて、 マクロを実行して5行目から14行目に これをコピーさせることができました。 ところが、もう一度マクロを実行すると またしても5行目から14行目に上書きされてしまいます。 (5行目を選択して貼り付けしてくれているようです。) 2回目にマクロを実行すると空欄となっている 15行目から24行目に新しい欄ができ、 次にマクロを実行すると 25行目から34行目に新しい欄ができ・・・ としていきたいのです。 ずぶの素人の私にどなたか この方法をご教示頂けませんでしょうか。

  • エクセルのマクロ(2回目)を教えて下さい。

    串刺し加算(多数のシートの同じセル番地を集計する)のマクロは出来ますか?? シート数が10 加算したいセル数が約1000箇所 加算する位置はA1,A2,B4,B5,D6など様々です。 各支店別の在庫数と出荷数および金額のシートを各支店合計のシートに集計したいからです。 各支店別と各支店合計のフォーマットは同じです。 できれば、あらかじめ集計する各支店別シートとセル番地をシートに記載できるとベストですが。 こんなわがままなマクロなんて出来ますか?