- ベストアンサー
エクセルマクロの組み合わせについての質問
- EXCEL2007のマクロを勉強中なんですが、「エクセルの玉手箱」というアドインの販売サイトから購入したアドインと組み合わせて使用することはできないのでしょうか。
- 一列に並んだデータをボタンを作成して一回押すごとに最終データの次の空白列に自動転記させようとしていますが、何度やっても一回目だけ転記され、二回目以降は変化がありません。
- 「エクセルの玉手箱」のアドインのURLはhttp://www.freeformat.co.jp/FFOrder.htmです。購入したアドインは機能283の終端セルに書き込みという機能です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
せっかくマクロ(VBA)を勉強中なのであれば、アドインを購入せずにご自身で作成してみてください。 >一列に並んだデータをボタンを作成して一回押すごとに最終データの次の空白列に自動転記 これは、常に発生する基本的な機能です。これからも頻繁に必要になるはずです。 参考までに http://excelvba.pc-users.net/fol7/7_3.html などにデータの最終行を取得する方法があります。他にも方法は色々あります。 一例ですが、 Sub CellCnt() Dim lngYCnt As Long lngYCnt = Worksheets("Sheet1").UsedRange.Rows.Count + 1 Worksheets("Sheet1").Range("B" & lngYCnt & ":G" & lngYCnt).Value = Range("B2:G2").Value End Sub と少し編集(列方向の部分を削除してB2~G2の値を入れる)してみました。 これだけでもSheet1最終データの次の空白行へ転記されるはずです。 もし質問が列方向であればそれなりに編集してみてください。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
正直なところ、コードがなければ、想像の範囲になりますが、この程度のマクロでお金をいただくというのは、かなり恥ずかしいことだと思います。絵を見る限りは、InputBox 関数を使っているようで、それもみっともないです。 もし、VBAを学ぶなら、個別のワザを追わずに、体系的・段階的に覚えるようにしてください。 以下の場合は、二つのポイント(領域の行の取得とデータの右端の選択)を学ぶことです。 あくまでも、以下は、その例です。 '// Sub Test1() '各列の終端セルのデータを入れる Dim ret As Variant Dim r As Variant With ActiveSheet.UsedRange ret = Application.InputBox(Prompt:="列方向の終端セルに書き込みデータを入力してください", Title:="終端セル書き込み", Type:=2) If VarType(ret) = vbBoolean Or Trim(ret) = "" Then Exit Sub For Each r In .Rows Cells(r.Row, Columns.Count).End(xlToLeft).Offset(, 1).Value = ret Next End With End Sub Sub Test2() '書く最終列のセルのデータを削除 Dim ret As Variant Dim r As Variant With ActiveSheet.UsedRange If MsgBox("最終データを削除します。", vbInformation + vbOKCancel) = vbCancel Then Exit Sub For Each r In .Rows Cells(r.Row, Columns.Count).End(xlToLeft).Clear '.ClearContents Next End With End Sub '.ClearContentsでは、日付値を入力した時に、書式データが残ってしまう。
お礼
返事が遅れましてすみません 参考になりました。 有難うございます
- n-jun
- ベストアンサー率33% (959/2873)
コードの書き換えは必要なのかも知れません。 問い合わせ先のメールアドレスがあるから、 連絡(相談)してみたら如何でしょう。
お礼
これから勉強していきたいと思います 有難うございました