
EXCELシートのレコードを自動的に追加して生きたいのです。というのは2枚のEXCELシートがあって1枚のシートは入力フォームになっていて他のフォームにアクセスのようなレコードを作り1行目のレコードにリンクさせます。この場合1枚目の入力シートにデータ追加するたびに2枚目のシートにレコードが追加される方法がないでしょうか。マクロを使ってコピー貼り付けではできません。もちろんデータのフォームではデータ貼り付けを受け付けませんのでだめです。アクセスまがいのことをEXCELでしようとしているのですが。どなたかヒントいただけませんでしょうか。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
#2のものです。
Sheet1のあるセルに入力したデータをSheet2に保存し続けると考えていいのですね。
このマクロはどうでしょうか。
Sheet1のあるセルに入力したデータをSheet2に保存し続けます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wRow As Long
If Trim$(Target.Value) <> "" Then
'画面の更新不可
Application.ScreenUpdating = False
'Sheet2選択
Worksheets("Sheet2").Select
'A1を選択
ActiveSheet.Cells(1, 1).Select
'データ数取得
If Trim$(ActiveSheet.Cells(1, 1).Value) = "" Then
wRow = 1
Else
wRow = Selection.End(xlDown).CurrentRegion.Count + 1
End If
'Sheet2にデータ保存
ActiveSheet.Cells(wRow, Target.Column).Value = Target.Value
'Sheet1選択
Worksheets("Sheet1").Select
'画面の更新可
Application.ScreenUpdating = True
End If
End Sub
ただし、Sheet1のあるセルのものを保存するとしか考えてませんので、Sheet1の複数のセルの値を保存するのであれば、Sheet3以降に保存するようにしてみてください。
もし、マクロでわからないことがあれば、また補足に書いていてください。
No.3
- 回答日時:
(1)シートの1枚を台紙のように使い、その上にコントロールを貼りつけ、そのコントロールと他の1枚のシートのセルにリンクすることができます。
グリッド線や、行列番号、メニューバー、ツールバーなどを消すと結構それらしくなります。
(2)1枚のシートにフォームを貼りつけ、更にフォームの上にコントロールを貼りつけ、そのコントロールと他の1枚のシートのセルにリンクすることが出来ます。
どちらもここで説明すると長くなり過ぎます。
「VBAの知識がありませんので」ということだと、行き詰まりそうです。
中級以上の解説書にはコントロールの解説がありますので
そういうものを見てください。
拙い例ですが、匂いでも嗅いでください。
(1)Sheet1にTextBox1,TextBox2、CommandButton1を貼りつける。
(2)標準モジュールに
Public i
Sub test01()
i = 1
End Sub
行の位置の初期設定のためです。
(3)Sheet1のイベントプロセジュアーに下記を作ります。
Private Sub CommandButton1_Click()
i = i + 1
TextBox1.Text = ""
TextBox2.Text = ""
End Sub
1レコードの終了を教えてやるためです。
Private Sub TextBox1_LostFocus()
Worksheets("sheet2").Cells(i, "A") = TextBox1.Text
End Sub
Private Sub TextBox2_LostFocus()
Worksheets("sheet2").Cells(i, "B") = TextBox2.Text
End Sub
(5)入力操作
1回(2)を実行する。
テキストボックス1,2に文字列を入力する。
そしてコマンドボタンをクリックする。
A列にテキストボックス1、B列にテキストボックス2の
内容がセットされる。
数値列ならVAL(TextBox2.Text)をセルにセットする。
内容チェックが必要ならば、コマンドボタンを押したときに行う。(本件では略)
順次入力していくと、次行、次行に入力内容がセットます。
少数例でテスト済みです。
しかし何が私自身気に食わないかと言うと、初期化、Public変数、Enterのイベントがないことなど。実のところ、ずっと前から行き詰まっていて、VBAの熟達者に私が教えて欲しい問題点ですが。
No.2
- 回答日時:
#1のものです。
> マクロ記述の操作作業の記録の方法で実行することは難しいでしょうか。
No.1でのマクロは、Sheet1の入力したセルの値が変わったときに実行されるマクロになるため、ツール-マクロ-マクロで選択することができないと思います。
もし、挿入するのであれば、
1. ツール-マクロ-Visual Basic Editorを選択
→ Visual Basicが起動
2. プロジェクトウインドウ(Visual Basic内の左側上部のウインドウ)のSheet1をダブルクリック
→ Sheet1(コード)ウインドウが表示
3. No.1のマクロをコピー
4. Visual Basicを閉じる
で、大丈夫です。
この回答への補足
マクロのプログラムありがとうございます。
たしかにsheet1で変更したセルのところはsheet2の対応セルでは完璧に変更されましたが新たなレコードが生成出来ないんですがこの件について補足よろしくお願いします。
あくまでsheet1のフォームで変更(新たなレコード作成)入力した場合にsheet2でレコードが追加されることを望んでいるのですが。
No.1
- 回答日時:
こういうマクロでは、どうでしょうか?
Private Sub Worksheet_Change(ByVal Target As Range)
If Trim$(Target.Value) <> "" Then
Worksheets("Sheet2").Cells(Target.Row, Target.Column).Value = Target.Value
End If
End Sub
変更した箇所と同じ位置の別シートのセルの値を変更します。
この回答への補足
ありがとうございます。
VBAの知識がありませんのでこのプログラムは
マクロ記述の操作作業の記録の方法で実行することは難しいでしょうか。たひたびお手数おかけします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Excel(エクセル) 同じExcelのBOOK内で 1枚目のシートのA1のセルにデータを 入れると2枚目のシートのC1のセ 1 2022/10/25 09:40
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) Excel関数について質問です。 シート1に入力シートがあります。 =A1 =B1などで離れた数字な 5 2022/12/18 13:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
クリックすると文章が表示され...
-
Excel2007 色のカウント (VBA)
-
Excelで、図形内の文字をセルに...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
エクセルにて、クリックした場...
-
エクセルマクロ リストのデー...
-
ハイパーリンクのイベント挙動...
-
Excel:セルの値(文字列)を数...
-
EXCELのセルや文字色の反映
-
セルがクリックされた回数をカ...
-
現在のセルの位置を返す関数は...
-
エクセルでセルをダブルクリッ...
-
EXCELでハイパーリンクの解除を...
-
太字に設定されているセルの個...
-
シート保護とグループ化機能を...
-
EXCELで自動的にデータレコード...
-
エクセル 未入力セルがあると...
-
エクセル シート保護された共...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
Excel ハイパーリンクのURLを別...
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
Excel:セルの値(文字列)を数...
-
Excel2007 色のカウント (VBA)
-
セルの内容をテキストボックス...
-
セルがクリックされた回数をカ...
-
エクセル 未入力セルがあると...
-
エクセルマクロ 赤色の文字を検...
-
選択したセル範囲に入っている...
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
エクセルでセルをダブルクリッ...
おすすめ情報