• ベストアンサー

入力するごとにセルを移動させる方法

今、VBAを組んでいてどうしても分からないところがあるので教えてください。 シート1のA1に値を入力し、シート上に作ったコマンドボタンを押すと、シート2のB1に値が入力されるマクロを組んでいます。新たにシート1のA1に値を入力し、ボタンを押すと、今度はシート2のB2に値が入力される、もう一度同様の作業をするとシート2のB3に値が入力される、そんなVBAってありますか? もし、それがムリなら、日付をフラグとして上記のようなVBAを組む方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 コントロールツールのボタンに以下のように付ければよいかと思います。ただし、その列には、このデータのみを入れるようにしてください。 Private Sub CommandButton1_Click() With Worksheets("Sheet2").Range("B65536").End(xlUp)  If .Row = 1 And .Value = "" Then    .Value = Range("A1").Value  Else   .Offset(1).Value = Range("A1").Value  End If End With

kyoroxchan
質問者

補足

ありがとうございます。 >ただし、その列には、このデータのみを入れるようにしてください とはどういうことですか? その列とはどの列のことでしょう?

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 私の書いたマクロは、お分りになりませんでしたか? Worksheets("Sheet2").Range("B65536").End(xlUp) その列というのは、Sheet2のB列のことです。これは、B列の下から上に検索していますから、その列は、当然、途中は、空いていないといけませんね。だから、積み上げ式に、B1,B2,B3 ... となっていきます。 その列の最後尾までの間に、何か別のデータを入るようなら、このマクロは書き換えなくてはなりません。そういう意味なのですが、おわかりになりますか?

kyoroxchan
質問者

お礼

なるほど!上から順に記入していくと言うのではなく、下から積み上げていくと言う形になるのですね! 一度、試してみます。 ありがとうございました。

  • the_moon
  • ベストアンサー率40% (9/22)
回答No.1

回答はこちら♪ Option Explicit Public mintSheet As Integer Sub Macro1() mintSheet = mintSheet + 1 Sheets(2).Cells(1, mintSheet) = Sheets(1).Cells(1, 1) End Sub

kyoroxchan
質問者

お礼

ありがとうございます。 ちなみに、シート2に事前に日付が入力されていて シート1にも日付を入力する欄があり、シート1の入力した日付に該当する行(シート2)に値を入力する場合はどうなりますか?

