- ベストアンサー
エクセルVBAでデータの蓄積方法
- エクセルVBAを使用して、データの蓄積方法について教えてください。
- エクセルの2013でテレフォンアポイント用のデータを蓄積する方法について教えてください。
- エクセルVBAを使って、データの蓄積を自動化する方法について教えてください。
- みんなの回答 (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列に記入したら自動転記しちゃう案も考えましたが,まぁ何件か記入した後にボタンをポチるとまとめて待避する今のアイデアの方が,使い良いカモですね。
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! ↓の画像のように顧客一人につき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
お礼
ありがとうございました。
お礼
ありがとうございました。 助かりました!!