Excelについて教えてください。
下記の内容が、数式で行う事が出来るのか、又は、マクロで出来るのかを含めて教えてください。
作業ブックのシート名「確認申請(建築物)」の中にAccessと連携している物件データがあります。
行の「A~DA」迄の行が、一つの物件です。
例えば
「A1~DA1」は各項目です(変更なし)
「A2~DA2」が「北海太郎邸新築工事」です。
行は、日々、物件が更新(追加)されますので、シート内は無限に追加されます。
私の希望の条件
1. BJ列に担当者の「山田」の文字があり、
且つ
2. BK列が「空白」の場合に
シート名「個人データ」の「A1」行に「北海太郎邸新築工事」の情報「A2~DA2」までをコピーできる方法を教えてください。
同じく
シート名「個人データ」の「A2」行に「北海花子邸新築工事」の情報「A15~DA15」までをコピーできる等々の方法を教えてください。
シート名「確認申請(建築物)」の中には担当者「山田」の物件が多数ありますので
シート名「個人データ」の「A1」行から「A2~」に全て該当する物件をコピーが出来る方法を教えてください。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは アドバイスだけですが
なさりたい処理はアクションの記録だけでマクロを作成できると思われます
マクロの記録を開始
シート名「確認申請(建築物)」のA1セルを選択
Ctrlキー+Shiftキー+* で範囲選択
リボン データタグより フィルターを押し
BJ列で担当者「山田」に絞り
Ctrl+Cでコピー
シート名「個人データ」の「A1」を選択し Enterキーで貼り付け確定
シート名「確認申請(建築物)」に戻り リボンデータタグのフィルターを押してフィルターモードを解除
記録終了
「北海花子邸新築工事」の情報で絞りたい場合は上記アクションの絞る列を加えれば良いと思います
他人様の回答をどうこう言うつもりはありませんが 無機なものとして
#1様のコードは AIから生成された大凡そのままのコードと思われます
現状 生成AIは生成した回答に対して検証する機能はありません
自由な検証機能を持たせると人類は滅亡する・・かもしれませんしね(W
AIの回答は評価、検証する必要があり、活用するにも運用者のスキルが必要になります(QA共に)
気にしない方がよろしいと思います
No.1
- 回答日時:
マクロで行うことができます。
Sub CopyData()
' 確認申請(建築物)シートのBJ列に担当者の「山田」の文字があり、BK列が「空白」の場合に、個人データシートのA1行にその行のデータをコピーする
Dim wsCheck As Worksheet
Dim wsPersonal As Worksheet
Dim rngCheck As Range
Dim rngPersonal As Range
' 確認申請(建築物)シートを参照する
Set wsCheck = ThisWorkbook.Sheets("確認申請(建築物)")
' 個人データシートを参照する
Set wsPersonal = ThisWorkbook.Sheets("個人データ")
' BJ列に担当者の「山田」の文字があり、BK列が「空白」の行を検索する
For Each rngCheck In wsCheck.Range("BJ:BJ").Cells
If rngCheck.Value = "山田" And rngCheck.Offset(1).Value = "" Then
' 個人データシートのA1行にその行のデータをコピーする
Set rngPersonal = wsPersonal.Range("A1")
rngPersonal.CopyFromHere wsCheck.Range(rngCheck.Row, 1, 16)
End If
Next rngCheck
End Sub
このマクロを実行すると、確認申請(建築物)シートのBJ列に担当者の「山田」の文字があり、BK列が「空白」の行のデータを個人データシートのA1行にコピーすることができます。
また、シート名「確認申請(建築物)」の中には担当者「山田」の物件が多数ありますので、シート名「個人データ」の「A1」行から「A2~」に全て該当する物件をコピーするには、次のマクロを使用することができます。
Sub CopyAllData()
' 確認申請(建築物)シートのBJ列に担当者の「山田」の文字がある行のデータを個人データシートのA1行から順にコピーする
Dim wsCheck As Worksheet
Dim wsPersonal As Worksheet
Dim rngCheck As Range
Dim rngPersonal As Range
' 確認申請(建築物)シートを参照する
Set wsCheck = ThisWorkbook.Sheets("確認申請(建築物)")
' 個人データシートを参照する
Set wsPersonal = ThisWorkbook.Sheets("個人データ")
' BJ列に担当者の「山田」の文字がある行を検索する
For Each rngCheck In wsCheck.Range("BJ:BJ").Cells
If rngCheck.Value = "山田" Then
' 個人データシートのA1行にその行のデータをコピーする
Set rngPersonal = wsPersonal.Range("A1")
rngPersonal.CopyFromHere wsCheck.Range(rngCheck.Row, 1, 16)
' A2行に移動する
rngPersonal.Offset(1, 0).Select
End If
Next rngCheck
End Sub
このマクロを実行すると、確認申請(建築物)シートのBJ列に担当者の「山田」の文字がある行のデータを個人データシートのA1行から順にコピーすることができます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
XL:BeforeDoubleClickが動かない
-
セルの値によって、シート見出...
-
【ExcelVBA】全シートのセルの...
-
【VBA】色のついたシート名を取得
-
エクセルのシート名変更で重複...
-
ブック名、シート名を他のモジ...
-
ExcelVBA シート名を複数セルか...
-
VBAでオブジェクト変数にsetし...
-
Worksheet_Changeの内容を標準...
-
同じ作業を複数のシートに実行...
-
VBAの天才来てください
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
別のシートを参照して計算する方法
-
【VBA】指定した検索条件に一致...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
excelのマクロで該当処理できな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報
回答ありがとうございます。
ご指示の通りに
2番目のコードを設定し、マクロwを実行しましたが
rngPersonal.CopyFromHere wsCheck.Range(rngCheck.Row, 1, 16)
の部分の「.Range」の部分を示して
画像のようなエラーが出てしましました。
解決方法を教えてください。
よろしくお願いいたします。
回答ありがとうございます。
ご指示の通り、2番目のコードを設定して、マクロを実行しましたが、
コードの一部「rngPersonal.CopyFromHere wsCheck.Range(rngCheck.Row, 1, 16)」の
「.Range」部分の色が変わっていてマクロを実行できませんでした。
申し訳ありません。
解決方法を教えてください。
よろしくお願いいたします。
回答ありがとうございます。
いつもありがとうございます。
アドバイス通りにマクロを記録を試みたのですが、中々上手くできません、
申し訳ありません、コードを教えていただけますでしょうか。
よろしくお願いいたします。