エクセルVBAでデータの蓄積方法

このQ&Aのポイント
  • エクセルVBAを使用して、データの蓄積方法について教えてください。
  • エクセルの2013でテレフォンアポイント用のデータを蓄積する方法について教えてください。
  • エクセルVBAを使って、データの蓄積を自動化する方法について教えてください。
回答を見る
  • ベストアンサー

エクセルVBAでデータの蓄積方法?

いつも参考にさせてもらっています。 エクセルの2013で下記のようなテレフォンアポイント用のデータがあります。 (1)(2)のようなマクロボタンを作成するにはどのようにしたらよろしいでしょうか?ご教授の程よろしくお願いいたします。 A    B     C     D    顧客名 電話番号 架電日  架電履歴  DA     DB      DC      DD 一回目の日 一回目の履歴 二回目の日 二回目の履歴・・・・・ ★マクロボタンを押すと下記(1)(2)が実行されるマクロ (1)CとDの架電日と架電履歴をDA以降の列に反映れる 例)CのデータがDA DのデータがDB DA  DB  DC  DD  DE  DF  1/10 留守 1/11 留守 1/14 提案中・・・・・ 顧客によって架電回数に違いがでるため、イメージ的にはDAにデータが入っていたらDC、DCにデータが入っていたらDEのようにどんどん蓄積されていくイメージです。 (2)CとDのセルのデータはクリアされる よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

んじゃ折角なので >イメージ的にはDAにデータが入っていたらDC、DCにデータが入っていたらDEのようにどんどん蓄積 という通りに作成してみます。 private sub CommandButton1_Click()  dim h as range  dim c as long  on error goto errhandle  for each h in range("C:C").specialcells(xlcelltypeconstants, xlnumbers)  ’次のヒトカタマリはオマケ機能。不要なら削除。   if h.offset(0, 1) = "" then    h.offset(0, 1).select    msgbox "履歴が記入されていない"    exit sub   end if  ’入ってないとこをどんどん探す   c = 105   do until cells(h.row, c) = ""    c = c + 2   loop   h.resize(1, 2).copy cells(h.row, c)   h.resize(1, 2).clearcontents  next errhandle: end sub #D列に記入したら自動転記しちゃう案も考えましたが,まぁ何件か記入した後にボタンをポチるとまとめて待避する今のアイデアの方が,使い良いカモですね。

kurita0922
質問者

お礼

ありがとうございました。 助かりました!!

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! ↓の画像のように顧客一人につき1行使用するとします。 Sheet上にコマンドボタンを配置し、↓のコードにしてみてください。 Private Sub CommandButton1_Click() Dim i As Long, j As Long, endCol As Long For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, "C") <> "" Then endCol = Cells(i, Columns.Count).End(xlToLeft).Column If endCol < 105 Then j = 105 Else j = endCol + 1 End If Cells(i, "C").Resize(, 2).Copy Cells(i, j) Cells(i, "C").Resize(, 2).ClearContents If Cells(1, j) = "" Then With Cells(1, j) .Value = ((j + 2) Mod 105) / 2 & "回目の日" .Offset(, 1) = ((j + 2) Mod 105) / 2 & "回目の履歴" End With End If End If Next i End Sub こんな感じではどうでしょうか?m(_ _)m

