先日、下記の質問をさせて頂いて
Excelでファイル1ファイル2ファイル3と3つあります。
ファイル1とファイル2にはそれぞれシートAとシートBがあり
B C D E
ナンバー 氏名 年齢 性別
1 山本 25 男
2 鈴木 35 男
3 田中 45 女
・ ・ ・ ・
・ ・ ・ ・
・ ・ ・ ・
シートAシートB共、上記のような感じです。
これをファイル3に抽出したいのですが、
ファイル3も
ナンバー 氏名 年齢 性別
と、同じです。
条件としてファイル1とファイル2を入力するのは
ランダムに入力していきます。
ファイル1ファイル2に入力された時、マクロボタンを
押した時ファイル3に抽出したいのですが・・・
以下の文で解決しました。
Sub ボタン1_Click()
With Workbooks("ファイル3").Sheets("Sheet1")
GYOU1 = Range("B" & Rows.Count).End(xlUp).Row
GYOU2 = .Range("B" & Rows.Count).End(xlUp).Row +1
.Range("B" & GYOU2 & ":E" & GYOU2).Value = Range("B" & GYOU1 + 6 & ":E" & GYOU1).Value
End With
End Sub
追加で抽出する条件を追加したいのでアドバイスを頂きたいのですが
①B列は最初から数字が入っているため、抽出するのはB列~E列がすべて入力されている時
②毎回2行づつ入力するので抽出するのは最終行とその上の1行の2列をファイル3に抽出したい。
【本題】
上記の質問を実際のシートに対して、みなさんの回答を参考にさせて頂いて、
Sub 移動()
Dim GYO1 As Long
Dim GYO2 As Long
With Workbooks("ファイル3.xlsx").ActiveSheet
GYO1 = Range("C" & Rows.Count).End(xlUp).Row
GYO2 = .Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("B" & GYO2 & ":E" & GYO2).Value = Range("B" & GYO1 -1 & ":E" & GYO1 -1).Value
.Range("B" & GYO2 +1 & ":E" & GYO2 +1).Value = Range("B" & GYO1 & ":E" & GYO1).Value
End With
End Sub
これでマクロボタンを登録したら行けたのですが、マクロボタン押し忘れ対策として
B列からE列まで入力していってE列に値が入った時点で
このマクロを実行するにはどのように記述すればいいですか?
自分なりに調べてWorksheet_Changeまではたどり着いたのですがうまくいきません。
長々と分かりにくい分ですいませんが、知恵をお貸しください。
No.3ベストアンサー
- 回答日時:
No.1です。
ファイル1とファイル2は同じものと思いますので、この際無視します。
>ファイル3に飛んでいきません
これは目的のデータがファイル3に入力されないということですよね?
ファイル3にはマクロは不要と思いますが・・・
必要なのは
・ファイル1のシートAモジュールにWorksheet_Changeイベントのプロシージャを書いて
移動()プロシージャを呼び出す。
・ファイル1の標準モジュールに移動()プロシージャを書く
の2点です。
移動() プロシージャの起動条件はいろいろと都合があると思いますので、If文の中身を十分に検討下さい。
申し訳ありませんがうまく動作しない場合はデバグして詳細に、
目的の動作をしているかをご確認いただく必要があると思います。
・Worksheet_Changeのマクロは起動しているのか
・Target.Column の値は 目的の値(5)か
・移動() プロシージャに処理が移るか
・移動() プロシージャの動きはボタンで起動したときと同じか
などなど。
質問文のコードを組まれているのでデバグはされていると思いますが、、、
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …
それはすでにやってるよ!と言われると申し訳ない。
いろいろとありがとうございます。頂いた回答を参考に試行錯誤して組んでいくと飛ぶようになりました。
まだ中身は理解出来てませんが・・・しっかり勉強します。
分かりにくい内容にお付き合い頂きありがとうございました。
No.2
- 回答日時:
No.1です。
コードが標準モジュールに書かれているならそのままでよいはずです。
デバッグはされていますでしょうか?
動作確認して、「ダメ」の内容についてご確認ください。
Worksheet_Changeのマクロが起動しないのか、移動()のマクロにとばないのか・・・・
if文で一時停止するようにしてステップ(F8)で動作チェックすると問題点が出ると思います。
「入力するシート」=ファイル1,2のシートA, B のつもりですが勘違いないでしょうか?
記述されているコードもファイル1,2の標準モジュールですよね?
No.1さんありがとうございます。
ファイル1,2の標準モジュールには質問文のコードを記述しています。
動作確認しましたがファイル3に飛んでいきません。
ファイル3には回答頂いたコードの下にファイル1,2と同じコードを
記述しています。
分かりにくい内容ですが、よろしくお願いします。
No.1
- 回答日時:
こんにちは。
ずぼらで申し訳ないですが、ひとまず最後の5行だけ読んで、、、、
E列に入力があったら上記のマクロを起動させるだけであれば、
「入力するSheetのモジュール」に
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then 移動
End Sub
でいけませんかね?
ありがとうございます。
やってみたのですがダメでした。
「入力するSheetのモジュール」に頂いたコードを入力したのですが
その下に質問文にあるコードは入力する必要はありますか?
移動元シートにも質問文にあるコードを入力したのですがうまくいきません。
あとどこを訂正すればよいのでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルのシートの数を数えた...
-
エクセルマクロで不特定なファ...
-
vlookup関数の引数を変数で指定...
-
Accessのaccdbファイルを起動で...
-
フォルダ内のexcelファイルを順...
-
VBAでワークブックの名前を変数...
-
【Excel VBA】ファイル名が一...
-
Excelのマクロについてご教授く...
-
フォルダ内のブック全部にパス...
-
VBA ふたつの同じ様式シートの...
-
エクセル(マクロ)のファイル...
-
EXCELが終了できません
-
Excelファイルがマクロを含むか...
-
エクセルマクロ 異なるファイ...
-
ワード2007で複数ファイル自動...
-
エクセルのxls形式からxlsx形式...
-
vba dirにおけるフォルダ内にあ...
-
リンク切れチェックを行うマクロ
-
Excelで漢字人名が勝手に並び変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
VBAでワークブックの名前を変数...
-
フォルダ内のexcelファイルを順...
-
エクセルのxls形式からxlsx形式...
-
エクセル 複数ファイルの一括...
-
エクセルのシートの数を数えた...
-
accessフォルダを移動したらフ...
-
vlookup関数の引数を変数で指定...
-
Accessのaccdbファイルを起動で...
-
ファイルを開かずにマクロを実行
-
【Excel VBA】ファイル名が一...
-
EXCELマクロを無効にして開く方法
-
エクセル(マクロ)のファイル...
-
ACCESS VBAでファイルを開くダ...
-
Excel VBA でファイルが開かれ...
-
ファイルの保存場所を変えたら...
-
vba初心者です。 質問です。 毎...
-
フォルダ内のブック全部にパス...
-
エクセルマクロ 異なるファイ...
おすすめ情報