• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAでデータの蓄積方法?)

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答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