kurita0922
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセルで最後行に入力したデーターを自動で別の(ファイル)シートの任意の場所に自動で転記できるようにしたいのですが・・。

     全くの初心者です。よろしくお願いします。 初心者にもかかわらず無謀にもエクセルで最後行に入力したデーターを自動で別の(ファイル)シートの任意の場所に自動で転記し、上下が逆になる形にしたいと思います。 例) A B C D E F 1 a aa ab ac ad 2 b ba bb bc bd 3 c ca cb cc cd 4 d da db dc dd 行4に d da db dc ddを入力すると A B C D E F E 1 2 3 d da db dc dd 4 c ca cb cc cd 5 b ba bb bc bd          6 a aa ab ac ad          別(ファイル)シートの任意の場所へ挿入する形で転記され、入力のシートとは上下が逆になる。  何かよい方法がありましたら、よろしくお願いします。

  • エクセル データの一部を抜粋する方法

    12,48783,12.81.8.0,546c63da38827,actiot… 1,887533,11.90.7.0,e65463da5487,actio… 上記のデータがあるとします。 二つ目の「,(ガンマ)」と三つ目の「,(ガンマ)」の間にあるデータのみ抜粋する方法はあるのでしょうか? 上記のデータでしたら 「12.81.8.0」 「11.90.7.0」 になります。 関数かマクロのどちらでも構いません。 宜しくお願いします。

  • EXCELでデータの履歴を残したいんですが

    EXCELで顧客名簿を使用しているのですが、これから購入履歴を管理していきたいと考えています。 具体的にはユーザーフォームに顧客名、購入商品名、購入金額、購入日等の情報を入力すると下記のように値が返ってくるようなマクロを教えて頂きたいです。 直近の購入履歴が左から順に見れるようにしたいです。 1回目の購入の際(商品a) A B C D E F G 1顧客名  a  金額 日付 2 3 4 5 2回目の購入の際(商品b) ユーザーフォームに商品名、金額、日付を入力すると A B C D E F G 1顧客名  b 金額  日付  a  金額 日付 2 3 4 5 以上のようにしたいのですが何分EXCELが苦手ですのでお力おかしください。宜しくおねがいいたします。

  • エクセルのマクロについて教えてください。

    エクセルのマクロについて教えてください。     a b c d A   1 2 3 4 B  5 6 7 8    ↓    aA1    bA2    cA3    dA4    aB5    bB6    cB7    dB8 という並びになるようにしたいので、よろしくお願いします。

  • Excel VBAで教えてください。

    Excel VBAで教えてください。 テキストデータをExcelで読み込んだ後、Sheet1に以下のデータが入っており、 A列 B列   C列 氏名 開始日(yyyy/mm/dd) 終了(yyyy/mm/dd) テキストボックスに開始日(yyyy/mm/dd)、終了日(yyyy/mm/dd)、を入力し、入力した開始日から終了日のデータ検索し、A列からのデータをコピーし、Sheet2に貼り付けしたい。 テキストデータをExcelで読み込むコードはできたのですが、その後の処理ができずに困っています。 ユーザーフォームに入力するコードも教えてください。

  • エクセルでデータを抽出して日報を作りたいです

    今は日報を手書きで作っているんですが、今度からパソコンで作ることになり、かなり困ってます。 やりたい内容としては、エクセルで作っている顧客データがあるんですが、それの中の郵便番号を絞り込んで別ブックの日報のシートに顧客名だけを移す作業です。マクロ初心者で本を読んではいますがどうしていいのかわかりません。どなたか教えてください。 ≪顧客データ≫ A列      B列     C列     D列       顧客名  電話番号  郵便番号  市町村名    顧客データはこのような並びです。顧客名は2行目から始まっており、24000行ほどあります。 ≪日報≫ A列     B列 番号   顧客名 日報はこの並びです。日報の顧客名を移したい場所はB列の13行目から表示させたいです。 日報を作るときにできれば顧客データを触りたくないので、日報でセルに郵便番号を入れて マクロで作れるボタンをクリックして作成できたらいいかなって思っています。 ちなみに日報はデスクトップにあるんですが、顧客データは違うフォルダの中に入っています。 マクロ初心者ですがどなたかわかる方がいましたらよろしくお願いいたします。 わかりやすくコードを書いていただけると助かります。

  • VBAでのデータ並び替え、条件判断について

    Excel2003、VBA6.5でマクロに挑戦しているVBA初心者です。 学生時代にプログラムはかじった事があるのですが、マクロは勝手が分からず、 以下のようなマクロを組みたいのですが、そもそもプログラムはどこの ウィンドウに書くのか?という辺りから調べ出す始末のため、皆様の お知恵をお借りしたく、投稿しました。 【目的】 Sheet1に貼り付けられたデータを、精査(並び替え、条件判断)し、結果をSheet2に出力させたい。 Sheet1(入力データ) 1行目は項目名 データA1,データB1,データC1,データD1,データE1 データA2,データB2,データC2,データD2,データE2 … … データA11,データB11,データC12,データD11,データE11 データA12,データB12,データC12,データD12,データE12 ※データEのみ、整数型で後は文字データになります。  また行数というか、データ量は20~30行程度を想定してます。 Sheet2(出力データ) 1行目は項目名 日付,データB1+データC1の文字列を結合,固定値2,条件判断結果1(データD1より条件判断) 日付,データB2+データC2の文字列を結合,固定値2,条件判断結果2(データD2より条件判断) … ※Sheet1のデータ1行は、すべてが必要でありません。一部のみがあればOKです。  上記の例だと、Sheet1のデータAとEはSheet2では不要です。 ※日付…マクロを走らせた日付をMM/DD形式で出力させたい ※条件判断結果…(データD1がAMだったら09:00、PMだったら13:00、PM2だったら15:00という値を返すようにしたい) 流れを考えてみましたが、 1)データ型を宣言して、 2)1行を配列に読み込む 3) a)データB列、C列の文字列を結合  b)データD列の条件分岐 4)配列からデータを書き出す 5)Sheet1の行が空白だったら処理完了 という感じかと思っているのですが、具体的にマクロにできず(関数をうまく使えず)、困っています。 Findメソッドか、Vlookupあたりで必要になるデータだけ、Sheet1で検索した結果をSheet2に埋めて 行く形でもできるのかな、とも思いましたが、こちらも具体的にマクロにできません。 特に処理スピードにこだわるわけではないですが、あとあと見返して勉強およびメンテできるような、 シンプルなカタチ(1行にコマンドを詰め込んだ複雑な形ではなく)にしていただけると助かります。 どうぞご教授いただけませんでしょうか。 よろしくお願いいたします。

  • エクセル:2列共重複しているデータを見つけるには?

    顧客データ(企業名・事業所名・住所・・・)が同じ内容で二つのファイルに分かれています。 同じ内容なので各1000件です。 一つのファイルには顧客番号が入力されており、もう片方には入力されていないので、それを転記したいと思っています。 同じ条件で並び替えをするのですが、微妙に(1~2行)並びが違ったりしてしまいます。ですので、隣同士にデータを貼り付け目視で確認しています。 初心者なので、マクロなど使わず、効率良く作業できる方法はないでしょうか。 考えているのは、 A B │C D 企 事 │企 事 このように隣に貼り付けて、 同じ行のA・BとC・Dが一致しないものを検索する方法です。 今は目視でやっているのですが、目視だと仮に顧客コードを 転記した場合に間違っていると困るので。 よろしくお願いします。

  • エクセル2010での重複データチェック

    エクセル2010で作成したデータの重複データチェックをしたいです。 顧客コードと、接触日 の両方とも同じデータが入っていれば 最初に出てきた行に1回目 再度出てきたデータ行に重複と表示したいです。 シートの項目(見出し)は下記のようになっています。 A列:顧客コード B列:顧客名 C列:接触日 D列:面談要旨 F列:結果 皆様、年末のお忙しいところ申し訳ありませんが、ご教示ください。 上記説明では、わかりにくいかと思い、スクリーンショットも添付いたします。 よろしくお願いいたします。

  • (VBAにて)背景色の設定について

    (VBA)でマクロを作成しているのですが、下記の事が分からないので 教えてもらえないでしょうか? お願いします。 ・Excelで管理している障害管理表があります。 (管理表はこんな感じです。)     A         B       C        D     E 1  発生年月日    件名      内容      状況    完了日 2  (yyyy/mm/dd) (障害件名)  (障害内容)  (XXXX)  (yyyy/mm/dd) ・ ・ 300 ・D列の「状況」欄には、「完了」「調査中」「対応中」「顧客待ち」   が入力されています。(コマンドボタンからの選択ではなく、手入力です。) ・項目名は1行目です。 ・データ部分は、2行目~300行までです。 ・D列の「状況」欄をキーにして、「完了」と入力した行のみの背景色を黄色に反転させたいと思っています。  教えて下さい、お願いします。

専門家に質問してみよう