- ベストアンサー
マクロ NO番号・上からの行で入力したい。
- みんなの回答 (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/17068)
質問のようにマクロを持ち出さなくても、エクセルに データーフォームというのがありますよ。少し使いがってが悪いが。 シートのA1:D1に 氏名 年齢 性別 住所(市 を入れて、A1:D1を範囲指定し データーフォーム 各項目のデータ(この場合4項目、縦並び)を入れて。「新規」ボタンを押すと、従前に入力済みの行の下へ4項目セットされる。 それを続ける。 ーー 「前を検索」で1行ずつ上がった行のデータが捉えられられ 「後を検索」で1行ずつ下がった行のデータが捉えられられる。 修正もそこでできる ーー エンタをやたらに押さないこと。 番号は後からA列挿入して連番を振る。または振っておいてB-F列に 登録する。 ======= >マクロで作れますか 回答者の中には、もちろん作れる方は沢山いますよ。 この程度の課題で回答者を値踏みしないでください。 問題なのは、質問者がしたいことだけを述べているだけなので、丸投げ問題に解答することになる。 ーー (A)マクロでも、全部入力してから組み替える (B)4行入力すると組み替える (C)毎行入力で組み替える などの方式がある。 ーーー 関数でも4行ごとに、縦のものを横に並べ替える質問は時々あり そんなに難しくない。 ーー マクロも学が進むというか、普通の方は、「フォームと」いうものに 例えばテキストボックスなどを4つ設けて、入力させ、コマンドボタンのクリックでシートにデータを移す(この繰り返し)を考えます。 質問者のようなのは始めて見る。
お礼
ありがとうございました。マクロで既に作ったフォームで入力時のやり方が分からなかったので質問しました。すいませんでした。助かりました。
関連するQ&A
- Excel 空白行を上に詰めるマクロ
関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。 sheet2のセルには関数が入っています。 sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。 この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか? (例) sheet1 ⇒ sheet2 A B C A B C 1 あ い う 1 あ い か 2 か 2 (空白行) 3 き く け 3 き く し 4 こ さ し 4 (空白行) ●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない ●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロ(指定列の空白にひとつ上の文字を入力し続ける)
エクセルのマクロを教えてください。 指定列の空白にひとつ上の文字を入力し続けるマクロです。 A列指定 A2からスタートし、1000行くらいあるデータ 空白があった場合ひとつ上の文字を入力 空白は、2行連続・3行連続となることもあるが大抵は1行空白 この場合、空白セルの上で一番近いデータをコピーする A列のデータは、文字・数字・日付と様々 1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了 エクセル2003使用 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 関数による空白行を除き範囲を選択するマクロ
添付ファイルのシートが同じファイル内にある別シートの値を参照の上、元シートの入力がない場合は、if関数により空白表示する様にしてあります。(関数自体は1万行くらいまで入力すみです。) このシートの空白表示以外のセル(A6:i22)までを選択するマクロを組みたいのですが普通のrange(A6:i6).End(xlDown).Rowを使うと空白表示行を含めた関数のある最終行を選択してしまいます。 サンプルの(A6:i22)をうまく選択するマクロを教えてください。
- 締切済み
- Excel(エクセル)
- マクロによる条件での行の入力と削除
初めまして、よろしくお願いします。 次のような二枚のシートがあります シート1 A B C 1 2 ・ 99 100 23 101 25 102 31 103 34 104 43 105 44 106 49 107 50 108 55 109 60 110 111 ・ ・ シート2 A B C 1 2 ・ 99 100 23 1 2 3 101 25 4 5 6 102 31 7 8 9 103 34 0 1 2 104 43 3 4 5 105 44 6 7 8 106 49 9 0 1 107 50 2 3 4 108 55 5 6 7 109 60 8 9 0 110 111 ・ ・ シート1とシート2のA列に入っている数字が通し番号です。シート2では加えてその通し番号のデーター数字がB列、C列、D列に入っています。 のこシート1の通し番号31が削除、代わりに通し番5番と51番を追加し、 シート1 A B C 1 2 ・ 99 100 5 101 23 102 25 103 34 104 43 105 44 106 49 107 50 108 51 109 55 110 60 111 112 ・ ・ マクロを実行すると シート2 A B C 1 2 ・ 99 100 5 101 23 1 2 3 102 25 4 5 6 103 34 0 1 2 104 43 3 4 5 105 44 6 7 8 106 49 9 0 1 107 50 2 3 4 108 51 109 55 5 6 7 110 60 8 9 0 111 112 ・ ・ シート2がこように通し番号31が入っていた行番102行が削除され、新たに通し番5番が行番100に、51番が行番108に挿入追加されるマクロを教えていただきたく、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel 空白のせる以外 番号を振る方法
請求書のNoを付けるにあたって、B行に日付が入ったものに06001といったように 入力事に番号を入れる方法を教えて下さい。 【例】 A(請求書番号を自動で入れたい) B 06001 1/8 ( ) 空白⇐ 06002 1/9 ※⇐の箇所にあらたに(1/20)日付が入ったらAの(06003)と入るように設定したい。
- 締切済み
- Excel(エクセル)
- マクロで、新しいシートを作りたい。
エクセルのマクロを教えてください。 今は、Sheet1のA2に年月日、B2:H2にコード、項目1、項目2、・・・と入力します。 入力が終わったら、マクロを実行し、その後A2:H2をクリアしています。 今回やりたいのは、マクロの実行時に新しいシートを追加し、A2:H2をコピーしたいのです。 1 Sheet1のA2から、年月を取り出す。2003/1/1→200301 2 シートの中に、Sheet200301が有るかどうか調べ、無かったらSheet200301というシートを作る。 3 新しいシートを作ったら、Sheet4のA1:Z2をSheet200301に貼り付ける。 4 Sheet200301の最後の空白行を調べる。(新しいシートを作って最初は2行目になってもらいたい) 5 4で調べた空白行を次の行に貼り付ける。 6 4で調べた空白行にSheet1のA2:H2を貼り付ける。 7 Sheet1のA2:H2をクリアします。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マクロ データ加工 番号に合わせて行を挿入し移動
添付の左の状態から右の状態に加工するマクロが知りたいです。 A列:A7から1~18まで番号、空白1行、1~18まで番号、空白1行…繰り返し 左のB列:B1のみ見出し、B2からタイトル、1~いずれかのの番号(9だったり16だったりいろいろ)、タイトル、1~いずれかのの番号、タイトル…繰り返し 左のC列とD列:B列の番号に該当する氏名と生年月日 右の状態にするには最初の1~4行を下げる、赤の番号と黒の番号を合致するように移動し、黒の番号がないときはその行を18まで空白行にする、タイトル、番号を合わせて移動…という繰り返しになります。(黄色の部分を空白行にして調整) この手順でなくても結果が同じになれば良いです。 黒の番号は通常は連番ですが、まれに途中の番号がぬけている(例1、2、3、6、7)場合がありますが、その際には抜けている行(例4、5)を空白行にしてもらえると助かります。
- 締切済み
- Excel(エクセル)
- マクロのシートから関数で転記
初めまして、よろしくお願いします。 マクロ(?)のシートで上の行から自動で挿入されていくシートから、別のシートで関数を使い、数字を取り出そうとすると、(例=Sheet1!A2)マクロシートで自動でデーターが挿入されていくごとに別のシートに入力している関数までもがつられて指定範囲が下に移動されていってしまいます。(例=Sheet1!A8 A2から順にA3、A4・・A8と言うように)何とか移動しないようにできないでしょうか。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 行挿入マクロをご教示ください
A列の5行目から1000行ほどK列までデータが入っています。 A列からK列をB列優先でソートを行うと、B列にところどころ同じ番号が2行あったり、3行あったり、また4行とバラバラで、出てきます。 この場合、同じ番号が2行以上あるセルの上に空白の行1行を挿入し、同じ番号行分を合計して整理したいと考えています。 2行以上ある行の上に空白行を1行挿入するようなマクロをご教示ください。 どなたか、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マクロ データ加工 番号に合わせて行を挿入し移動
添付の左の状態から右の状態に加工するマクロが知りたいです。 A列:A7から1~18まで番号、空白1行、1~18まで番号、空白1行…繰り返し 左のB列:B1のみ見出し、B2からタイトル、1~いずれかのの番号(9だったり16だったりいろいろ)、タイトル、1~いずれかのの番号、タイトル…繰り返し 左のC列とD列:B列の番号に該当する氏名(漢字)と生年月日(数字8桁) 右の状態にするには最初の1~4行を下げる、赤の番号と黒の番号を合致するように移動し、黒の番号がないときはその行を18まで空白行にする、タイトル、番号を合わせて移動…という繰り返しになります。(黄色の部分を空白行にして調整するかんじです。黄色の塗りは必要ありません。)この手順でなくても結果が同じになれば良いです。 黒の番号は通常は連番ですが、まれに途中の番号がぬけている(例1、2、3、6、7)場合がありますが、その際には抜けている行(例4、5)を空白行にしてもらえると助かります。
- ベストアンサー
- Excel(エクセル)
お礼
早速の返事ありがとうございます。早速入力しましたが、エラーになってしまいます。黄色い色で.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