関連するQ&A

  • 入力するたびにセルを移動させるVBA

    シート2のB2(1)、B3(2)に値を入力し、シート上に作ったコマンドボタンを押すと、シート3のC3に(1)の値、D3の(2)の値が入力されるマクロを組んでいます。新たにシート2のB2、B3に値を入力し、ボタンを押すと、今度はシート3のC4,D4に(1)、(2)の値が入力される、もう一度同様の作業をするとシート3のC5、D5に(1)、(2)の値が入力されるVBAはどのようにすればいいですか?

  • エクセルのデータをアクセスのテーブルに移動入力する

    エクセルのデータをアクセスのテーブルに移動入力するVBA フォルダAにおいて、a1.xlsxというファイルがあり、 そのsheet1のセル(a,1)=1 A1が1 とします その値をアクセスのデータベース(これもフォルダAにあります)  b.accdbのテーブル1の フィールド1に入力したいときの エクセルマクロのVBAを御教示いただけると助かります さらに続けて フォルダAにおいて、a2.xlsxというファイルがあり、 そのsheet1のセル(a,1)=2 A1が2 とします その値をアクセスのデータベース上記と同じ  b.accdbのテーブル1の フィールド1に追加で入力したいときの エクセルマクロのVBA 以上わかると助かります よろしくお願いします win10 office365

  • 日付を自動入力する方法

    入力フォームと言うシートの日付列A8からA22(A8からD8まで結合して、このパターンでA22まであります)まで日付を入れるようにしています。右隣の列E8からE22は商品名が入る列です。 今は、下記のVBAで日付のセルを選択して、日付が自動で入るボタンを押して、本日の日付を入力しています。K28には=today()の関数が入っています。 Sub 日付入力()  ActiveSheet.Unprotect  Range("K28").Copy  ActiveSheet.Paste  Application.CutCopyMode = False  ActiveSheet.Protect End Sub これを日付のマクロボタンを押す毎に、A8からA22まで順番に入力できるようにするにはどうすればよいでしょうか? 尚、入力フォームの作成・保存が終わるとA8からA22まですべて、セルの値を消去するマクロボタンを作っています。

  • Excelで一つのセルに複数の値を入力する方法

    Excelで一つのセルに複数の値を入力する方法はありますか? 現在の状況です↓ Seet1   A     B    C 1 項目1 項目2 項目3 2  Seet2   A    B   C 1 1/1  1/2   1/3 2  Sheet1のA2に1/1と入力するとSheet2のA2に項目1と入力され、 さらにSheet1のB2に1/1と入力すると Sheet2のA2に項目1項目2と二つの値が出るようにしたいのです。 今までは項目が二つだったため Aに1/1なら項目1 Bに1/1なら項目2 AとBに1/1と入力されていたら項目1項目2と出す というように無理やりIfで処理していたのですが、 項目名が増えてきたためすべての組み合わせをIfで処理できなくなってしまいました。 やはり関数では無理でしょうか?VBAは勉強し始めたばかりです。 どうか知恵をお貸しください。

  • エクセルVBAでワークシート関数のようにしたい

     例えば、セルA1に日付を入力して、セルB1に関数WEEKDAYが入力されていると、すぐセルA1の値を返してくれますが、これと同じことをVBAで再現したいのですが、可能でしょうか?  マクロやVBAでWEEKDAYを記述しても、「ツール」→「マクロ」→「マクロ」か「VBA」でやらないとA1の値をB1に返せないので、A1に日付を入力した瞬間、B1に値を返したいのですが、よろしくお願いします。

  • EXCELで入力セルの自動移動

     項目  値1 値2 値3 値4 値5  1 A1  B1 C1 D1 E2 F2 2 A2  B2 C2 D2 E2 3 A3 上記のような表で、横方向に入力の作業をする場合、0(ゼロ)を入力したら、次の行の項目セルに移動する方法はどのようにしたらよろしいのでしょうか。 F2に0を入力したらA2に、E2に0を入力したらA3にということですが。 よろしくお願いします。

  • エクセルVBAマクロ検索について

    エクセルで検索してフラグを立てるマクロを教えてください。 A列  B列   C列   D ・・・・・ NO.  日付1  日付2  というリストがあり、A列からNOを検索してB列に日付のフラグを立てる作業をしたいのですが、 まず日付を入力するボックスで設定させてから、A列のIDを検索し、 該当IDのB列にその日付をフラグ入力させるというものです。 このときフラグ入力された該当IDのある列が表示されるようにします。 もしも既に日付フラグが立っているものがあれば、「重複です」等のメッセージボックスが出るか、 またはC列に新たな日付フラグが立つようにしたいです。 それと、上記マクロでA列を参照してB列にフラグという内容を違う列に変える場合(同類の違うリストでもこのマクロを活用したいため)、参照列とフラグ列はマクロでどこを直せばいいのか教えていただけると助かります。 いろいろ自力で調べては見たのですが、知識不足でお力を貸していただけると幸いです。 よろしくお願いいたします。 

  • 指定されたセルへデータを入力したい

    A2からA1000には、検索する名称が登録されている、 B1にはデータ(今日の日付)が入力されている。 上記の条件下で、A1に名称を入力したら、A2からA1000の中で一致する行のB列にB1の日付のデータを入力したい。 上記をマクロにて実現する方法を教えて頂きたく。

  • エクセルマクロ 日付を検索し入力

    エクセル2003マクロを使用して以下の事を行いたいと思っていますが、どのようなマクロを組んだらよいか分かりません。よろしくお願いします。 シート上部にある以下のデータを    A      B     C      D      E     1  日付 商品A 商品B 商品C  商品D 2  5/26    5     6     1       3    ←その日のデータ(毎日変わる) 入力ボタンを作成し、それを押すことにより        ↓ 6   5/1 7    ・ 8    ・ 9   5/26   5     6     1     3 10    ・  ↑日付が予め入力された表 上記のような、同一シート上の日付欄に入力される表を作りたいのですが、方法が分かりません。 その日のデータは、別シートに入力用フォームを作成し、飛ばしています。何人かの人間が入力するので、マクロで簡単に、行えるようにしたいと思います。よろしくお願いします。

  • ボタン入力で他ブックのセルへコピー

    ブックBシート炉の1月1日の横にある入力ボタンでブックAシート総括の日付のマッチ(ブックBのA3とブックAのA2)したらブックBの1月1日のB3:C7がブックAのA1:B7にコピーしたいのですがどなたかVBAコードが解る方お願いします。 同様に順に1月2日の横にある入力ボタンでブックAへコピーしたいのですが。

専門家に質問してみよう