エクセルのSheetAを使用して入力画面を作成し、そのデータをSheetBやSheetCへリンクさせて印刷を行っています。1件ごとの入力になるので、データが残りません。このSheetAのデータを別のSheetDか別のファイルへ行ごとの横一直線という形式で残したいのですが、どうすればよろしいでしょうか?
また、反対に移動したデータを戻す場合などどうしたらいいのでしょうか?
マクロを利用すればいいように思うのですが、マクロは印刷程度の簡単なマクロの知識しかありません。
もしも、何か方法があるようでしたら、いろんな応用が利きそうなので、今後に向かって幅が広がりそうなので、是非詳しい方お願いします。
<例>
1つめのデータをSheetAへ入力
SheetA セルA1 h16.12.1
B2 ○○商事
C3 △△-□□
↓(データー移行)
SheetD セルA1 h16.12.1 B1 ○○商事 C1 △△-□□
(この間にSheetAのデータはすべて削除)
2つめのデータをSheetAへ入力
SheetA セルA1 h16.12.3
B2 ●●販売
C3 ▲▲-■■
↓(データー移行)
SheetD セルA1 h16.12.1 B1 ○○商事 C1 △△-□□
A2 h16.12.3 B2 ●●販売 C2 ▲▲-■■
No.1ベストアンサー
- 回答日時:
Sub Test()
Dim UR
UR = Sheets("SheetD").Range("A1").CurrentRegion.Rows.Count + 1
If Sheets("SheetD").Range("A1") = "" Then UR = UR - 1
Sheets("SheetA").Range("A1").Copy Sheets("SheetD").Cells(UR, 1)
Sheets("SheetA").Range("B2").Copy Sheets("SheetD").Cells(UR, 2)
Sheets("SheetA").Range("C3").Copy Sheets("SheetD").Cells(UR, 3)
Application.Goto Reference:="AREA"
Selection.ClearContents
Sheets("SheetA").Range("A1").Select
End Sub
なお、シートAの入力範囲(A1,B2,C3)には AREA という名前をつけています。
UR = Sheets("SheetD").Range("A1").CurrentRegion.Rows.Count + 1 の部分で
SheetDのA列の最終データの次の行を取得していますが、A列にデータが無い場合
もA1だけにデータがある場合も 2 になってしまいますので、A列が空の場合は
1を引いています。
ありがとうございました。
前半部分の式を入力しましたら、うまくいきました。
ほんといろんなことができるんですね。
また、お願いします。
No.4
- 回答日時:
●後半は
http://okweb.jp/kotaeru.php3?q=1097835
の私の回答が参考になると思います。
●前半は
(1)Sheet2にボタンを1つ貼りつける。
そのクリックイベントに
Private Sub CommandButton1_Click()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet2")
Set sh2 = Worksheets("sheet3")
sh2.Cells(i, "A") = sh1.Cells(4, "B")
sh2.Cells(i, "B") = sh1.Cells(5, "C")
sh2.Cells(i, "C") = sh1.Cells(6, "D")
i = i + 1
End Sub
(2)標準モジュールの初めの行に
Public i
(3)iの初期値を設定するために
Private Sub Workbook_Open()
i = 2
End Sub
これをまず名前を付けて保存して、その後に開く。
するとi=2(第2行目から開始)がセットできる。
Sheet2のB4,C5,D6に
x
g
v
と入れて、コマンドボタンをクリックすると
Sheet3に
asd
xgv
の第2行目ように記録される。
これ以外の良い方法はないのかと、いつも思ってますが
これでも、理解するのは決して易しくはないかもしれない。
No.3
- 回答日時:
取り急ぎ作成しましたが、
>マクロを利用すればいいように思うのですが、マクロは印刷程度の簡単なマクロの知識しかありません。
とのことですので印刷部分は省きました。
標準モジュールで下記を書くとシート1のデータをシート3の空いてる行に書き込みます。
シート3のコードにシート3を作ると、復元したいA列にマウスでクリック又はアクティブにするとシート1へコピーします。
急いで作っていたので深く考えていませんご了承ください
標準モジュール
Sub Button()
With Worksheets(1)
a = .Cells(1, 1).Value
b = .Cells(2, 2).Value
c = .Cells(3, 3).Value
End With
'****印刷***
'印刷マクロ
'***********
With Worksheets(3)
d = .Cells(1, 1).Value
i = 1
Do While d <> ""
i = i + 1
d = .Cells(i, 1).Value
Loop
.Cells(i, 1) = a
.Cells(i, 2) = b
.Cells(i, 3) = c
End With
End Sub
シート3
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Columns.Column = 1 Then
i = ActiveCell.Row
Worksheets(1).Cells(1, 1) = Cells(i, 1).Value
Worksheets(1).Cells(2, 2) = Cells(i, 2).Value
Worksheets(1).Cells(3, 3) = Cells(i, 3).Value
End If
Worksheets(1).Activate
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Excel(エクセル) エクセルで住所と建物名を分けるには? 5 2022/09/08 14:01
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
複数シートからデータを拾って...
-
EXCELで2つのファイルから重複...
-
Excelで日付変更ごとに、自動的...
-
【エクセルマクロ】複数シート...
-
EXCEL 複数行のデータを1行にま...
-
ユーザーフォームで別シートを...
-
シート削除して同名シート追加...
-
【Excel】マクロでグラフ系列に...
-
別々のシートの表をピボットテ...
-
他のシートの一番下の行データ...
-
SANYO 集積回路STKシリーズのデ...
-
電子部品のデータシートの探し方
-
エクセル マクロ "特定の日付...
-
(初心者)VBAで入所名簿を...
-
時間帯の重複を除いた集計について
-
Excelマクロ 差分抽出の方法が...
-
VBAで CTRL+HOMEの位置へ移動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
excelの不要な行の削除ができな...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
EXCELで2つのファイルから重複...
-
VBAで CTRL+HOMEの位置へ移動...
-
オートフィルタで抽出したデー...
-
トランジスタの選び方
-
ファンモータが作動しない。
-
EXCEL 複数行のデータを1行にま...
-
別々のシートの表をピボットテ...
-
エクセルのカメラ機能について
-
エクセル マクロ "特定の日付...
-
他のシートの一番下の行データ...
-
(VBAにて)日付でデータを抽出す...
-
エクセルVBAで、特定文字から始...
-
【エクセル」 特定のセルで条件...
-
EXCEL の表を一行ずつシートに...
おすすめ情報