重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excelのマクロ 入力したものを表に入力したいです。
入力画面というシートがあって、データベースというシートがあり、
入力画面で打った値をデータベースにマクロで移すというものを作りたいです。

入力画面は縦に並んでいて、
食べ物 いちご
種類  紅ほっぺ
特産  静岡
個数  20個
という値を入力したら(例ですが)

データベースのシートには
食べ物  種類    特産   個数
いちご  紅ほっぺ  静岡   20個
というように、横一列テーブルで並ぶようになっています。

そしてこれを、入力画面にある、「表へ」という図形を押すと、データベースのA1から横に転記され、一度入力されたら、表は自動で次のB1にいく。次はC1・・という風なマクロを組みたいです。

すみませんがどなたかわかるかた・・お願いします!

A 回答 (3件)

こんばんは!



>入力画面にある、「表へ」という図形を押すと・・・

↓の画像のような配置で「Sheet1」(←実際のシート名は何でも良い)に
オートシェイプの四角形を挿入 → マクロの登録としています。
コードを

Sub 正方形長方形1_Click()
 Dim myRow As Long, wS As Worksheet
  Set wS = Worksheets("データベース")
   If Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
    myRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
     If myRow > 1 Then
      myRow = myRow + 1
     End If
      With Range("A1").CurrentRegion
       .Copy
       wS.Cells(myRow, "A").PasteSpecial Paste:=xlPasteAll, Transpose:=True
       .ClearContents '//★//
      End With
       Application.CutCopyMode = False
   Else
    MsgBox "元データなし"
    Exit Sub
   End If
    wS.Activate
End Sub

※ 「データベース」シートに行列を入れ替えて貼り付け後、元データを消去するようにしています。
そのまま残しておきたい場合はコード内の「★」の行を消してください。m(_ _)m
「Excelのマクロ 入力したものを表に入」の回答画像3
    • good
    • 0
この回答へのお礼

こんにちは(^_^)!
とてもわかりやすいです!ありがとうございます!
入力しながら、このコードはなんだろう・・と検索をかけながらやって、とても勉強になりました。
本当にありがとうございました!

お礼日時:2018/06/26 11:01

こんにちは



>入力画面で打った値をデータベースにマクロで移すというものを作りたいです。
とのことなので、作成したところまでを提示して、うまくできない部分について具体的に質問なさった方が、より的確な回答が得られると思います。

未だ作成にかかっていない段階であるならば、ヒントとして以下を。

マクロの記録で
・入力画面の4つのセルをコピーし
・データベースの適当なセル(例えばA2)に「行列を入れ替えて」ペースト
するものを作成してみる。
上記で、ほぼ6割方は出来上がります。

入力画面のセル位置は固定だと推測しますので、そのままでも問題はありませんが、データベースのシートは最終行の次のセルに記入するので、そのままではうまくいきません。
でも、このぐらい具体的な内容にできれば、検索すれば大抵方法は見つかります。
https://www.google.co.jp/search?q=%E3%82%A8%E3%8 …
あとは、これを組み合わせて、なさりたいことを実現できるようにすれば良いですね。

※ データベースと入力画面の形を統一しておけば、処理はもっと簡単にできると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろんなサイトを幾度となくあさっていて、いろんな文を改良したりくっつけたりと、試したけどうまくいきません出した。
もう少し考えてみます!

お礼日時:2018/06/25 14:41

念の為の確認ですが「データベースのA1から横に転記され、一度入力されたら、表は自動で次のB1にいく。

次はC1・・」は、タイトル行も有るので「データベースのA2から横に転記され、一度入力されたら、次の転記は自動でA3から横に転記。次はA4・・」の間違いでは?
    • good
    • 0
この回答へのお礼

すみません、そうでした。
私の入力ミスです!A1の行(G1)まで行ったら、次はA2の行(G2)まで・・でした!
ご指摘ありがとうございます!

お礼日時:2018/06/25 14:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!