- ベストアンサー
マクロ NO番号・上からの行で入力したい。
マクロを使い。自動でNO番号とSheet2に上からの行で入力させたいです。是非、方法を教えてください。 例)SHEET1 A1 空白 A2 買い物 A3 金額 A4 残金 入力ボタンをクリックしたらSheet2へ 例)SHEET2 A B C D 12 買い物 金額 残金 と自動で番号が記載され、上の行からどんどん入力記載されるように作りたいのですが、マクロで作れますか?教えてください。 マクロの記述も詳しく教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コントロールツールボックスのCommandButtonとして、下記のような感じかな。 Private Sub CommandButton1_Click() Dim LRow As Long With Worksheets("Sheet2") LRow = .Range("A65536").End(xlUp).Offset(1, 0).Row .Range("A" & LRow).Value = LRow - 1 .Range("B" & LRow).Value = Worksheets("Sheet1").Range("A2").Value .Range("C" & LRow).Value = Worksheets("Sheet1").Range("A3").Value 'D列の記述 End With End Sub
その他の回答 (2)
- papayuka
- ベストアンサー率45% (1388/3066)
#2です。 > 黄色い色で.Range("B")が示されます。どうしてですか? ご自分で変数 LRow の名称を LastRow に変えたんなら、統一しなきゃエラーになります。 > 自分が作成したマクロに入れ込みたいのですが 「自分が作成したマクロ」がどんなものかも解らないので、お答えしようがありません。 処理が必要なところに組み込めば良いだけですよね?
お礼
ありがとうございました。LastRowでディバックが回避出来ました。
- imogasi
- ベストアンサー率27% (4737/17069)
質問のようにマクロを持ち出さなくても、エクセルに データーフォームというのがありますよ。少し使いがってが悪いが。 シートのA1:D1に 氏名 年齢 性別 住所(市 を入れて、A1:D1を範囲指定し データーフォーム 各項目のデータ(この場合4項目、縦並び)を入れて。「新規」ボタンを押すと、従前に入力済みの行の下へ4項目セットされる。 それを続ける。 ーー 「前を検索」で1行ずつ上がった行のデータが捉えられられ 「後を検索」で1行ずつ下がった行のデータが捉えられられる。 修正もそこでできる ーー エンタをやたらに押さないこと。 番号は後からA列挿入して連番を振る。または振っておいてB-F列に 登録する。 ======= >マクロで作れますか 回答者の中には、もちろん作れる方は沢山いますよ。 この程度の課題で回答者を値踏みしないでください。 問題なのは、質問者がしたいことだけを述べているだけなので、丸投げ問題に解答することになる。 ーー (A)マクロでも、全部入力してから組み替える (B)4行入力すると組み替える (C)毎行入力で組み替える などの方式がある。 ーーー 関数でも4行ごとに、縦のものを横に並べ替える質問は時々あり そんなに難しくない。 ーー マクロも学が進むというか、普通の方は、「フォームと」いうものに 例えばテキストボックスなどを4つ設けて、入力させ、コマンドボタンのクリックでシートにデータを移す(この繰り返し)を考えます。 質問者のようなのは始めて見る。
お礼
ありがとうございました。マクロで既に作ったフォームで入力時のやり方が分からなかったので質問しました。すいませんでした。助かりました。
お礼
早速の返事ありがとうございます。早速入力しましたが、エラーになってしまいます。黄色い色で.Range("B")が示されます。どうしてですか? Sub 入力() Dim LastRow As Long With Worksheets("Sheet2") LRow = .Range("A65536").End(xlUp).Offset(1, 0).Row .Range("A" & LRow).Value = LRow - 1 .Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value .Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A7").Value
補足
ありがとうございます。もう一つ深く教えてください。自分が作成したマクロに入れ込みたいのですが、何処に入れれば良いか教えてください。 Sub 入力() Dim LastRow As Long With Worksheets("Sheet2") LastRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1 .Range("A" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value .Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A7").Value .Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A8").Value .Range("D" & LastRow).Value = Worksheets("Sheet1").Range("A9").Value .Range("E" & LastRow).Value = Worksheets("Sheet1").Range("A10").Value .Range("F" & LastRow).Value = Worksheets("Sheet1").Range("A12").Value